1. 程式人生 > >linux中的指令碼,手工執行正常,crond執行卻無執行結果解決方法!

linux中的指令碼,手工執行正常,crond執行卻無執行結果解決方法!

遇到一個比較奇怪的問題,在redhat6.7上面執行mysqldump備份的一個指令碼,手工測試之後是正常的;so就加上日程,用crond跑了起來。

第二天過來檢查的時候,發現sql檔案是個0位元組的檔案;我的資料量都是幾十M的所有看來是備份出問題了,接下來就一步一部,排查了

重新手工執行一遍,備份的sql資料沒有問題;so,就開始想是不是變數哪裡出問題了,後面mysqldump加了一個絕對路徑,第二天,檔案備份成功了;

但是我查看了使用者的環境變數,裡面是有mysqldump的路徑的呀,怎麼相對路徑不能執行呢

後來查了下,原來crond的變數都是呼叫自身的變數,而不是呼叫使用者設定的變數,在/etc/crontab有個配置檔案,把mysqldump路徑加上去就可以了

so,以後crond執行指令碼,我知道,變數需要在crond中添加了