This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
пакет_rsync [2018/08/29 09:59] val [FreeBSD/Ubuntu/MacOSX] |
пакет_rsync [2024/12/27 10:25] (current) val [Debian/Ubuntu/FreeBSD/MacOSX] |
||
---|---|---|---|
Line 2: | Line 2: | ||
* [[https://www.howtoforge.com/backing-up-with-rsync-and-managing-previous-versions-history|Backing Up With rsync And Managing Previous Versions/History]] | * [[https://www.howtoforge.com/backing-up-with-rsync-and-managing-previous-versions-history|Backing Up With rsync And Managing Previous Versions/History]] | ||
+ | |||
===== Установка ===== | ===== Установка ===== | ||
+ | |||
+ | ==== Debian/Ubuntu ==== | ||
+ | |||
+ | <code> | ||
+ | root@nodeN:~# apt install rsync | ||
+ | </code> | ||
==== FreeBSD ==== | ==== FreeBSD ==== | ||
Line 10: | Line 17: | ||
</code> | </code> | ||
- | ==== Ubuntu/Debian ==== | + | ===== Использование rsync клиента ===== |
- | Уже установлен | + | ==== Debian/Ubuntu/FreeBSD/MacOSX ==== |
+ | <code> | ||
+ | server# mkdir /disk2/var/ | ||
+ | |||
+ | server# time cp -rvp /var/log/ /disk2/var/log/ | ||
+ | или | ||
+ | server# time rsync -av --del /var/log/ /disk2/var/log/ | ||
+ | |||
+ | node1# rsync -avz --del /home/ node2:/home/ | ||
+ | |||
+ | node1# rsync -avz --del --rsync-path="sudo rsync" /home/ student@node2:/home/ | ||
+ | |||
+ | root@val2:~# /usr/bin/rsync -avz -e "ssh -p NNN" val.bmstu.ru:/var/lib/dokuwiki/data/ /var/lib/dokuwiki/data/ | ||
+ | </code> | ||
+ | |||
+ | * [[Команда dd#Клонирование диска по сети]] | ||
<code> | <code> | ||
- | root@nodeN:~# apt install rsync | + | clone# mount /dev/sda1 /mnt |
+ | source# rsync -avzR --sparse --del /opt/ /var/ /srv/ 192.168.13.229:/mnt/ | ||
</code> | </code> | ||
- | ===== Использование rsync клиента ===== | + | ==== Инкрементное копирование (Incremental Backup) ==== |
- | ==== FreeBSD/Ubuntu/MacOSX ==== | + | |
+ | * [[https://linuxconfig.org/how-to-create-incremental-backups-using-rsync-on-linux|How to create incremental backups using rsync on Linux]] | ||
+ | * [[https://habr.com/ru/companies/slurm/articles/452630/|Резервное копирование, часть 2: Обзор и тестирование rsync-based средств резервного копирования]] | ||
<code> | <code> | ||
- | server# cp -rp /var/log/ /disk2/var/log/ | + | Делаем первый бекап (например, на внешний диск или раздел, смонтированный по NFS) |
- | или | + | |
- | server# rsync -av --delete /var/log/ /disk2/var/log/ | + | |
- | node1# rsync -avz --delete /home/ node2:/home/ | + | # BACKUP_PATH=/mnt/Backups/www/rootfs/$(date "+%Y-%m-%d_%H-%M")/ |
+ | # BACKUP_PATH=/mnt/Backups/client1/home/$(date "+%Y-%m-%d_%H-%M")/ | ||
- | val# /usr/bin/rsync -av --delete -e "ssh -p XXX" /var/www/html/dokuwiki/ val@radio.specialist.ru:dokuwiki.mastercopy/ | + | # mkdir -p $BACKUP_PATH |
- | </code> | + | |
+ | # rsync -av --del /var/lib/lxc/www/rootfs/ $BACKUP_PATH | ||
+ | # rsync -av --del /home/ $BACKUP_PATH | ||
+ | |||
+ | Сохраняем линк на него | ||
+ | |||
+ | # LATEST_LINK=/mnt/Backups/www/rootfs/latest | ||
+ | # LATEST_LINK=/mnt/Backups/client1/home/latest | ||
+ | |||
+ | # ln -s $BACKUP_PATH $LATEST_LINK | ||
+ | |||
+ | Через некоторое время, после изменений, делаем следующий бекап с использованием линка на предыдущий | ||
+ | |||
+ | # BACKUP_PATH=/mnt/Backups/www/rootfs/$(date "+%Y-%m-%d_%H-%M")/ | ||
+ | # BACKUP_PATH=/mnt/Backups/client1/home/$(date "+%Y-%m-%d_%H-%M")/ | ||
+ | |||
+ | # mkdir $BACKUP_PATH | ||
+ | |||
+ | # rsync -av --del /var/lib/lxc/www/rootfs/ --link-dest $LATEST_LINK $BACKUP_PATH | ||
+ | # rsync -av --del /home/ --link-dest $LATEST_LINK $BACKUP_PATH | ||
+ | |||
+ | Направляем линк на последний бекап | ||
+ | |||
+ | # rm $LATEST_LINK && ln -s $BACKUP_PATH $LATEST_LINK | ||
+ | |||
+ | Смотрим количество hardlink на файлы, которые не менялись | ||
+ | |||
+ | # find $LATEST_LINK/ -type f -links +1 -ls | less | ||
+ | |||
+ | Восстановление из бекапа | ||
+ | |||
+ | # BACKUP_PATH=/mnt/Backups/www/rootfs/<TAB> | ||
+ | |||
+ | # systemctl stop lxc@www | ||
+ | |||
+ | # rsync -av --del $BACKUP_PATH /var/lib/lxc/www/rootfs/ | ||
+ | |||
+ | # systemctl start lxc@www | ||
+ | </code> | ||
===== Использование rsync сервера ===== | ===== Использование rsync сервера ===== | ||