В конце успешной работы rsync я получаю типичное:
sent 6022622 bytes received 4751961 bytes 69738.40 bytes/sec
total size is 3328464484 speedup is 308.92
Я вызываю свое задание rsync через сценарий оболочки и в конце сценария записываю в текстовый файл в виде журнала. Без записи всего задания rsync в текстовый файл, есть ли способ просто зафиксировать, выводится ли это сообщение в конце, чтобы я мог написать что-то вроде «ОК» как часть моего вывода, чтобы обозначить, что синхронизация прошла успешно?
Спасибо!
Как уже указывалось в комментариях, лучший способ - проверить код возврата rsync. Вот код на bash, который вы можете использовать для преобразования кодов возврата в осмысленные строки:
rsync -a -v -h -i --stats --dry-run -A -H $source $target
case $? in
0)
echo "\e[32mSuccess"
;;
1)
echo "Syntax or usage error"
;;
2)
echo "Protocol incompatibility"
;;
3)
echo "Errors selecting input/output files, dirs"
;;
4)
echo "Requested action not supported: an attempt was made to manipulate 64-bit files on a platform that cannot support them; or an option was specified that is supported by the client and not by the server."
;;
5)
echo "Error starting client-server protocol"
;;
6)
echo "Daemon unable to append to log-file"
;;
10)
echo "Error in socket I/O"
;;
11)
echo "Error in file I/O"
;;
12)
echo "Error in rsync protocol data stream"
;;
13)
echo "Errors with program diagnostics"
;;
14)
echo "Error in IPC code"
;;
20)
echo "Received SIGUSR1 or SIGINT"
;;
21)
echo "Some error returned by waitpid()"
;;
22)
echo "Error allocating core memory buffers"
;;
23)
echo "Partial transfer due to error"
;;
24)
echo "Partial transfer due to vanished source files"
;;
25)
echo "The --max-delete limit stopped deletions"
;;
30)
echo "Timeout in data send/receive"
;;
35)
echo "Timeout waiting for daemon connection"
;;
*)
echo "Unknown return code $? from rsync"
esac