我是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
答案 0 :(得分:0)
或许,验证 / usr / sbin / 中是否存在 smartctl 二进制文件并指定绝对路径 / usr / sbin / smartctl 对于cronjob运行的脚本中的 smartctl ,请将 smartctl 替换为 / usr / sbin / smartctl 。