2011-09-26 47 views
2

這應該是相當直接的,但我似乎無法得到它的工作,儘管通過谷歌,Stackoverflow和手冊頁閱讀了幾個教程。在Ubuntu的Cron工作

我創建了一個每1分鐘運行一次的cron(用於測試),它基本上所做的就是吐出日期。

crontab -l 
* * * * * /var/test/cron-test.sh 

這個cron測試文件是:

echo "$(date): cron job run" >> test.log 

等待多少分鐘,我從來沒有看到一個test.log中的文件。

我可以手動調用「test.sh」並獲得它輸出&附加。

我想知道我錯過了什麼?我也是以root身份進行的。我想知道我是否想知道根的位置?我的路徑是否因爲它附加了某種主目錄而混亂了?

謝謝!


UPDATE -----------------

它不會出現,我不是在與目錄路徑的東西。如果我改變目錄,以root用戶的主目錄:

# cd 

我看到我的輸出文件「test.log中」與打印每分鐘的所有日期。

因此,我會更新我的問題,我錯過了什麼 - 瞭解/路徑?有沒有我需要用來從根目錄開始的術語?

乾杯!

UPDATE 2 -----------------

好的,所以我得到了我想念的東西。

設置crontab的腳本工作正常。它正在查找相對於根目錄的文件。即:

* * * * * /var/test/cron-test.sh 

但是「cron-test.sh」文件沒有相對於根目錄進行設置。因此,當「root」運行腳本時,它將其轉儲回「root」的主目錄。我的想法是,因爲該腳本正在「/ var/test /」中運行,該文件也將被轉儲到「/ var/test /」中。

取而代之,我需要在腳本文件中設置該位置以正確轉儲它。

echo "$(date): cron job run" >> /var/test/test.log 

而且工作。

+0

在cPanel中設置cron作業很簡單,只要你有它。 –

+0

你想要那個test.log文件在哪裏?完全寫出由cron調用的腳本路徑(例如'>>/root/test.log或'>>/var/test/test.log')會更好,以避免這種意外。 – fvu

+0

謝謝fvu,那是我不理解的問題。我把它寫成了我的「更新2」的一部分。 ' – jmbertucci

回答

5

您尚未提供任何test.log路徑,因此它將在當前路徑(默認情況下爲用戶的主目錄)中創建。 您應該更新腳本並提供完整路徑,例如,g:

echo "$(date): cron job run" >> /var/log/test.log 
2

要重申您給自己更明確的答案:cronjobs在執行用戶的主目錄中啓動,在您的案例根目錄中。這就是爲什麼相對文件以〜根結尾的原因。