脚本添加的 cron 任务不执行,要运行 crontab -e 保存一次才行。

2021-10-01 01:55:26 +08:00
 aocif23

脚本添加 cron 内容如下,用户名为 test

#!/bin/bash

USER=test

sudo tee -a /var/spool/cron/crontabs/$USER >/dev/null <<'EOF'
*/5 * * * * echo a >> /tmp/test.txt

EOF

sudo chown -R $USER:crontab "/var/spool/cron/crontabs/$USER"

这里添加后即使 cron 服务已经启动,但还是不执行,要用户运行 crontab -e 保存一次才行

是添加的方法不对吗?

3195 次点击
所在节点    Linux
7 条回复
amrnxcdt
2021-10-01 02:41:17 +08:00
更新配置文件后需要通知 crond 重载配置
wd
2021-10-01 05:07:18 +08:00
不要改这个文件 你去看看 /etc/cron.d 下面的东西
IgniteWhite
2021-10-01 05:42:32 +08:00
@wd 这是 root 的 cron 文件,crontab -e 是改当前用户的
ThirdFlame
2021-10-01 10:48:31 +08:00
(crontab -l;printf "* * * * * /bin/touch /dev/shm/test; \r\n")|crontab -
aocif23
2021-10-02 13:36:57 +08:00
@ThirdFlame
这样子添加 cron 任务能正常执行。
julyclyde
2021-10-05 13:29:30 +08:00
@amrnxcdt 应该并不存在所谓“通知 crond”重载配置这个事。具体行为可以看 cron 的日志和 strace 跟踪


@wd 的做法是比较好的。建议不要用“用户级”crontab,因为容易加不易删。用 cron.d 比较容易将来删除干净
amrnxcdt
2021-10-05 20:02:50 +08:00
@julyclyde 感谢指出,重新检索一下网络,的确不需要显式 reload,crond 会每分钟检查所有配置文件看看有没有任务需要执行。
参考: https://stackoverflow.com/questions/10193788/restarting-cron-after-changing-crontab-file

楼主的问题应该检查一下 cron 的日志输出

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/805504

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX