需要特定的cron作业解释,使用flock -n + .lock文件+ / bin / bash

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了需要特定的cron作业解释,使用flock -n + .lock文件+ / bin / bash相关的知识,希望对你有一定的参考价值。

我有这个cronjob,由于某种原因不起作用,但我不完全理解它的作用,有人可以解释一下吗?

flock -n /var/www/vhosts/blia.preview.be/scripts/blia_bab_import.sh.lock /bin/bash /var/www/vhosts/blia.preview.be/scripts/blia_bab_import.sh

我用谷歌搜索flock应该锁定文件,只有在它可以锁定文件时才运行,这样作业就不能同时运行多次。

-n做什么?

flock -n

为什么这是.lock文件?

/var/www/vhosts/blia.preview.be/scripts/blia_bab_import.sh.lock

我不知道/ bin / bash应该做什么?

/bin/bash

这是我想要执行的脚本吗?为什么首先添加.lock?

/var/www/vhosts/blia.preview.be/scripts/blia_bab_import.sh
答案

flock -n LOCK-FILE COMMAND

在你的情况下:

  • -n:如果flock无法获取LOCK-FILE,即它已经存在,它将在那里停止,并且不执行命令。
  • 因此-n确保一次只能运行一个COMMAND实例。
  • 在您的情况下,LOCK-FILE是/var/www/vhosts/blia.preview.be/scripts/blia_bab_import.sh.lock
  • LOCK-FILE就是您的决定。 flock将检查该文件为锁。它可以在你的系统上的任何地方命名,但是这样做很好,因为你知道.lock文件的用途。 为了说明,你可以做flock -n /tmp/some_lock_file.txt script.sh。该值未强制执行,您决定要使用的内容。
  • 您的案例中的命令是/ bin / bash /var/www/vhosts/blia.preview.be/scripts/blia_bab_import.sh
  • 你想要执行的脚本是COMMAND的值,所以再次为你:/ bin / bash /var/www/vhosts/blia.preview.be/scripts/blia_bab_import.sh
  • / bin / bash是指定脚本blia_bab_import.sh必须在bash shell中运行。您可以在.sh文件中使用#!/ bin / bash第一行。

以上是关于需要特定的cron作业解释,使用flock -n + .lock文件+ / bin / bash的主要内容,如果未能解决你的问题,请参考以下文章

Drupal 7 hook_cron - 放在哪里

每分钟运行一次 cron 作业,但从特定时间开始

bash cron 集群屏幕

从特定时区的给定日期起每 14 天执行一次作业的 Cron 脚本

如何为网络爬虫设置有效的 cron 作业

如何在服务器上的特定小时内每分钟运行一次cron作业