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 [email protected] '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?
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 erfassenecho $?
undrc=...
?cat some_lines_to_append.txt | ssh [email protected] 'cat >> all_lines_collected.txt' && rm some_lines_to_append.txt
würde einfach besser funktionieren als zuerst von mir erwartet ...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 jedochcat some_lines_to_append.txt | ssh [email protected] 'cat >> all_lines_collected.txt' && rm some_lines_to_append.txt || echo 'Error occurred'
ist genug.