以编程方式将两行添加到crontab

我正在尝试在构buildAWS实例时将两行添加到root crontab。 我有一组命令是“用户数据”的一部分。 这些命令在创build实例时以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 - 

但是,当创build实例时,这不起作用,但是如果我login并运行这一行,它就可以工作。 有没有什么不同的方式,我可以将行追加到crontab?

如果你想以编程方式来pipe理crontabs,只需在/etc/cron.d/创build一个文件,例如/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