Eu não tenho previlage para usar crontab -e para executar o meu script. Existe outra maneira de executar periodicamente meu script? Basicamente eu preciso executá-lo uma vez por semana.
Eu não tenho previlage para usar crontab -e para executar o meu script. Existe outra maneira de executar periodicamente meu script? Basicamente eu preciso executá-lo uma vez por semana.
Respostas:
Se ativado e instalado, você pode usar o at
comando. No entanto, é uma única vez agendamento .... você teria que executar um novo at
comando dentro da coisa que você queria reagendar.
Confira as man
páginas para ajuda no at
comando.
Mas lembre-se, nem sempre é instalado / habilitado em todos os sistemas Linux / UNIX.
A verdadeira resposta para isso é entrar em contato com o seu administrador de sistemas de vizinhança amigável, explicar seu problema e pedir que eles ativem o acesso do cron para você. Você deve explicar como seu programa é executado, seus requisitos de recursos e geralmente fazer uma promessa de que você não prejudicará o sistema se você obtiver privs de acesso ao cron.
Se você não pode / não quer manter um terminal aberto, você pode executá-lo no GNU Screen / tmux ou com o nohup
.
Exemplos:
screen sh -c 'while sleep 7d; do mycommand; done'
ou
tmux 'while sleep 7d; do mycommand; done'
Nota: estes comandos serão executados mycommand
pela primeira vez após uma semana e depois periodicamente, não diretamente. Mude de acordo com a preferência.
Consulte a documentação dos projetos para obter mais informações sobre como anexar / desanexar sessões.
( 7d
é específico do GNU, creio eu. Basta colocar 604800
lá em vez disso, se a sleep
versão só suporta segundos.)
Outra abordagem seria ter um cronjob rodando em uma máquina diferente, que usa ssh
para executar um determinado comando no servidor de destino. Se você configurar o login baseado em chave, isso será fácil.
Basta configurar um cronjob em outra máquina que pareça, por exemplo,
0 0 * * 7 /usr/bin/ssh remoteuser@remotehost mycommand
Com a exceção do servidor remoto estar offline no tempo de execução, isso seria confiável em relação a reinicializações remotas do servidor e outras coisas.
cron
pode não ser capaz de executarat
também.