Я пытаюсь добавить две строки в корневой 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
например.