Linux计划任务执行结果和手动执行不一致,发生原因有三种:
以下是计划任务和脚本情况介绍,写出具体代码是为了说明第三种情况
[root@salt-master 09]# crontab -l
*/1 * * * * /bin/sh /root/test03/09/01.sh >/dev/null 2>&1
*/1 * * * * /bin/sh /root/test03/09/02.sh >/root/test03/09/03.txt 2>&1
[root@salt-master 09]# cat 01.sh
#!/bin/bash
A=`cat /root/test03/09/03.txt`
echo $A
[root@salt-master 09]# cat 02.sh
#!/bin/bash
ls /root/test03/09/*
[root@salt-master 09]# cat 03.txt
/root/test03/09/01.sh
/root/test03/09/02.sh
/root/test03/09/03.txt
1、脚本中命令未使用绝对路径
一般系统命令没有这个问题,但是一些编译安装的服务命令,如果没有写入环境变量,则会导致调用失败,这时候要么写入环境变量的配置文件,并source文件;要么写上绝对路径。
例如编译安装的mysql,可以使用绝对路径/usr/local/bin/mysql ,则可以避免这个问题,其他命令也一样。
2、crontab配置文件中未使用绝对路径