我寫了一個shell腳本,它檢查存儲設備中的文件系統並將輸出郵寄到特定的電子郵件。當我手動執行它時,它運行良好,我正在收到有效內容的電子郵件。但是,當我將它放在cronjob中爲同一個用戶時,它正在發送空郵件。我無法找出遺漏的東西。即使我爲root用戶安排了cronjob,同樣的問題仍然存在。下面是我的腳本:Cronjob調用Shell腳本發送空郵件
$ cat qmon.sh
nas_fs -list \
| grep -v ckpt_ \
| grep -v root_ \
| awk '{print $6}' >filesystem_list
for i in `cat filesystem_list`
do
nas_quotas -report -tree -fs $i \
| egrep -i -B18 'mins|day|exp' >>quota_exp
done
cat quota_exp \
| mail -s "FF VNX01 Quota report" [email protected]
cat /dev/null >quota_exp
我懷疑的是,這些車票甚至filesystem_list的位置在什麼地方之一,東西取決於失去了一個環境變量。通常它是'$ HOME''。在qmon.sh中添加更多輸出以幫助診斷,例如在''for i''之前,執行''echo looping through list''等。 –
如果結束行,則不需要反斜槓用'|'; shell會知道該命令在下一行繼續,因爲命令不能以管道結束。 – chepner
不要[使用for循環遍歷文件](http://mywiki.wooledge.org/BashFAQ/001)。 – chepner