在cron中使用bash选项flock的正确语法是什么

时间:2013-11-15 14:24:27

标签: linux ubuntu flock

我有以下cron工作

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

我需要在一些文件锁定时使用它,所以任务不会运行多次,看一下,我看到flock是这个场景的好工具。

我的问题是,使用上述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"

1 个答案:

答案 0 :(得分: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运行该脚本。