crontab定时任务不执行的原因
2018-06-26 16:52 Loull 阅读(3917) 评论(0) 编辑 收藏 举报查看所有用户下的定时任务:
for u in `cat /etc/passwd | cut -d":" -f1`;do crontab -l -u $u;done
查看cron执行的日志记录:
tail /var/log/cron
docker容器里cron没生效 或 没有日志
如果没有日志,可能是没有打开rsyslog (centos)
/etc/init.d/rsyslog start
CentOS 7:
- # systemctl restart rsyslog.service
CentOS 6:
- # service rsyslog restart
centos7镜像创建的容器里面安装服务后,可能会启动rsyslog 失败
[root@1a7e1970060a /]# systemctl start sshd
Failed to get D-Bus connection: Operation not permitted
http://dockone.io/question/729
列举5个原因:
1 crond服务未启动
crontab不是Linux内核的功能,而是依赖一个crond服务,这个服务可以启动当然也可以停止。如果停止了就无法执行任何定时任务了,解决的方法是打开它:
crond
或
service crond start
如果提示crond命令不存在,可能被误删除了,CentOS下可以通过这个命令重新安装:
yum -y install crontabs
2 权限问题
比如:脚本没有x执行权限,解决方法:
增加执行权限,或者用bash abc.sh的方法执行
3 路径问题
有的命令在shell中执行正常,但是在crontab执行却总是失败。有可能是因为crontab使用的sh未正确识别路径,比如:以root身份登录shell后执行一个/root/test.sh,只要执行
./test.sh
就可以了。但是在crontab中,就会找不到这个脚本,比如写完整:
/root/test.sh
4 时差问题
因为服务器与客户端时差问题,所以crontab的时间以服务器时间为准。
5 变量问题
有时候命令中含有变量,但crontab执行时却没有,也会造成执行失败。
6. 路径问题
相对路径会找不到文件,要使用绝对路径。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2015-06-26 【转】轻量级分布式 RPC 框架
2013-06-26 Sparsity稀疏编码(三)
2013-06-26 Sparsity稀疏编码(二)
2013-06-26 Sparsity稀疏编码(一)
2013-06-26 概念学习和归纳偏置