【问题标题】:What is the correct syntax for flock with bash options in croncron中带有bash选项的flock的正确语法是什么
【发布时间】:2013-11-15 14:24:27
【问题描述】:

我有以下 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"

【问题讨论】:

    标签: linux ubuntu flock


    【解决方案1】:

    不,这是正确的。有关 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 运行该脚本。

    【讨论】:

    • 啊,我明白了 - 所以它确实与命令一起使用,而不是整个 cron 命令。我也明白你在包装脚本中的意思,尽管我注意到使用单引号有助于flock 知道如何'execute a command' 并克服“flock:-c 只需要一个命令参数” - 谢谢 Alexander
    猜你喜欢
    • 1970-01-01
    • 2013-10-25
    • 2021-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多