Как узнать, когда все процессы Rsync завершились и отправить письмо пользователю [email protected]?

$(while [ ! -z "$(pgrep rsync)" ]; do echo; done; echo "rsync done" | mailx [email protected]) > /dev/null &


Данная команда выполняет прослеживание выполнения всех процессов rsync и отправляет письмо на указанный адрес, когда все процессы завершены. Команда использует цикл while для проверки наличия активных процессов rsync (выбранная условие [ ! -z «$(pgrep rsync)» ] возвращает true, пока процессы rsync активны), и выводит пустую строку после каждой проверки. Когда все процессы завершаются, выводится сообщение «rsync done», которое затем передается в команду mailx для отправки на адрес [email protected]. Команда «> /dev/null» перенаправляет любой вывод команды в нулевое устройство (проигнорирование вывода). Знак «&» в конце команды позволяет запустить команду в фоновом режиме.

Альтернативным подходом может быть использование утилиты wait, которая ожидает завершения заданных процессов, и затем выполняет отправку письма. В этом случае команда может выглядеть следующим образом: «wait $(pgrep rsync) && echo «rsync done» | mailx [email protected]».

В данной команде нет передаваемых аргументов.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *