На работе приходится бэкапить около 10 виртуальных машин, усилий потратил на этот скрипт достаточно много, так что, думаю, стоит поделиться. Раньше использовал rdiff-backup, но он оказался излишне сложен и имел несколько неявных косяков, из-за которых я рисковал оказаться без резервных копий, в случае полного коллапса. После этого пришлось потратить 40 минут на то, чтобы переписать всё на использование rsync, да и просто немного подефакторить написанный год назад скрипт.Итак, кодhttps://github.com/hordecore/useful_scripts/blob/master/virsync.shСейчас подтягивание изменений в ~100гб образов дисков занимает около полутора часов.Суть его работыПолучаем список виртуальных машин с флагом автостарт (симлинки на их XML’ки хранятся в директории /etc/libvirt/qemu/autostart/)Паузим виртуалку, сохраняя её память в /tmp/Делаем virsh dumpxml и из него получаем список дисков виртуалкиПодтягиваем их rsync’ом на свою машину.Восстанавливаем состояние виртуалки из /tmpПереходим к следующей.Алгоритм вроде как максимально прост, не вредит самим виртуальным машинам. Запускается это безобразие в 3 утра, когда все сервисы, располагаемые в виртуальных машинах практически никому не нужны. По крону, раз в неделю и раз в месяц, дневные бэкапы копируются в недельные и в месячные соответственно.Если кто-то посоветует что-то более быстрое чтобы подтягивать изменения в больших файлах, либо найдёт ненужные действия в скрипте, я был бы очень благодарен.