====== Пакет RSYNC ====== * [[https://www.howtoforge.com/backing-up-with-rsync-and-managing-previous-versions-history|Backing Up With rsync And Managing Previous Versions/History]] ===== Установка ===== ==== Debian/Ubuntu ==== root@nodeN:~# apt install rsync ==== FreeBSD ==== [nodeN:~] # pkg install rsync ===== Использование rsync клиента ===== ==== Debian/Ubuntu/FreeBSD/MacOSX ==== 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/ ==== Инкрементное копирование (Incremental Backup) ==== * [[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 для Линукса]] Делаем первый бекап (например, на внешний диск, каталог /home linux системы client1) # BACKUP_PATH=/mnt/Backups/client1/home/$(date "+%Y-%m-%d_%H:%M:%S")/ # mkdir -p $BACKUP_PATH # rsync -av --del /home/ $BACKUP_PATH Сохраняем линк на него # LATEST_LINK=/mnt/Backups/client1/home/latest # ln -s $BACKUP_PATH $LATEST_LINK Делаем следующий бекап с использованием линка на предыдущий # BACKUP_PATH=/mnt/Backups/client1/home/$(date "+%Y-%m-%d_%H:%M:%S")/ # mkdir $BACKUP_PATH # rsync -av --del /home/ --link-dest $LATEST_LINK $BACKUP_PATH Сохраняем линк на него # rm $LATEST_LINK # ln -s $BACKUP_PATH $LATEST_LINK Смотрим количество hardlink на файлы, которые не менялись # ls -aRl $BACKUP_PATH ===== Использование rsync сервера ===== ==== FreeBSD ==== [node2:~] # service rsyncd rcvar [node2:~] # cd /usr/local/etc/ ==== Ubuntu/Debian ==== root@node2:~# cat /etc/default/rsync ... RSYNC_ENABLE=true ... root@node2:~# systemctl enable rsync root@node2:~# cd /etc/ ==== FreeBSD/Ubuntu ==== node2# cat rsyncd.conf # pid file = /var/run/rsyncd.pid [home] uid = root use chroot = yes path = /home read only = no hosts allow = node1.corpX.un ubuntu node2# service rsync start или freebsd node2# service rsyncd start node1# rsync node2:: home node1# rsync node2::home ... node1# rsync node2::home/user1/ ... node1# rsync -av --delete /home/ node2::home