2013-10-26 20 views
2

我想在這裏學習cron(抱歉,如果問題是101!)。所以,我有一個小的測試腳本,像這樣:cron一個簡單的測試腳本與debian,屏幕和ec2

#! /bin/sh 
# /home/admin/js/test.sh 
# 
SHELL=/bin/bash 
source ~/.bashrc 

# Some things that run always 
screen -d -r myscreen 
touch /home/admin/js/testsuccess.txt 
exit 0 

然後我做crontab -e,並添加以下條目(我在EC2上運行的debian 7):

*/15 7-23 * * * root /home/admin/js/test.sh > /dev/null 2>&1 

所以..這基本上運行在規定的時間內每15分鐘一班。這個cron似乎運行,即當我這樣做:

grep CRON /var/log/syslog 

我看到輸出:

Oct 26 19:30:01 ip-16-653-987-12 /USR/SBIN/CRON[20700]: (admin) CMD (root /home/admin/js/test.sh > /dev/null 2>&1) 

..但我不認爲在目錄中touch新文件。不知道這裏真的發生了什麼 - 任何建議來解決這個問題將不勝感激! 謝謝。

+0

你能解決這個問題嗎? –

回答

0

問題是與cron條目,你的腳本似乎工作正常。

當您執行普通的crontab -e時,您正在修改與您的用戶相對應的crontab條目。 cron的格式作業時,您正在使用作品的情況下,當你直接寬增加crons系統/etc/crontab

所以,你可以打開crontab的使用crontab -u user -e(因爲用戶在你的情況是root,你將特定用戶需要與sudo運行此),並在其

*/15 7-23 * * * /home/admin/js/test.sh > /dev/null 2>&1 

進入的cronjob沒有用戶名,也可以在/etc/crontab cron任務添加到系統級的cron作業,而不是使用crontab -e

另請注意,您在腳本中使用的~可能會導致問題,因此請始終在cron作業中使用完整路徑。