Cron - Como posso criar um cronjob que é executado a cada 15 segundos?

5

Parece que o Cron não suporta um intervalo de segundos. Qual é a maneira mais fácil de executar um script cli (php) a cada 15 segundos? Existe uma ferramenta cron que trabalhe especificamente com segundos (então eu poderia usar o Cron para chamar a cada minuto)?

    
por John Himmelman 11.05.2010 / 17:34

6 respostas

2

Você precisa escrever um script de shell como esse que durma no intervalo especificado e agende essa execução a cada minuto no cron:

#!/bin/sh
# Script: delay_cmd
sleep $1
shift
$*

Então agende isso para rodar no cron com seus parâmetros: delay_cmd 15 mycommand parameters

    
por 11.05.2010 / 17:49
5

Eu acho que você tem que escrever um script de shell que chama o seu comando e depois dorme 15 segundos - eu não acredito que a maioria das implementações cron permitem mais que um minuto de granularidade.

    
por 11.05.2010 / 17:38
3

Cron manda os segundos para estar lá, até onde eu sabia.

"0/15 * * * * *"

seg min hora dia-mês mês dia-semana (ano opcional que eu omiti)

EDIT: Parece que, enquanto a expressão CRON requer 6 ou 7, o cron exec que executa ele quer 5 ... Eu vou olhar para isso!

    
por 11.05.2010 / 17:43
3

Esta é realmente uma questão de programação e, como tal, foi solicitada no site correto.

Como o próprio cron não pode fazer o que você precisa, é uma questão de criar sua própria rotina. O uso do sono, como sugerido por outros, não dará os resultados corretos, pois não leva em conta o tempo necessário para executar o comando. No entanto, é uma questão simples de ler o relógio do sistema, em qualquer idioma que lhe seja conveniente, e disparar o comando a cada 15 segundos com base no tempo, em vez de um atraso de tempo.

Uma vez que você tenha sua rotina, não a dispare via cron a cada minuto. Basta executá-lo como uma tarefa em segundo plano continuamente.

    
por 12.05.2010 / 12:21
1
*/1 * * * * /path/to/script
*/1 * * * * sleep 15; /path/to/script
*/1 * * * * sleep 30; /path/to/script
*/1 * * * * sleep 45; /path/to/script
    
por 26.11.2012 / 14:19
-2

0/15 * * * *

Formato Cron 0/15 * * * *? Hora de início quarta-feira, 9 de novembro de 2016 08:36 Próximas datas programadas (são executadas a cada 15 segundos)

  1. quarta-feira, 9 de novembro de 2016 8:36
  2. quarta-feira, 9 de novembro de 2016 8:36
  3. quarta-feira, 9 de novembro de 2016 08:37
  4. quarta-feira, 9 de novembro de 2016 08:37
  5. quarta-feira, 9 de novembro de 2016 08:37
por 09.11.2016 / 14:39

Tags