Überprüfen Sie den Erfolg des Remote-Dateianfügens über SSH

392
dronus

Ich möchte einige Daten regelmäßig per Fernzugriff an eine Remote-Datei anhängen sshund sie 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 gerne sicherstellen, dass some_lines_to_append.txtnur entfernt wird, ob die Zeilen erfolgreich übertragen wurden. Wie geht das?

Erzeugt >>bei einem Fehler eine Art Fehlerrückmeldungscode oder führt catdiesen sshRückgabecode aus?

Werden shhselbst Rückgabecodes geliefert, die vorzeitig beendet wurden?

0

1 Antwort auf die Frage

1
Alex

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

Laut sshHandbuch:

STATUS BEENDEN

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

In Ihrem Fall reicht es also

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 sagte mir, dass "ssh" tatsächlich den Rückgabecode der aufgerufenen Befehle übergeben würde. Vielleicht würde die Pipe also einfach funktionieren, ohne den Rückgabewert über `echo $?` Und `rc = ...`? dronus vor 7 Jahren 0
Es scheint nur '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 wurde ... dronus vor 7 Jahren 0
Ja, `ssh` wird mit dem Exit-Status des Remote-Befehls oder mit 255 beendet, wenn ein Fehler aufgetreten ist. rc = $ (... Code, der benötigt wird, wenn komplexere Remote-Befehle ausgeführt werden und Sie einige Fehler in der Mitte abfangen möchten, aber in Ihrem Fall `cat some_lines_to_append.txt | ssh user@example.com 'cat >> all_lines_collected.txt' && rm some_lines_to_append.txt || echo "Fehler aufgetreten" ist genug. Alex vor 7 Jahren 0
Ich habe meine Antwort so bearbeitet, dass sie Ihren besonderen Bedürfnissen ohne zusätzliche unnötige Informationen entspricht. Alex vor 7 Jahren 0
Cool. Manchmal funktioniert der erste Schuss trotz der Erwartung gut. dronus vor 7 Jahren 0