2016-06-08 35 views
0

我有cron作業的形式工作:是否cron作業觸摸輸出文件

*/5 * * * * /path/to/script.sh >> /tmp/script.out 2>&1 

當重定向一個空echo的輸出,並追加到一個輸出文件的修改日期的變化。 我的問題是,如果在cron的輸出文件中也出現這種情況?

我想知道這是爲了驗證文件的最後執行時間,而不必故意寫入文件。

+0

你問每次cronjob運行時是否更新'/tmp/script.out'的修改時間?爲什麼不呢? – jwodder

+0

它應該很容易運行並檢查 – pmod

+0

是的,因爲即使沒有回聲發生,我也期待這種情況發生。但它並沒有更新。 – CMPSoares

回答

1

如果您的腳本沒有輸出任何內容,輸出文件不會被「觸摸」,即修改時間不會更新。但是,您可以添加「觸摸」明確在這種情況下:

*/5 * * * * /path/to/script.sh >> /tmp/script.out 2>&1; touch /tmp/script.out 

順便說一句,echo輸出是不是真的空的,它產生的換行符(即LF =換行):

$ echo | hexdump -c 
0000000 \n 
1

(已經評論:當文件不存在,則創建(觸摸),當它存在,它沒有被觸及)

啓用的cron(USR /密碼,不堵塞,不否認的cron)我會信任cron。當你想看看一切是否正常時,你應該從你的腳本中獲得lifebeat(目錄和權限仍然有效,在shebang結尾沒有^ M,沒有無效更改或其他失敗的依賴關係)。
最好的方法是通過腳本調用觸摸文件。