Programaticamente adicionando duas linhas ao crontab

3

Estou tentando adicionar duas linhas ao crontab raiz ao criar uma instância do AWS. Eu tenho um conjunto de comandos que fazem parte dos "dados do usuário". Esses comandos são executados como root ao criar a instância. Eu gostaria de adicionar estas duas linhas ao crontab:

@daily /home/ubuntu/db-backup-to-s3-daily.sh
@hourly /home/ubuntu/db-backup-to-s3-hourly.sh

Estou usando a seguinte abordagem (com base em uma resposta para este pergunta):

(crontab -u ubuntu -l ; echo -e "@daily /home/ubuntu/db-backup-to-s3-daily.sh\n@hourly /home/ubuntu/db-backup-to-s3-hourly.sh") | crontab -u ubuntu -

No entanto, isso não funciona quando a instância está sendo criada, mas funciona se eu fizer login e executar essa linha. Existe alguma maneira diferente de acrescentar linhas ao crontab?

    
por celenius 06.05.2014 / 21:56

1 resposta

7

Se você estiver tentando gerenciar crontabs programaticamente, basta criar um arquivo em /etc/cron.d/ , por exemplo, /etc/cron.d/example-cron , e preenchê-lo com as linhas mencionadas acima:

@daily ubuntu /home/ubuntu/db-backup-to-s3-daily.sh
@hourly ubuntu /home/ubuntu/db-backup-to-s3-hourly.sh

A única diferença é que você precisa incluir um usuário para executar o cron como segundo argumento. Eu o defino como ubuntu no exemplo acima, mas você pode defini-lo como root , por exemplo.

    
por 06.05.2014 / 22:00