2015-02-18 50 views
0

我很新的bash腳本,但我建立一個NAS與FreeNAS我發現GU​​I沒有默認實現日誌HDD溫度,所以我試圖設置一個bash腳本會將臨時記錄記錄到文件並作爲cron作業運行。我最終拼湊起來的東西看起來非常混亂,但在從控制檯作爲腳本運行時工作。bash腳本與smartctl不工作

HDDtemps.sh:

#!/bin/bash -- 
PATH=$PATH:/tmp:/usr/local/sbin 
printf '%s %s %s %s %s\n' $(echo -n $(date +"%b %d %T")) ' :: ada0 Temperature Celsius = ' $(echo $(smartctl -A /dev/ada0 | grep Temperature_Celsius) | awk '{print $10}') >> temperatures.txt 
printf '%s %s %s %s %s\n' $(echo -n $(date +"%b %d %T")) ' :: ada1 Temperature Celsius = ' $(echo $(smartctl -A /dev/ada1 | grep Temperature_Celsius) | awk '{print $10}') >> temperatures.txt 
exit; 

然而,當由cron執行時,該文件被創建並打印成,但僅

Feb 17 19:22:00 :: ada0 Temperature Celsius =

被寫入到該文件中,溫度是沒有出現。我不確定我在這裏做錯了什麼,我會很感激任何幫助。

謝謝!

編輯:

的的cronjob是

* * * * * sh /path/to/HDDtemps.sh

+0

您是否安裝了smartmontools [smartmontools](http://www.smartmontools.org/) – Rustam 2015-02-18 03:00:22

+0

是的,就像我說的那樣,腳本在通過控制檯執行時按預期運行,溫度正確寫入文件,它是隻有一個來自cronjob的問題。 – odin 2015-02-18 04:06:19

回答

0

也許,驗證smartctl讀取二進制存在於/usr/sbin目錄/和指定的絕對路徑的/ usr/sbin/smartctl for smartctl在由cronjob運行的腳本中,因此替換爲smartctl/usr/sbin/smartctl