上一篇文檔腳本手動能執行成功,crontab定時任務執行腳本不成功。
原因:cron的環境變量和shell腳本的環境變量不一樣
解決辦法: #方法一:定時任務里面切換到root執行() */5 * * * * su - root -c "/data/pkgs/mysql/tools/auto_backup.sh" #方法二:在腳本里面添加環境變量(親測可用) vim /data/pkgs/mysql/tools/auto_backup.sh #!/bin/bash source /etc/profile source ~/.bash_profile
#!/bin/sh
# 在這修改程序名和程序所在目錄,其他不用改
source /etc/profile
source ~/.bash_profile
name="carte"
path="/app/bigdata/data-integration/"
pid=`ps -A |grep $name| awk '{print $1}'`
now=`date "+%Y-%m-%d %H:%M:%S"`
# 檢測是否在運行
if [ ! $pid ]
then
echo "$now $name is not running, start it now..."
# 啟動程序命令
cd $path
echo "$now $path come in..."
nohup /app/bigdata/data-integration/carte.sh /app/bigdata/data-integration/pwd/carte-config-master-8080.xml >> /data/bigdata/kettle/log/spoon.log 2>&1 &
new_pid=`ps -A |grep $name| awk '{print $1}'`
# 檢測是否啟動成功
else
echo "$now $name is running, pid is $pid"
fi
定時任務可以通過cat /var/spool/mail/root查看是否生效
