mysql.sh代碼如下:User="root"DATABASE="db"TABLE="table"DATA=`mysql -u $USER $DATABASE <<EOF | tail -n+2select id from $TABLE;EOF`MySQL的密碼已經配置在my.cnf中,使用shell無需密碼驗證出現的問題是在命令行使用./mysql.sh可以正常讀取到MySQL數據,但是把./mysql.sh放入contab就會讀不到數據。contab -e:*/1 * * * * /sh/mysql.sh已經找到原因了,是手動執行的環境和crontab執行的環境不同造成的,把命令都改成據對路徑,mysql 改成類似 /usr/bin/mysql就可以了,但是為什么手動執行的環境和crontab執行的環境不同呢?他們各是什么環境?
1 回答

湖上湖
TA貢獻2003條經驗 獲得超2個贊
一個是登錄環境,由 login 設置并讀取 /etc/profile,然后啟動登錄 shell,由它再讀取一系列初始化文件。
另一個是 crond 設置的環境,沒有執行以上任何步驟,只設置了最小的環境變量集。
添加回答
舉報
0/150
提交
取消