Überprüfen Sie den Erfolg des Remote-Dateianhangs über ssh


0

Ich möchte regelmäßig Daten an eine entfernte Datei über anhängen ssh und lokal entfernen. Mögen:

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

Jetzt möchte ich sicher gehen some_lines_to_append.txt wird nur entfernt, wenn die Zeilen erfolgreich übertragen wurden. Wie geht das?

Tut >> Erstellen Sie eine Art Fehlerrückmeldungscode, wenn ein Fehler auftritt oder nicht cat in diesem Fall und wird ssh den Rückkehrcode liefern?

Wille shh selbst liefern Rückkehrcodes ungleich Null in jedem Fall, dass es vorzeitig beendet wurde?

Antworten:


1

cat Gibt bei Erfolg 0 (Null) zurück.

Gemäß ssh Handbuch:

EXIT STATUS

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

Also in deinem Fall ist es genug

cat some_lines_to_append.txt |
   ssh user@example.com 'cat >> all_lines_collected.txt' &&
   rm some_lines_to_append.txt ||
   echo 'Error occurred.'

Cool. Auch jemand anderes hat es mir erzählt ssh würde in der Tat den Rückkehrcode der aufgerufenen Befehle übergeben. Vielleicht würde die Pipe also einfach funktionieren, ohne den Rückkehrcode über zu erfassen echo $? und rc=...?
dronus

Es scheint einfach cat some_lines_to_append.txt | ssh user@example.com 'cat >> all_lines_collected.txt' && rm some_lines_to_append.txt würde einfach besser funktionieren als zuerst von mir erwartet ...
dronus

Ja, ssh Beendet mit dem Exit-Status des Remote-Befehls oder mit 255, wenn ein Fehler aufgetreten ist. rc = $ (... Code wird benötigt, wenn komplexere Remote-Befehle ausgeführt werden und Sie einige Fehler in der Mitte abfangen möchten, in Ihrem Fall jedoch cat some_lines_to_append.txt | ssh user@example.com 'cat >> all_lines_collected.txt' && rm some_lines_to_append.txt || echo 'Error occurred' ist genug.
Alex

Ich habe meine Antwort so bearbeitet, dass sie Ihren speziellen Bedürfnissen ohne zusätzliche unnötige Informationen entspricht.
Alex

Cool. Manchmal funktioniert der erste Schuss trotz der Erwartung gut.
dronus
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.