[21] Rsync – synchronizacja plików

19 marca 2022 Wyłączono przez Adam [zicherka] Nogły

Skopiuj pliki lub katalogi z jednej lokalizacji do innej przez [rsync].

Podstawowe użycie [rsync]:

# rsync OPTION SRC DEST

opcje

-v Większa ilość komunikatów
-a tryb archiwum; to samo co -rlptgoD (bez -H)
-u pomiń nowsze pliki na odbiorniku
-z kompresuj dane pliku podczas transferu
–exclude=PATTERN Wyklucza pliki pasujące do PATTERN
–delete –usuń usuń pliki, które nie istnieją u nadawcy
# rsync -av –exclude=”tmp” /home/ /backup

 

W przypadku synchronizacji Localhost <-> RemoteHost, SSH jest używany do bezpiecznego połączenia, więc serwer SSH jest potrzebny na RemoteHost.

W tym przykładzie skonfiguruj i uruchom [rsync] jako demon.

Demon Rsync [rsyncd] używa [873/TCP], więc w tym przypadku usługa SSH nie jest potrzebna.

Ten przykład jest oparty na środowisku, jak poniżej.

[1] Skonfiguruj host źródłowy.

[root@vlsr01 ~]# dnf install rsync

[root@vlsr01 ~]# mcedit /etc/rsync_exclude.lst
# określ pliki lub katalogi, które chcesz wykluczyć z kopiowania
test
test.txt

[root@vlsr01 ~]# mkdir /home/work

[2] Skonfiguruj host docelowy.

[root@vlsr02 ~]# dnf install rsync rsync-daemon
[root@vlsr02 ~]# mcedit /etc/rsyncd.conf
# dodaj na końcu
pid file = /var/run/rsyncd.pid
log file = /var/log/rsyncd.log
max connections = 4
# logowanie lub nie rezultatów transferu
transfer logging = yes
# dowolna Twoja nazwa
[backup]
# docelowy katalog do którego mają być kopiowane dane
path = /home/backup
# hosty, którym zezwolono na dostęp
hosts allow = 192.168.100.101
hosts deny = *
list = true
uid = root
gid = root
read only = false

[root@vlsr02 ~]# mkdir /home/backup
[root@vlsr02 ~]# systemctl enable --now rsyncd

[3] Jeśli na hoście docelowym SELinux jest włączony, zmień ustawienie polityki.

[root@vlsr02 ~]# setsebool -P rsync_full_access on

[4] Jeśli na hoście docelowym Firewalld jest uruchomiony, zezwól na usługę.

[root@vlsr02 ~]# firewall-cmd --add-service=rsyncd --permanent
[root@vlsr02 ~]# firewall-cmd –reload

[5] W porządku, spróbuj uruchomić polecenie [rsync] na hoście źródłowym.

[root@vlsr01 ~]# rsync -avz --delete --exclude-from=/etc/rsync_exclude.lst /home/work/ vlsr02.zicher.lab::backup
sending incremental file list
./
CentOS-7-x86_64-DVD-1908.torrent
CentOS-7-x86_64-Everything-1908.torrent
CentOS-7-x86_64-NetInstall-1908.iso
anaconda-ks.cfg
redmine-4.2.4.tar.gz
test1.txt
sent 569,885,351 bytes  received 133 bytes  29,224,896.62 bytes/sec
total size is 582,050,874  speedup is 1.02