Назад | Перейти на главную страницу

Как получить код выхода из скрипта, запущенного в сеансе экрана

В настоящее время я создаю сценарий резервного копирования, который использует экран для запуска задания резервного копирования с помощью rsync внутри сеанса экрана. Задания резервного копирования запускаются следующим образом.

экран -dmS резервное копирование / usr / bin / rsync ...

Как только задание rsync завершено, сеанс экрана автоматически завершается. Чтобы убедиться, что резервное копирование прошло успешно, я хотел бы проверить код выхода задания rsync, но, к сожалению, я действительно не знаю, как получить код выхода после закрытия экрана.

У кого-нибудь есть хорошая идея, как автоматически проверять, было ли задание rsync успешным или нет?

Было бы здорово, если бы кто-нибудь это сделал.

Я уже думал об использовании временного файла, но вот так:

screen -dmS myScreen "rsync -av ...; echo $?> / tmp / myExitCode", но это, к сожалению, не работает. Затем я подумал об использовании stderr, как в примере ниже:

экран -dmS myScreen "rsync -av ...> 2 / tmp / rsync-sterr

Пока ни одна из моих идей не реализовалась, поскольку stderr не записывается, когда я использую приведенную выше команду. :-(?

Было бы здорово, если бы у кого-то была хорошая идея или даже решение.

Привет,

Беттина

Проходить sh -c "commands" на экран, если вы хотите использовать перенаправление и тому подобное:

screen -dmS name sh -c '{ rsync -av ... 2>&1; echo $?; } >~/rsync-status'

Кроме того, это fd>fileне >fd file. Чтобы перенаправить stderr, вы должны использовать 2>foo.