Dependência de trabalho do Crontab para evitar a corrida [fechada]

6

Eu quero rodar um cron a cada 5 minutos, mas eu não quero que o próximo cron seja executado se o anterior ainda não tiver terminado.

O que pode ser feito sobre isso? Existe alguma ferramenta para apoiar isso?

Obrigado

    
por Shazam 29.04.2014 / 20:39

3 respostas

11

Use o bando .

flock -n /path/to/lockfile -c "command_you_want_to_run"
    
por 29.04.2014 / 20:47
5

Você pode usar o comando run-one. Cria automaticamente um arquivo de bloqueio para o comando que está sendo executado.

run-one rsync -a mirror.kernel.org::everything /my/hd

O comportamento é semelhante ao floco, mas a sintaxe é mais clara. A desvantagem é que você pode precisar instalar o comando para usá-lo. Além disso, deve-se prestar atenção especial ao modificar a linha de comando, quando a linha de comando é alterada, assim como o nome do arquivo de bloqueio

    
por 29.04.2014 / 21:43
4

O Cron não suporta nenhum tipo de dependência de trabalho. As entradas que você coloca lá são executadas quando especificadas.

Você terá que fazer um esquema de intertravamento simples. Colocar o comando ou conjunto de comandos fornecido em um script de wrapper contendo o esquema de bloqueio.

Ou, como sites maiores, instale algum tipo de aplicativo de agendamento de trabalho e use-o para executar os aplicativos com condições.

    
por 29.04.2014 / 20:42

Tags