我使用以下 if ... 然后在 cron 每 15 分钟启动一次的自动关机脚本中进行测试。
# Check if disk1 is currently spinning
if [ "$(hdparm -C /dev/sdb1 | grep -o "active/idle\|standby")" = "active/i$
logit disk1 running, auto shutdown terminated
return 1
如果我使用手动启动脚本,这很好./autoshutdown.sh
。将正确检测磁盘状态。
但如果 cron 正在启动此脚本并且未检测到状态,则使用 else 语句。
为什么会有这种差异?我需要改变什么?
可能是因为您
$PATH
的 cron 作业不同,并且找不到 hdparm。指定 的完整路径hdparm
,您可以通过type -p hdparm
.我还建议从事以下
cron
工作:看看你的
cron
环境是什么样的。更一般地,查看所有运行环境。