This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
пакет_rsync [2017/10/10 15:10] val [FreeBSD/Ubuntu/MacOSX] |
пакет_rsync [2024/05/28 10:03] val [Пакет RSYNC] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Пакет RSYNC ====== | ====== Пакет RSYNC ====== | ||
+ | |||
+ | * [[https://www.howtoforge.com/backing-up-with-rsync-and-managing-previous-versions-history|Backing Up With rsync And Managing Previous Versions/History]] | ||
+ | * [[https://habr.com/ru/companies/slurm/articles/452630/|Резервное копирование, часть 2: Обзор и тестирование rsync-based средств резервного копирования]] | ||
===== Установка ===== | ===== Установка ===== | ||
+ | |||
+ | ==== Debian/Ubuntu ==== | ||
+ | |||
+ | <code> | ||
+ | root@nodeN:~# apt install rsync | ||
+ | </code> | ||
==== FreeBSD ==== | ==== FreeBSD ==== | ||
Line 8: | 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/ | ||
+ | |||
+ | val# /usr/bin/rsync -av --del -e "ssh -p XXX" /var/www/html/dokuwiki/ val@radio.specialist.ru:dokuwiki.mastercopy/ | ||
+ | </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/post/149059/|Делаем свою Time Machine для Линукса]] | ||
<code> | <code> | ||
- | [~ ] $ rsync -av --delete Pictures/iPhoto\ Library/ /Volumes/macbookbkp/iPhoto\ Library/ | + | Делаем первый бекап (например, на внешний диск или раздел, смонтированный по NFS) |
- | [~ ] $ rsync -av --delete val.bmstu.ru:dokuwiki-2009-12-25/ dokuwiki-2009-12-25/ | + | # BACKUP_PATH=/mnt/Backups/www/rootfs/$(date "+%Y-%m-%d_%H-%M")/ |
+ | # BACKUP_PATH=/mnt/Backups/client1/home/$(date "+%Y-%m-%d_%H-%M")/ | ||
- | [~ ] $ rsync -av --delete -e "ssh -p XXX" val.bmstu.ru:dokuwiki-2009-12-25/ dokuwiki-2009-12-25/ | + | # mkdir -p $BACKUP_PATH |
- | node1# rsync -avz --delete /home/ node2:/home/ | + | # rsync -av --del /var/lib/lxc/www/rootfs/ $BACKUP_PATH |
- | </code> | + | # 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 сервера ===== | ||