Назад | Перейти на главную страницу

Программное добавление двух строк в crontab

Я пытаюсь добавить две строки в корневой crontab при создании экземпляра AWS. У меня есть набор команд, которые являются частью «пользовательских данных». Эти команды запускаются от имени пользователя root при создании экземпляра. Я хотел бы добавить в crontab эти две строчки:

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

Я использую следующий подход (на основе ответ на этот вопрос):

(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 -

Однако это не работает, когда экземпляр создается, но он работает, если я вхожу в систему и запускаю эту строку. Есть ли другой способ добавить строки в crontab?

Если вы пытаетесь программно управлять crontab, просто создайте файл в /etc/cron.d/ например, /etc/cron.d/example-cron, и заполните его вышеупомянутыми строками:

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

Единственное отличие состоит в том, что вы должны включить пользователя для запуска cron в качестве второго аргумента. Я установил это на ubuntu в примере выше, но вы можете установить его на root например.