У меня есть скрипт, который, помимо прочего, rsync-синхронизирует файлы с одного хоста на другой. Иногда во время этого 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 в этом конкретном случае?