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 user@example.com '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?

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 user@example.com 'cat >> all_lines_collected.txt' &&
   rm some_lines_to_append.txt ||
   echo 'Error occurred.'

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 user@example.com '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 user@example.com '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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.