我有一個腳本,其中包括將文件從一台主機同步到另一台主機。有時在 rsync 過程中,我會收到以下錯誤:
2019/07/19 15:03:26 [22635] <f..T...... reps/images/image_1.jpg
2019/07/19 15:03:26 [22635] rsync: read errors mapping "/home/blah/blah/fake/path/reps/images/image_1.jpg": No data available (61)
2019/07/19 15:03:26 [22635] <f..T...... reps/images/image_2.jpg
2019/07/19 15:03:26 [22635] rsync: read errors mapping "/home/blah/blah/fake/path/reps/imges/image_2.jpg": No data available (61)
在日誌輸出的更下方,它重試:
2019/07/19 15:04:01 [22635] WARNING: reps/images/image_1.jpg failed verification -- update discarded (will try again).
...
2019/07/19 15:04:02 [22635] WARNING: reps/images/image_2.jpg failed verification -- update discarded (will try again).
...
2019/07/19 15:04:03 [22635] <f..T...... reps/images/image_1.jpg
2019/07/19 15:04:03 [22635] <f..T...... reps/images/image_2.jpg
這向我表明文件第二次已成功傳輸,但 rsync 仍以代碼 23 退出,表示出現錯誤。
如果重試成功,我希望我的腳本繼續並完成其任務。如果 23(更)合法,例如出現其他錯誤,則腳本應該停止。我知道如果有 23 個程式碼我可以循環,但是還有什麼我可以做的更快嗎?有誰知道為什麼在這種特殊情況下 rsync 仍然以 23 退出?