手動在centos中執行sh指令碼,一切正常;將該sh加入crontab中任務計畫排程之後,完全沒有執行到的感覺啊!
檢視crontab執行記錄日誌,# cat /var/log/cron ,日誌中並沒有執行的記錄,說明計畫任務並沒有被排程執行。
重新編輯計畫任務,# crontab -e,把錯誤輸出重定向,40 10 * * * /home/job.sh 2>> /tmp/log,然後檢視日誌記錄,# cat /tmp/log , 有報錯資訊。
google一把,總結如下:
crontab的定時任務不能執行成功,但是手動執行指令碼能成功。說明不是指令碼本身的問題,推斷可能是crond沒有初始化使用者的環境變數。
解決辦法:
#!/bin/bash
#cd /var/www/yyt/yyt/branches/liulei161228/
. /etc/profile
basepath=$(cd `dirname $0`; pwd)
php $basepath/testresult.php
ok, 這樣,crontab在執行指令碼的時s候,就能夠讀到使用者的環境變數引數啦
crontab環境變數
crontab啟動shell指令碼的環境變數問題 環境 產品,平台,機型,軟體版本,等 aix5l 問題描述 crontab中啟動的shell指令碼不能正常執行,但是使用手動執行沒有問題,在 home profile中設定了指令碼所需要的環境變數。解答 cron命令的預設shell是 usr bin...
crontab 環境變數的使用方法
環境 產品,平台,機型,軟體版本,等 aix5l 問題描述 crontab中啟動的shell指令碼不能正常執行,但是使用手動執行沒有問題,在 home profile中設定了指令碼所需要的環境變數。解答 cron命令的預設shell是 usr bin bsh,如果要在cron啟動的指令碼中使用ksh...
解決crontab不載入環境變數問題
公司需要做異構庫資料同步,由於之前實際使用過,且字段型別也相容,滿足業務場景,使用了阿里開源資料同步工具 datax,伺服器上crontab定時指令碼執行。由於crontab只載入 ect environment,並不載入 etc profile和 bash profile,所以需要在指令碼裡手動新...