at
possui uma interface mais simples para esse tipo de finalidade, se at
estiver instalado, a máquina estiver em execução atd
e o usuário poderá usar o comando
Por exemplo (verifique a sintaxe exata usando man at
ou info at
),
at -f
Arquivo now + 53 minutes
ou
at -f
Arquivo now + 2 hours
executará os comandos no arquivo especificado em 53 minutos ou 2 horas, respectivamente.
at
pode ser reexecutado no início do trabalho agendado com unidades de início, contagem e tempo adequadas (aleatórias ou não).
Editar
Como Arjan aponta útil abaixo, se você estiver usando isso para outro aplicativo que não seja um brinquedo, precisará pensar em questões como o que acontece
se a próxima execução começar antes que a anterior termine (por exemplo, o script é reentrante?) ou
se uma execução não for concluída corretamente ou
se a próxima execução falhar ao iniciar totalmente ou dentro do prazo (por exemplo, o que acontece se a máquina estiver desligada no início da próxima execução) e
sobre o registro e o relatório de execuções com falha ou com êxito.
file
contiver a próximaat
execução, correto?at
comando-é a primeira linha e se o script for executado por um longo período de tempo (ou se os intervalos forem curtos), tenha cuidado ao executar várias instâncias simultaneamente. Mas quandoat
está na última linha do script, obviamente não será feito um novo agendamento se o script falhar. Além disso, a execução do script a partir da linha de comando também o fará (re) agendar (e: vários agendamentos poderão existir simultaneamente). Ecron
suporta o envio de quaisquer erros (ou: saída em geral) por email; Eu não sei seat
tem algo assim também?Eu tenho muitos comandos no / etc / crontab fazendo todo tipo de coisa e alguns precisam de precisão em segundos. Agora, o cron pode ter uma resolução mais precisa, mantendo todos os horários visíveis e centralizados.
Este exemplo obtém e analisa uma página da Web entre 10 e 50 segundos antes a cada 5 minutos:
Ele não precisa ter um horário exato, pois os dados estão em movimento lento, mas ajuda a manter o tempo de execução do nó munin o mais baixo possível, sem precisar esperar pelas páginas da web. (O plug-in armazena em cache a página por 30 minutos para reduzir ocorrências desnecessárias, mas precisa atualizar um banco de dados a cada 5 minutos).
Observe que \% - cron substitui% por "\ n" - útil para manter o texto do correio em uma linha.
fonte
Internamente
cron
, acho que esse recurso não existe. Eu acho que a melhor solução seria colocar seu comando em um script de shell e colocar umsleep
intervalo aleatório na parte superior do script e usar a$RANDOM
variável Em seguida, execute o script uma vez por dia em um trabalho cron regular.fonte
Depende do tipo de intervalo que você procura. mas suponha que você gostaria que o script fosse executado aleatoriamente com uma probabilidade de 1:30 (uma vez a cada 30 minutos)
Crie seu script cron por uma peridiocidade de, digamos, 10 minutos. Ele dispara 3 vezes a cada 30 minutos.
Dentro do script, use rand como condição para uma instrução if . Você deseja que o rand retorne um número entre 0 e 2. Se for 0, execute o conteúdo da instrução if.
Essencialmente, seu script sempre dispara em um intervalo definido. Mas apenas executará o comando que lhe interessa aleatoriamente. O seu provedor de serviços agradecerá.
fonte