Periksa keberhasilan penambahan file jarak jauh melalui ssh

0

Saya suka secara berkala menambahkan beberapa data ke file jarak jauh via sshdan menghapusnya secara lokal. Seperti:

cat some_lines_to_append.txt | ssh [email protected] 'cat >> all_lines_collected.txt'
rm some_lines_to_append.txt

Sekarang saya ingin memastikan some_lines_to_append.txthanya dihapus, jika jalur mana berhasil ditransfer. Bagaimana cara melakukannya?

Apakah >>membuat semacam kode pengembalian kesalahan dengan sendirinya pada kegagalan, atau apakah catdalam kasus ini, dan akan sshmemberikan kode kembali itu?

Akankah shhdirinya sendiri memberikan kode pengembalian yang tidak nol dalam setiap kesempatan yang selesai sebelum waktunya?

dronus
sumber

Jawaban:

1

cat akan mengembalikan 0 (nol) jika berhasil.

Menurut sshmanual:

EXIT STATUS

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

Jadi, dalam kasus Anda itu sudah cukup

cat some_lines_to_append.txt |
   ssh [email protected] 'cat >> all_lines_collected.txt' &&
   rm some_lines_to_append.txt ||
   echo 'Error occurred.'
Alex
sumber
Keren. Juga orang lain mengatakan kepada saya sshakan benar-benar melewati kode pengembalian dari perintah yang dipanggil. Jadi mungkin pipa hanya akan bekerja tanpa menangkap kode pengembalian via echo $?dan rc=...?
Dronus
Tampaknya hanya cat some_lines_to_append.txt | ssh [email protected] 'cat >> all_lines_collected.txt' && rm some_lines_to_append.txt akan bekerja lebih baik dari yang pertama kali saya harapkan ...
dronus
Ya, sshkeluar dengan status keluar dari perintah jarak jauh atau dengan 255 jika terjadi kesalahan. rc = $ (... kode diperlukan ketika perintah jarak jauh yang lebih kompleks dieksekusi dan Anda ingin menangkap beberapa kesalahan di tengah, tetapi dalam kasus Anda cat some_lines_to_append.txt | ssh [email protected] 'cat >> all_lines_collected.txt' && rm some_lines_to_append.txt || echo 'Error occurred'sudah cukup.
Alex
Saya mengedit jawaban saya sehingga harus mencerminkan kebutuhan khusus Anda tanpa informasi tambahan yang tidak perlu.
Alex
Keren. Terkadang, bidikan pertama bekerja dengan baik terlepas dari harapan.
dronus