Linux下用crontab執行定時任務的時候不會讀取全局環境變量和當前用戶環境變量(/etc/profile、~/.bash_profile),所以會導致手工執行某個腳本時是成功的,但是crontab定期執行有問題。
兩種解決辦法:
1、在Shell文件裏面獲取環境變量值的路徑寫成絕對路徑,別用環境變量的路徑值。
比如mysql替換成/usr/local/mysql/bin/mysql
2、Shell腳本缺省的#!/bin/bash開頭換行
#!/bin/bash . /etc/profile . ~/.bash_profile