脚本中 hdparm 状态的使用只能手动进行,不能通过 cron 进行

脚本中 hdparm 状态的使用只能手动进行,不能通过 cron 进行

我使用以下 if ... then 在自动关机脚本中进行测试,该脚本由 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 语句。

为什么会有这种差异?我需要做哪些更改?

答案1

可能是因为您的$PATHcron 作业不同,并且找不到 hdparm。请指定 的完整路径hdparm,您可以通过 找到它type -p hdparm

我还建议运行cron如下作业:

env | sort >$HOME/cron.env
echo $PATH | tr ':' "\n" >$HOME/cron.path

查看您的cron环境是什么样的。更一般地,查看所有运行环境。

相关内容