crontab不執行perl指令碼分析,crontabperl指令碼

來源:互聯網
上載者:User

crontab不執行perl指令碼分析,crontabperl指令碼

在新裝的Linux伺服器上部署了一個作業監控磁碟空間並提前警示,在shell指令碼裡面調用了一個perl指令碼發送警示郵件。結果出現了一個很奇怪的現象:如果手工執行該指令碼/home/oracle/scripts/disk_capatiy_alarm.sh能發出警示郵件,但是在crontab裡面發現指令碼沒有發出警示郵件。檢查了/var/log/cron後發現該作業執行了。最後發現shell執行了,但是perl指令碼沒有執行。搜尋了相關資料後,瞭解到一般出現這種情況要麼是因為環境變數,要麼是因為使用了相對路徑。因為crontab它總是不會預設的從使用者profile檔案中讀取環境變數參數,經常導致在手工執行某個指令碼時是成功的,但是到crontab中試圖讓它定期執行時就是會出錯.

我首先將perl ${email_content} 改成了使用絕對路徑/usr/bin/perl ${email_content} ,測試依然不行

因此在指令碼裡面應用環境變數./etc/profile 。 問題解決了。雖然寥寥幾字,但是從問題糾結我開始到問題解決。基本上花費了半天時間。網上也有不少人碰到過這種情況。

 

參考資料:

http://blog.slogra.com/post-238.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.