系统是centos,发现crontab定时任务不执行
登录系统用手工执行脚本就可以
其它如crontab配置文件没有对用户做限制,
脚本权限也赋予执行,用root账户执行,但是最后还是不行,
请各位大神指点一下,下面是Log和脚本内容
Feb 7 14:10:01 1280859075761a8Z crond[12517]: (root) CMD (/usr/lib/sa/sa1 1 1)
Feb 7 14:20:01 1280859075761a8Z crond[12813]: (root) CMD (/usr/lib/sa/sa1 1 1)
Feb 7 14:30:01 1280859075761a8Z crond[13115]: (root) CMD (/usr/lib/sa/sa1 1 1)
Feb 7 14:40:01 1280859075761a8Z crond[13471]: (root) CMD (/usr/lib/sa/sa1 1 1)
Feb 7 14:41:02 1280859075761a8Z crontab[13510]: (root) BEGIN EDIT (root)
Feb 7 14:41:47 1280859075761a8Z crontab[13510]: (root) END EDIT (root)
Feb 7 14:41:51 1280859075761a8Z crontab[13534]: (root) BEGIN EDIT (root)
Feb 7 14:42:24 1280859075761a8Z crontab[13534]: (root) REPLACE (root)
Feb 7 14:42:24 1280859075761a8Z crontab[13534]: (root) END EDIT (root)
Feb 7 14:42:40 1280859075761a8Z crontab[13564]: (root) LIST (root)
Feb 7 14:43:01 1280859075761a8Z crond[18021]: (root) RELOAD (cron/root)
Feb 7 14:45:01 1280859075761a8Z crond[13638]: (root) CMD (/backuptoqiniu/backuptoqiniu.sh )
Feb 7 14:50:01 AY1311280859075761a8Z crond[13791]: (root) CMD (/usr/lib/sa/sa1 1 1)
Feb 7 15:00:01 AY1311280859075761a8Z crond[14091]: (root) CMD (/usr/lib/sa/sa1 1 1)
Feb 7 15:01:01 AY1311280859075761a8Z crond[14120]: (root) CMD (run-parts /etc/cron.hourly)
shell code
#!/bin/bash
BACKUP_SRC="/home/wwwroot/tes"
MYSQL_SERVER="127.0.0.1"
MYSQL_USER="test"
MYSQL_PASS="tset"
DATEBASE="tee"
HOST="544"
NOW=$(date +"%Y-%m-%d-%H")
echo "start dump mysql"
ases.sql" -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS $DATEBASE > "$NOW-Databecho "dump ok"
echo "start tar"
tar -cPzf $HOST-$NOW-backup.tar.gz $NOW-Databases.sql "$BACKUP_SRC"
echo "tar ok"
python /root/backuptoqiniu/upload.py
rm -f $NOW-Databases.sql $HOST-$NOW-backup.tar.gz
echo "ALL ok"
crontab command
45 14 * * * /backuptoqiniu/backuptoqiniu.sh
Problem solving ideas:
1. To determine whether crontab has been executed, you can add a small script to write files that is executed every minute for testing. If there is a record, it means that there is no problem with the crontab itself.
For example:
Feb 7 14:45:01 1280859075761a8Z crond[13638]: (root) CMD (/backuptoqiniu/backuptoqiniu.sh )
This should indicate that crontab has been successfully executed, so there is no problem with the crontab service.2. In fact, most experienced people will know that there are no relevant environment variables for the execution of crontab. The solution is to log in the script. In addition, by default, all commands will use the full path .
Debugging method: add a log file, try to append all the original echoes to the log file, or append the log when crontab is writing.
45 14 * * * /backuptoqiniu/backuptoqiniu.sh >> /tmp/out.log 2>&1
ases.sql" -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS $DATEBASE > "$NOW-Datab
I don’t understand what you mean. Is your command not included in the default system commands?
Test method: Test that the PATH of crontab is different from the PATH of manual execution.
The detailed troubleshooting process has been given upstairs. Most of the problems with general planned tasks are caused by environment variables.
at the beginning of the scriptEither write the absolute path, or load /etc/profile
Add
above in crontab MAILTO=""
[root@mimvp-bj script]# service crond status
crond is stopped
[root@mimvp-bj script]# service crond start
Starting crond: [ OK ]
[root @mimvp-bj script]# service crond status
crond (pid 24577) is running…
Check if your crontab is open
Add a situation
If the system time is modified by
UTC
-->CST
Need to restart
crontab
serviceOtherwise
crontab
UTC time is still used, so if a specific hour is specified, it will not be executed