Использование hdparm указывает в работах сценария только вручную а не кроном

Я использую следующее, если... затем тестируют в автоматическом сценарии завершения работы, который запускается каждые 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. Дисковое состояние будет обнаружено правильно.

Но если крон запускает этот сценарий, и состояние еще не обнаруживается, оператор используется.

Почему это различие? И что я должен изменить?

0
задан 10 February 2018 в 09:14

1 ответ

Вероятно, потому что Ваш $PATH отличается по заданиям крона, и это не может найти hdparm. Укажите целый путь к hdparm, через который можно найти type -p hdparm.

Я также предлагаю выполнить a cron задание как:

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

Видеть что Ваш cron среда похожа. В более общем плане посмотрите на все свои среды выполнения.

1
ответ дан 31 October 2019 в 01:11

Другие вопросы по тегам:

Похожие вопросы: