我有一个应用程序,它具有一些通过 crontab 安排的功能。
有没有什么办法可以让我将这些 crontab 启动的命令保存在 git 存储库中,同时将它们添加到用户的 crontab 中?
我的第一个想法是在中添加* * * * * crontab /home/user/git_repository/crontab
一个新行crontab -e
,以便它始终自动获取它,但是crontab -h
说(default operation is replace, per 1003.2)
,而我只是希望除了用户的 crontab 之外还处理我的特殊 crontab,所以我不确定这是否是正确的方法。
答案1
首先,问题是。Cron 存储在“/var/spool/cron/crontabs”或类似位置,具体取决于发行版。您可以将其添加到 git(可能只是您用户的 crontab,而不是整个目录),但您需要 root 访问权限。我认为如果您手动更新 crontab,您可能需要重新启动 cron 才能重新加载 crontab。
其次,错误看起来像是独占锁。显然,你不能在 crontab 时执行 crontab,这是为了不被覆盖。
对于系统级同步和其他内容,我使用 ansible,但对于这个小任务来说这可能有点小题大做。