[21] Rsync – synchronizacja plików
19 marca 2022Skopiuj 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