Как отложить выполнение cron на следующие несколько часов?

Мне приходится ежедневно перезагружать систему, для этого я создал файл сценария. В этом файле сценария я добавил условие, что если загрузка или выгрузка продолжаются, пропустите этот перезапуск.

Вот мой файл сценария

#!/bin/bash

if [ "$Upload" ]; then
    echo itsme | sudo -S shutdown -r now
fi

и для выполнения этого файла сценария я написал задание cron как

0 12 * * * ${HOME}/reboot-me.sh

Теперь я должен добавить функциональность, так как идет загрузка или загрузка, затем отложить перезагрузку на следующие 1 час или добавить задержку в 1 час.

Так как я могу отложить эту работу?

Изменить Я отредактировал мое состояние это работа?

if [ "$Upload" ]; then
        echo itsme | sudo -S shutdown -r now
else
        sleep 3600
        if [ "$Upload" ]; then
           echo itsme | sudo -S shutdown -r now
        else
           echo "uploading....."
        fi
fi

1 ответ

Пусть ваш cronjob запускается каждый час и проверяет, подходит ли время для перезагрузки:

  • за 12 часов?
  • уже перезагрузился сегодня?
  • что-то работает, что должно отложить перезагрузку?

С этими 3 пунктами вы сможете решить, можете ли вы перезагрузить компьютер или нет.

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