2015-06-04 96 views
0

我bash腳本在CentOS 6成功運行爲的cronbash腳本的奇怪輸出

sh /a/mem1.sh >/a/mem1.txt; if [ -s /a/mem1.txt ] ; then mail -s "Server Low Memory" < /a/mem1.txt [email protected] ; fi 

但CentOS的7下,它也成功的作品作爲cron的 - 但會發出一種奇怪的三線額外的輸出

tput: No value for $TERM and no -T specified 
tput: No value for $TERM and no -T specified 
tput: No value for $TERM and no -T specified 

所以我收到兩封電子郵件 - 一個正常的腳本輸出應該和用異樣的輸出如上

我檢查行由行裏面的腳本命令另一封電子郵件 - EV紅色沒有任何錯誤或警告。 Google沒有太多幫助。 預先感謝提示它可能是什麼以及如何解決它。

+0

cron是發送第二封電子郵件還是郵件發送? –

+0

@anubhava謝謝,試過了,沒有幫助 - 似乎來自Etan Reisner的想法更接近,但我需要理解如下的語法 – Serge

回答

2

有東西在腳本運行tput(大概是爲了何時能着色輸出)和CentOS 7顯然沒有TERM值在cron的環境,讓tput抱怨其設置。

無論是從腳本中刪除呼叫tput或用於通過cron該進程設置TERM一個值或-T標誌添加到呼叫強迫一個特定的術語類型。

+1

或者如果stdout是終端,則重寫腳本以僅使用tput,因爲它應該在第一名。 –

+0

你的解釋是非常邏輯的,我覺得這裏的某個解決方案。 但是它對我來說仍然具體如何設置TERM或-T標誌語法。 我有這樣 在腳本這樣的命令'自由= $(免費-mt | grep的總| AWK '{打印$ 4}')' 和 '的vmstat 2 -n 1' 和 '的ps aux>的/ tmp/'日期+%Y-%m-%d-%H-%M-%S'_ps-aux' 如何重寫它們? – Serge

+0

這些命令都不會在任何地方使用'tput'。這是整個劇本嗎?腳本是否運行其他腳本?腳本源碼的shell啓動文件? –