User Tools

Site Tools


пакет_rsync

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
пакет_rsync [2020/12/21 19:58]
val [Debian/Ubuntu/FreeBSD/MacOSX]
пакет_rsync [2025/06/16 10:28] (current)
val [Инкрементное копирование (Incremental Backup)]
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]]
 +
  
 ===== Установка ===== ===== Установка =====
Line 30: Line 31:
 node1# rsync -avz --del --rsync-path="​sudo rsync" /home/ student@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/+root@val2:~# /​usr/​bin/​rsync -avz -e "ssh -p NNN" ​val.bmstu.ru:​/var/lib/dokuwiki/data/ /var/lib/dokuwiki/data/
 </​code>​ </​code>​
  
 +  * [[Команда dd#​Клонирование диска по сети]]
 +
 +<​code>​
 +clone# mount /dev/sda1 /mnt
 +source# rsync -avzR --sparse --del /opt/ /var/ /srv/ 192.168.13.229:/​mnt/​
 +</​code>​
 +
 +==== Инкрементное копирование (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/​companies/​slurm/​articles/​452630/​|Резервное копирование,​ часть 2: Обзор и тестирование rsync-based средств резервного копирования]]
 +
 +<​code>​
 +Делаем первый бекап (например,​ на внешний диск или раздел,​ смонтированный по NFS)
 +
 +# 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 -p $BACKUP_PATH
 +
 +# 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><​code>​
 +root@disk:​~#​ cat Backups2.sh
 +</​code><​code>​
 +#!/bin/sh
 +
 +for d in DISKREV2025 DISKREV2025_PRE DISKFK2025 DISKFK2025_PRE
 +do
 +  BACKUP_PATH=/​home/​Backups/​home/"​${d}"/​$(date "​+%Y-%m-%d_%H-%M"​)/​
 +  mkdir -p "​$BACKUP_PATH"​
 +  LATEST_LINK=/​home/​Backups/​home/"​${d}"/​latest
 +  if [ ! -L "​${LATEST_LINK}"​ ]; then
 +    rsync -av --del /​home/"​${d}"/​ "​$BACKUP_PATH"​
 +    ln -s "​$BACKUP_PATH"​ "​$LATEST_LINK"​
 +  else
 +    rsync -av --del /​home/"​${d}"/​ --link-dest "​$LATEST_LINK"​ "​$BACKUP_PATH"​
 +    rm "​$LATEST_LINK"​ && ln -s "​$BACKUP_PATH"​ "​$LATEST_LINK"​
 +  fi
 +done
 +
 +find /​home/​Backups/​home/​* -maxdepth 1 -ctime +8 -type d | xargs rm -rf
 +</​code>​
 ===== Использование rsync сервера ===== ===== Использование rsync сервера =====
  
пакет_rsync.1608569881.txt.gz · Last modified: 2020/12/21 19:58 by val