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 atcomando. No entanto, é uma única vez agendamento .... você teria que executar um novo atcomando dentro da coisa que você queria reagendar.
Confira as manpáginas para ajuda no atcomando.
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 mycommandpela 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 604800lá em vez disso, se a sleepversão só suporta segundos.)
Outra abordagem seria ter um cronjob rodando em uma máquina diferente, que usa sshpara 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.
cronpode não ser capaz de executarattambém.