Вот возможный сценарий. Поставьте существующий rsync-код ( if [[ -d $DESTINATION ...
]).
в функцию оболочки, скажем runbackup
,
и заменить ту часть, которая делает . $CONFIG_FILE
циклом чтения файла
и ищет разделитель разделов [SERVER_...]
. Когда он находит его, он вызывает
функция резервного копирования (за исключением первой). Для остальных строк она делает eval
на каждой строке точно так же, как .
делает.
Для обеспечения вызова обратной связи на последнем участке на вход добавляется фиктивный участок [END]
.
(cat $CONFIG_FILE; echo '[END]') |
while read line
do if [[ "$line" =~ ^\[([A-Z_0-9]+)\] ]]
then if [ -n "$OPTIONS" -a -n "$REMOTE_IP" ]
then echo "section $section"
runbackup
fi
section=${BASH_REMATCH[1]} # captured from =~ regex above
unset OPTIONS REMOTE_IP SOURCE DESTINATION
else eval $line
fi
done
Insertar pv
en su tubería lateral de recepción -debería permitirle observar el progreso:
nc 127.0.0.1 8888 | pv >device_image.dd
Si tuviera pv disponible en el lado de envío, también podría usarlo allí:
dd if=/dev/block/mmcblk0 | pv | busybox nc -l -p 8888
Pero pv probablemente no estará disponible en su dispositivo Android a menos que lo instale allí.