我需要在用户的 crontab 文件中添加一行。通常,我会使用 来执行此操作crontab -e
,但我想使用配置脚本来执行此操作。
有什么巧妙的方法吗?
答案1
怎么样:
(crontab -u USERNAME -l ; echo "line to be added") | crontab -u USERNAME -
...或者(尽管不建议直接编辑 crontab 文件):
echo "line to be added" >> /var/spool/cron/crontabs/USERNAME
(假设您的配置脚本以 root 身份运行。)
答案2
有几种方法
如果你希望用户编辑它,这将起作用
echo "normal crontab line here" >> /var/spool/cron/user
如果你不想让用户编辑它..我会将一个文件放入/etc/cron.d,就像
0 0 * * * username /path/to/file
您可以随意叫它名字。
答案3
多年后再回过头来看,如果你发现自己处于这种情况,你应该仔细研究一下配置管理工具。特别是,Ansible 是一个很好的选择,它很容易融入现有的基础设施,并且一个不错的 cron 模块。
答案4
您可以直接添加新的 cron(如果您具有 root 权限)。您还可以指定以用户身份运行。
/etc/cron.d/文件名