2016-01-19 22 views
0

這是我的crontab條目:crontab的腳本不生成文本文件

* * * * * /home/ec2-user/Test/test_thing.sh

這裏是腳本,test_thing.sh

echo "asdf" >> ./bla.txt

當我手動運行它,但它產生的「bla.txt」文件。但是,它不會自動執行(使用crontab在/Test/目錄中創建「bla.txt」文件)。

我也檢查了我的/var/log/cron文件,我發現它每分鐘都執行一次,但不知道它是否會遇到錯誤。

如果它很重要,我在Amazon EC2服務器上運行這個服務器,特別是亞馬遜Linux AMI。

編輯: 我也做了chmod +x test_thing.sh,以確保它是可執行的。

+0

相對路徑「./blah.txt」可能不是您認爲它的位置。嘗試在文件夾上使用絕對路徑引用,您知道您的用戶有權寫入。祝你好運! – yftse

回答

2

默認情況下,cronjob從主目錄運行。因此,如果您通過root帳戶運行它,則應該看到要在/ home/ec2-user或/ root下創建的文件。

如果您需要使用指定路徑生成新文件,則有一種方法是使用絕對路徑,如@yftse所述。另一種方式是

* * * * * cd /home/ec2-user/Test/; bash /home/ec2-user/Test/test_thing.sh 
+0

謝謝!只是一個簡單的問題(可能超出了這個問題的範圍,所以如有必要,請隨時指出我的方向)。當你cd到crontab中的一個目錄中時,我假設它不影響其他cronjobs,即使在同一個文件中?如果是這樣,它是一個臨時目錄更改,然後恢復到主目錄,或者我的假設是錯誤的? – Stoneman

+0

是的,這是可能的。 – BMW

+0

你的假設是正確的。您也可以選擇將cd命令放入腳本中。 –