Захватить код выхода для удаленного скрипта? - PullRequest
6 голосов
/ 06 октября 2011

У меня есть скрипт оболочки, который запускается на моем сервере каждый день. Он выполняет уборку дома и подключается к удаленному хосту для выполнения других задач, т. Е.

#!/bin/bash

#do something...
...locally...

#run remote script...
ssh user@remotehost "/opt/process/verify.sh"

exit

Работает нормально, но для безопасности я хотел бы захватить (если возможно) код возврата из "/opt/process/verify.sh", т. Е.

  • если не получится, верните «1» и отправьте письмо администратору
  • в случае успеха верните «0» и отправьте электронное письмо разработчику.

Я начал читать о команде trap. Могу ли я использовать это для этой цели? Есть ли другой вариант?

Ответы [ 3 ]

19 голосов
/ 06 октября 2011

ssh возвращает возвращаемое значение рассматриваемой команды или 255, если ошибка произошла в самой ssh. Просто проверьте это значение и примите соответствующие меры.

8 голосов
/ 06 октября 2011

Вы можете использовать $?переменная, чтобы получить код ответа.Например:

% ssh somebox /bin/true
% echo $?
0
% ssh somebox /bin/false
% echo $?
1
5 голосов
/ 06 октября 2011
ssh user@remotehost "/opt/process/verify.sh"
echo $?

echo $? печать кода возврата

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...