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

问题描述 投票:0回答:1

我有这个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
cron
1个回答
0
投票

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第一行。
© www.soinside.com 2019 - 2024. All rights reserved.