赞
踩
定时任务在命令行直接执行可以正确执行,但是加入定时任务之后没有执行结果
1、脚本中涉及文件路径时写全局路径;
2、检查crond服务是否启动
执行service crond status
查看该服务的运行状态。(Ubuntu系统上用/usr/sbin/service cron status
)如果进程已经dead,重启一下即可:
service crond start
3、系统级任务调度与用户级任务调度
定时任务有两种编辑方法,一种是root用户下编辑/etc/crontab文件:vi /etc/crontab;
一种是在特定用户身份下(可能是root,可能非root),执行crontab -e 进行编辑。
root用户的任务调度操作可以通过“crontab –uroot –e
”来设置,也可以将调度任务直接写入/etc/crontab文件,需要注意的是,如果要定义一个定时重启系统的任务,就必须将任务放到/etc/crontab文件,即使在root用户下创建一个定时重启系统的任务也是无效的。
4、crontab中包含非法字符
在crontab中%是有特殊含义的,表示换行的意思。如果要用的话必须进行转义%,如经常用的date ‘+%Y%m%d’
在crontab里是不会执行的,应该换成date ‘+\%Y\%m\%d’
5、查看corn执行日志,等待查看打出的日志有无正确执行所填写的任务
tail -f /var/log/cron
6、脚本执行要用到java或其他环境变量时,通过source命令引入环境变量,如:
#!/bin/bash
source /etc/profile
当手动执行脚本OK,但是crontab死活不执行时。可以尝试在crontab中直接引入环境变量解决问题。
0 * * * * . /etc/profile;/bin/sh /tmp/test.sh
7、如果还是不行,修改定时任务填写方式,手动切换到脚本路径之后再执行脚本
* * * * * cd /server/ && /bin/sh test.sh >>/dev/null 2>&1
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。