Проверьте успешность добавления удаленного файла через ssh

Мне нравится периодически добавлять некоторые данные в удаленный файл через ssh и удалите его локально. Подобно:

cat some_lines_to_append.txt | ssh user@example.com 'cat >> all_lines_collected.txt'
rm some_lines_to_append.txt

Теперь я хочу убедиться, some_lines_to_append.txt удаляется, только если строки были успешно переданы. Как это сделать?

Есть ли >> создать какой-то код возврата ошибки сам по себе, или делает cat в этом случае и будет ssh доставить этот код возврата?

Будет shh сам поставлял ненулевые коды возврата в любом случае, чтобы он был закончен преждевременно?

1 ответ

Решение

cat вернет 0 (ноль) в случае успеха.

В соответствии с ssh руководство:

СТАТУС ВЫХОДА

  ssh exits with the exit status of the remote command or with 255 if an error occurred.

Итак, в вашем случае этого достаточно

cat some_lines_to_append.txt |
   ssh user@example.com 'cat >> all_lines_collected.txt' &&
   rm some_lines_to_append.txt ||
   echo 'Error occurred.'
Другие вопросы по тегам