使用smartctl的Bash脚本无法正常工作

时间:2015-02-18 00:27:20

标签: linux bash cron nas

我是bash脚本的新手,但我在使用FreeNAS设置NAS时发现GUI没有用于记录HDD温度的默认实现,所以我尝试设置一个bash脚本,将temps记录到文件并作为一个cron工作运行。我最终拼凑在一起看起来非常混乱,但是当从控制台作为脚本运行时起作用。

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

1 个答案:

答案 0 :(得分:0)

或许,验证 / usr / sbin / 中是否存在 smartctl 二进制文件并指定绝对路径 / usr / sbin / smartctl 对于cronjob运行的脚本中的 smartctl ,请将 smartctl 替换为 / usr / sbin / smartctl