Запускать cron, только если сервер активен

Чтобы объяснить вопрос: мой сервер (NAS) спит, когда он не используется, и я хочу, чтобы он оставался таким. Однако, когда кто-то загружает папку с фотографиями, он просыпается и обрабатывает загрузку.

Я хотел бы уведомить группу людей, когда кто-то загружает новую папку, я бы хотел иметь "cron", который запускается при специальное событие «кто-то загружает новую папку» или «cron», которое запускается только когда NAS не спит, потому что обычно, когда я планирую запуск cron каждые 4 часа, сервер спит, а затем просыпается (каждые 4 часа) - чего я не хочу.

«Процесс загрузки» (создание эскизов) является сторонним приложением, и я не могу его изменить. Что мне нужно, так это запустить сценарий уведомления в нужное время (а не разбудить спящий NAS).

0
задан 4 December 2016 в 22:59
1 ответ

Cron - это планировщик заданий на основе времени, а не на основе событий. Я не знаю, как заставить Cron что-то делать в ответ на событие.

Мне кажется, что вы, вероятно, захотите вместо этого сценарий bash. В зависимости от операционной системы вашего NAS у вас должна быть возможность автоматически запускать сценарий bash при возобновлении работы (выход из спящего режима). В Ubuntu, например, вы должны использовать pm-utils для этого: https://askubuntu.com/questions/226278/run-script-on-wakeup ваша ОС может отличаться.

сценарий, который вы запускаете при пробуждении, может использовать операторы bash IF и test для проверки существования файла или папки, отправляя электронное письмо, если оно обнаружено. Дополнительную информацию об использовании операторов IF таким образом можно найти здесь: https://www.cyberciti.biz/tips/find-out-if-file-exists-with-conditional-expressions. html

0
ответ дан 5 December 2019 в 09:07

Теги

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