排查linux 定时任务cron crontab
简介:#
我在使用shell编程来实现DDNS服务的注册更新工作。
但是老发现cron不正常工作。为所有的排查做个指导记录吧。
一:检查cron编写#
*/1 * * * * echo hello >> /root/out.log
每分钟执行一次写入临时文件。
#查看cron日志 journalctl --no-pager --since today -g 'cron'
Mar 21 10:05:01 pve0 cron[920]: (root) RELOAD (crontabs/root) Mar 21 10:05:01 pve0 CRON[2442599]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0) Mar 21 10:05:01 pve0 CRON[2442599]: pam_unix(cron:session): session closed for user root Mar 21 10:06:01 pve0 CRON[2442754]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0) Mar 21 10:06:01 pve0 CRON[2442754]: pam_unix(cron:session): session closed for user root
二:检查命令编写#
写个测试脚本,存为/root/test.sh
#!/bin/bash time_s=$(date "+%Y-%m-%d %H:%M:%S") echo $time_s >> /root/out.log
写cron
*/1 * * * * /root/test.sh
三:检查shell编写#
直接执行你的shell,看有什么问题吧。
注意:#
执行 ./***.sh 和执行 /root/***.sh是不一样的,就和windows快捷方式启动位置的概念一样。
你在crontab写的是完整路径的脚本,那么相对路径位置是不同的,所以
手动执行
bash /root/***.sh 才和craontab执行效果一致。
cron执行:
或者执行 cd root && ./****.sh
或者执行 cd root && /root/****.sh
作者:上官飞鸿
出处:https://www.cnblogs.com/jackadam/p/18086749
版权:本作品采用「知识共享-署名-非商业性-禁止演绎(CC-BY-NC-ND)」许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步