我有以下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"
答案 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
运行该脚本。