Проверьте успешность добавления удаленного файла через 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.'