我对bash脚本非常陌生,但是在使用FreeNAS设置NAS时,我发现GU​​I没有用于记录HDD温度的默认实现,因此我尝试设置一个bash脚本来将临时文件记录到文件并以定时工作。我最终拼凑的内容看起来非常混乱,但是当从控制台作为脚本运行时可以使用。

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

最佳答案

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

关于linux - 具有smartctl的Bash脚本不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28573815/

10-11 04:25