常用命令
crontab -e 进入定时脚本,编辑后保存即立即生效
crontab -l 查看用户定时脚本
tail -f /var/log/cron 查看执行日志
service crond status 查看定时器运行状态
service crond restart 重启定时器
定时任务不执行原因
定时任务设置的格式正确,手动执行也没问题,但是定时任务就是不执行,这种情况的出现,一般是由下面几个原因造成的。
-
crond服务未启动
需要首先排查下crond服务是否启动,可使用systemctl status crond 命令查看,如果未启动,则启动即可。
-
脚本无权限
如果要执行脚本无权限,通过chmod命令加上权限即可。
-
文件路径问题
定时任务要执行的脚本中涉及文件路径时,一定要写全局路径,不能写相对路径。
-
环境变量问题
定时任务要执行的脚本要用到java或其他环境变量时,需要通过source命令引入环境变量。
注意:执行启动java程序时必须在脚本中加入引入linux服务器本身的环境变量,因为crontab的环境变量跟linux环境变量不一样的,如果不引入读取环境变量,则会导致执行失败
xml
#!/bin/sh
source /etc/profile
source ~/.bash_profile
执行示例:
xml
*/1 * * * * cd /home/project/zjdx/gateway/ump-mtreceiver && /bin/sh ./mtreceiver.sh stop&& sleep 10 && /bin/sh ./mtreceiver.sh start