2011-09-12 15 views
0

爲了在編輯頁面時清除緩存版本的頁面,我們用PHP編寫的CMS使用exec()去除所有相關的緩存文件。這些文件總是被命名爲包含字符串'_lid45',比如說'45'是該頁面的唯一標識符。Apache使用PHP的exec將日誌記錄失敗調用爲'rm'()

的高管串看起來像

rm ../cache/*_lid45[._]* 

只要存在這樣的文件它完美的作品。如果沒有,那麼沒有什麼不順心的用戶,但Apache的錯誤日誌得到了這樣一行

rm: cannot remove `../cache/*_lid45[._]*': No such file or directory 

我知道這不是最糟糕的事情!但是,如果可以的話,我想嘗試擺脫這些信息,而不會增加原始腳本的負載。例如,我想先使用'ls'來查看是否有任何這樣的文件,然後只有在它們出現時才刪除它們,但由於緩存的大小有時可能相當大,因此'ls'偶爾會減慢到指出它對整個服務器的性能有顯着影響!

任何想法?

回答

2

只是rm輸出發送到/dev/null

exec("rm ../cache/*_lid45['_]* > /dev/null 2>&1"); 

而且這將抑制所有的輸出,並應該抑制的錯誤。

如果您對輸出重定向知之甚少,您可能會發現this值得一讀......

相關問題