linux定时任务不执行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux定时任务不执行相关的知识,希望对你有一定的参考价值。
脚本能手动执行,而且在另一台机器上加入定时能够执行,可是在我现在的机器上就是不能运行,在/var/log/cron可以看到其执行的信息,在/var/mail/root下看到脚本在执行时出现问题,lsof: status error on 25294: No such file or directory,cp: missing destination file operand after,当然我能看到它所描述的问题,可实际上命令不存在这些问题,我怀疑是环境变量的问题,在一开始也引入,. /etc/profile,结果还是不行。脚本权限已经是777了,帮忙想想还有什么地方我错过了,谢谢
参考技术A 手动执行你的环境变量是有的,cron里面这些环境变量就没有了,你可以用echo $<环境变量名>在你的脚本里面测试一下,输出可以定向到某个临时文件里面。 参考技术B 不要怀疑日志,你肯定是cp用法出错了,你可以试试手动执行你的命令,肯定报错!再核查一下吧,或者你把你的计划任务截图发出来 参考技术C 请 贴出你的crontab -l 的信息 ,好做分析追问00 * * * * /opt/scripts/bin/cut_all_tomcat_logs.sh
追答00 * * * * 你确定是这么??
分 时 日 月 周 我记得格式是5位。
你怎么弄出个6位的啊
我是想让它整点执行,这个倒是能实现。打出的日志确实是可以整点执行,只是因为加入定时任务后脚本执行会出错,这个我不知道怎么解决
追答你再看看你那几个命令 目标 目的 是不是都正确啊
追问确实正确,毕竟手动执行了无误才加定时任务的嘛,我再试试其他方法
参考技术D 楼主不妨把脚本贴出来看看。 你cp到什么位置?追问. /etc/profile
cp $log_dir $Cut_Log_Dir/$Cut_Logs_Type/$Local_Ip/$Day_Time/catalina.out_$AN_Hour_Ago
echo > $log_dir
字数限制,贴出关键语句
楼主确定环境变量都设置正确了吗?如果是,不妨改成cp $log_dir $Cut_Log_Dir/$Cut_Logs_Type/$Local_Ip/$Day_Time/catalina.out_$AN_Hour_Ago
试试。
嗯,非常确定没问题,因为手动执行是ok的,而且在另一台机器上的定时任务执行也没问题,而且两台机器的配置也完全一样,系统间的区别实在是很微妙。我先试试
追答建议楼主以后就算用变量设置路径也要把路径设置成绝对路径。
本回答被提问者采纳linux定时任务执行python脚本
企业微信应用--值日生,每周一三五发消息给同学打扫卫生。脚本利用linux的定时任务crontab来执行,每天跑一遍。
1.开启crontab日志。
crontab默认不开启日志,所以先开启定时任务的日志来查看
修改rsyslog服务,将 /etc/rsyslog.d/50-default.conf 文件中的 #cron.* 前的 # 删掉;用service rsyslog restart重启rsyslog服务:
2.写定时任务
crontab -e
开启本用户的定时任务,即创建以本用户名为文件名的定时任务文件,位置在/var/spool/cron/crontabs/。
定时任务语句格式为:执行周期+命令,周期有5个域,分别是
分钟,小时,日(day of month),月(month of year),周几(day of week).
每个域不加限制任意的话用*,整体格式为:
* * * * * command
比如我的脚本是 /home/xiaofeng/cleanroom.py
执行环境为 /usr/bin/python3
每天9点运行一次
则语句为
0 9 * * * /usr/bin/python3 /home/xiaofeng/cleanroom.py
写完后重启cron 服务
service cron restart
顺便附上常用的周期格式
每五分钟执行 */5 * * * *
每小时执行 0 * * * *
每天执行 0 0 * * *
每周执行 0 0 * * 0
每月执行 0 0 1 * *
每年执行 0 0 1 1 *
以上是关于linux定时任务不执行的主要内容,如果未能解决你的问题,请参考以下文章