2013-11-15 42 views
0

我有以下幾點的cron作業什麼是正確的語法與在cron bash的選項羊羣

7,22,37,52 6-16 * * * myuser /bin/bash -l -c "cd /to/my/path/; rake my_rake_task" 

我需要一些文件鎖定,因此任務不會運行一次以上,並期待用這個關於,我看到雞羣是這種情況下的一個好工具。

我的問題是,使用上述flock的正確語法是什麼?這是我猜測的,但是,我有額外的用戶定義等等。

這是正確的嗎?

flock -n /var/run/my_app.lock -c 7,22,37,52 6-16 * * * myuser /bin/bash -l -c "cd /to/my/path/; execute_my_command" 

回答

3

不,這不是正確。有關crontab文件的語法,請參見man crontab。正確的命令如下所示:

7,22,37,52 6-16 * * * myuser /bin/bash -l -c "cd /to/my/path/ && flock -n /var/run/my_app.lock -c execute_my_command" 

..但一個更簡潔的方法是把它變成一個包裝腳本,並從cron運行該腳本。

+0

啊,我明白了 - 所以它實際上與命令一致,而不是整個cron命令。另外我明白你的意思是將它放在一個包裝腳本中,儘管我注意到使用單引號可以幫助羣體知道如何執行一個命令並克服「羣:-c只需要一個命令參數」 - 謝謝亞歷山大 – yekta