Я пишу сценарий удара для выполнения удаленного резервного копирования, с помощью rsync по SSH. Я могу отправить STDOUT на регистратор для журналов через
rsync --del -az -e 'ssh -i mycrt.crt' /home/gnutt/backup/ me@offisite:backup | logger -i
Но я хочу отправить STDERR вместо этого, поэтому если существует проблема, такой как, который удаленный недоступен, которые производят, должен быть отправлен на регистратор и зарегистрирован.
Если вам нужен stderr вместо stdout (а не stderr И stdout), вы можете сделать следующее:
Что выглядит следующим образом:
rsync --del -az -e 'ssh -i mycrt.crt' /home/gnutt/backup/ me@offisite:backup 9> /dev/null 1>&9 2>&1 | logger -i
В качестве альтернативы можно использовать подстановку процессов:
logger -i <( rsync --del -az -e 'ssh -i mycrt.crt' /home/gnutt/backup/ me@offisite:backup > /dev/null )
Вы можете перенаправить дескриптор STDERR (2) в STDOUT (1), добавив 2> & 1
, например:
rsync --del -az -e 'ssh -i mycrt.crt' /home/gnutt/backup/ me@offisite:backup 2>&1 | logger -i