Configurarea unui server rsync și utilizarea unui client rsync. Sincronizarea fișierelor între serverele Windows RSync Planuri pentru extinderea tehnologiei Rsync Windows în programul Handy Backup

În mod implicit, este posibil ca utilitarul să nu fie instalat pe sistem. Instalarea și lansarea ulterioară sunt efectuate cu următoarele comenzi.

CentOS 7

yum instalează rsync

systemctl activa rsyncd

systemctl începe rsyncd

Ubuntu

apt-get install rsync

Deschideți următorul fișier:

vi /etc/default/rsync

Găsim intrarea:

RSYNC_ENABLE=fals

Și schimbați-l în:

RSYNC_ENABLE=adevărat

Hai sa lansam:

/etc/init.d/rsync start

Setări

Deschideți fișierul de configurare rsync:

vi /etc/rsyncd.conf

Și îl configuram aproximativ după cum urmează:

conexiuni max = 10
exclude = pierdut+găsit/
dont comprima = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 *.rar *.7z *.mp3 *.jpg


cale = /data1/
comentariu = Dosare publice
numai citire = da
lista = da
auth users = rsync_d1

gazdele permit = localhost 192.168.0.15 192.168.0.20
gazdele neagă = *


uid=rădăcină
gid = rădăcină
cale = /data2/
comentariu = foldere private
numai citire = da
lista = da
auth users = rsync_d2, backup
fișier secrete = /etc/rsyncd.scrt
gazdele permit = localhost 192.168.0.16 192.168.0.21
gazdele neagă = *

unde primul grup de parametri sunt setările generale:

  • max conexiuni— numărul maxim de conexiuni simultane. Merită setat pentru a nu supraîncărca serverul.
  • exclude— foldere care ar trebui excluse de la sincronizare. Într-un exemplu specific, directorul pentru stocarea fișierelor recuperate după verificarea discului.
  • nu comprima— indicați ce fișiere nu trebuie comprimate la trimitere. Este logic să îi indicați pe cei a căror compresie nu va funcționa, de exemplu, arhive, sunet comprimat și imagini.

și fiecare resursă este configurată separat (în exemplul nostru date1Și date2):

  • uid— utilizatorul de la care se va efectua sincronizarea pentru o anumită resursă.
  • gid— grupul din care se va efectua sincronizarea pentru o anumită resursă.
  • cale— calea către resursa pentru care se realizează sincronizarea.
  • cometariu- descriere pentru comoditate.
  • numai citit— modul de citire; vă permite să protejați datele de a fi șterse sau modificate.
  • listă— permite sau interzice citirea conținutului directorului. Dacă este interzis ( Nu), sincronizarea poate fi efectuată pentru fișierele enumerate în mod specific.
  • auth utilizatori— autentificare prin introducerea unui login cu o parolă.
  • dosarul secretelor— un fișier în care se află login-ul și parola.
  • gazdele permit— lista gazdelor de pe care este permis accesul la serverul rsync.
  • gazdele neagă— listarea gazdelor de la care accesul la serverul rsync este interzis (în acest exemplu, de la toate, cu excepția celor permise).

Creați un fișier de autentificare:

vi /etc/rsyncd.scrt

rsync_d1:parola1
rsync_d2:parola2
copie de rezervă:parolă3

* Unde rsync_d1:parola1- în consecință, utilizatorul rsync_d1 cu parola parola1.

Din motive de securitate, setăm accesul numai pentru proprietar:

chmod 600 /etc/rsyncd.scrt

Repornim serviciul folosind una dintre comenzi:

systemctl reporniți rsyncd

/etc/init.d/rsync reporniți

repornirea serviciului rsyncd

Adăugarea de porturi la firewall.

firewall-cmd --permanent --add-port=873/tcp

firewall-cmd --permanent --add-port=22/tcp

firewall-cmd --reîncărcare

iptables -I INTRARE 1 -p tcp --dport 873 -j ACCEPT

iptables -I INTRARE 1 -p tcp --dport 22 -j ACCEPT

Lansarea clientului

Verificați pe computerul local

Mai întâi, să rulăm următoarea comandă pe serverul nostru:

rsync -avv --progress rsync_d1@localhost::data1 /tmp/

* această comandă va sincroniza resursa noastră date1 cu catalog /tmp.

Verificarea pe un computer la distanță

Instalați rsync dacă nu este deja instalat:

yum instalează rsync

apt-get install rsync

* prima comandă este pentru CentOS, a doua este pentru Ubuntu.

Începe sincronizarea:

rsync -avv [email protected]::data1 /tmp/

* Unde 192.168.0.5 — Adresa IP a serverului rsync.

Un exemplu de script gata făcut pentru sincronizarea folderelor

Scriptul este destul de simplu:

#!/bin/bash
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin

Password_file="/etc/rsyncd.scrt"
utilizator="opros"
ip="192.168.0.15"
source="data1"
destinație="/tmp/"

Rsync -a --delete-after --password-file=$fișier_parolă $utilizator@$ip::$sursă $destinație

* Unde:

  • fişier_parolă— parola în care va fi stocată parola.
  • utilizator— cont pentru autorizare.
  • ip— Adresa IP a serverului rsync.
  • sursă— numele resursei de pe server.
  • destinaţie— directorul în care sincronizăm fișierele.

Apoi creați un fișier cu o parolă:

vi /etc/rsyncd.scrt

* în acest fișier indicăm doar parola fără numele contului.

Apoi setăm drepturile:

chmod 600 /etc/rsyncd.scrt

Puteți automatiza sincronizarea folosind CRON:

0 */1 * * * /scripts/syncing.sh

* Unde /scripts/syncing.sh- scenariul nostru. În acest exemplu, sarcina va rula la fiecare oră.

cheile de pornire rsync

Sintaxa generala:

rsync<опции> <источник> <назначение>

Lista și descrierea opțiunilor:

Cheie Descriere
-v, --verbos Afișează informații detaliate despre procesul de sincronizare. Merită folosit pentru depanare.
-q, --liniște Nu afișează mesaje de eroare.
--no-motd Nu afișează salutul în MOTD
-c, --sumă de control Comparați fișierele după sumă de control, nu după timp sau dimensiune.
-a, --arhiva Mod de arhivare sau la fel ca și cu comutatoarele -rlptgoD (fără -H, -A, -X). Folosit pentru comoditate pentru a nu enumera multe opțiuni.
--Nu-<опция> Dezactivează o anumită opțiune, cum ar fi no-motd descris mai sus.
-r, --recursiv Mod recursiv pentru directoare.
-R, --relativ Folosiți căi relative.
--no-implied-dirs Dezactivați opțiunea --relative.
-b, --backup Modul de rezervă. Cu ajutorul acestuia, atunci când fișierele sunt actualizate, se creează o copie pentru ele în folderul de destinație.
--backup-dir=<каталог> În modul de rezervă, specifică directorul în care vor fi stocate copiile.
--sufix=SUFIX În modul de rezervă, setează sufixul pentru fișierele salvate.
-u, --actualizare Omiteți fișierele care sunt mai noi în folderul de destinație (copiați numai fișierele modificate).
-d, --dirs Nu utilizați recursiunea pentru directoare.
-l, --linkuri Copiați legăturile simbolice ca legături simbolice.
-L, --copy-links Copiați nu linkul simbolic, ci conținutul acestuia (transformați linkul simbolic într-un director).
-k, --copy-dirlinks Convertiți un link simbolic într-un director într-un director obișnuit.
-K, --keep-dirlinks În folderul de destinație, tratați legătura simbolică ca pe un director.
-H, --hard-links Salvați link-uri hard.
-p, --perms Mențineți permisiunile (drepturile de acces).
-E, --executabilitate Păstrați drepturile de executare.
--chmod=<права> Schimbați drepturile de acces la unele specifice.
-A, --acls Mențineți permisiunile ACL.
-X, --xattrs Salvați atributele fișierului.
-o, --proprietar Salvați proprietarul (numai pentru superutilizator).
-g, --grup Salvați grupul de proprietari.
--dispozitive Copiați fișierele dispozitivului (permis numai când executați comanda cu drepturi de superutilizator).
--dispozitive-copiere Copiați fișierele dispozitivului ca fișierele obișnuite.
--speciale Salvați fișiere speciale.
-D Înlocuiește --devices și --specials în același timp.
-t, --ori Salvați marcajele de timp.
-S, --rar Efectuați defragmentarea în timp ce copiați datele.
-n, --funcționare în uscat Modul de testare. Acesta este un test de rulare care va afișa modificările, dar nu va executa modificările.
-W, --totul-dosar Copiați fișiere întregi. În mod implicit, algoritmul delta hefer este utilizat pentru a copia fișiere, ceea ce vă permite să transferați doar partea cu modificările. În practică, acest lucru accelerează foarte mult procesul de copiere. Cheia este folosită în cazurile în care trebuie să transferați întregul fișier.
-x, --un singur sistem de fișiere Nu permite trecerea granițelor sistemului de fișiere. De exemplu, dacă un sistem de fișiere de rețea poate fi montat într-unul dintre directoarele sincronizate, copierea acestuia poate fi incomodă.
-B, --block-size=<размер> Forțați ca dimensiunea blocului sumei de control să fie fixată
-e, --rsh=<команда> Specificați shell-ul de utilizat, cum ar fi SSH.
--existent Nu creați fișiere noi în directorul de destinație.
--ignora-existent Nu actualizați fișierele existente în directorul de destinație.
--remove-source-files Sursa își șterge fișierele după finalizarea sincronizării.
--șterge Ștergeți fișierele din folderul de destinație dacă nu se mai află în folderul sursă (ștergerea fișierelor vechi).
--delete-before Ștergeți fișierele din folderul de destinație înainte de a începe sincronizarea.
--delete-in timpul Ștergeți fișierele din folderul de destinație în momentul sincronizării.
--delete-delay Căutați fișiere de șters în momentul sincronizării și ștergeți după.
--sterge-dupa Ștergeți fișierele din folderul de destinație după sincronizare.
--delete-exclus Ștergeți fișierele excluse de la sincronizare din directorul de destinație.
--ignora-erori Ștergeți fișierele chiar dacă există erori I/O.
--forta Ștergerea forțată a directoarelor negoale.
--max-delete=<число> Nu ștergeți mai mult decât numărul specificat de fișiere.
--max-size=<размер> Nu transferați fișiere mai mari decât dimensiunea specificată.
--min-size=<размер> Nu transferați fișiere mai mici decât dimensiunea specificată.
--parțial Lăsați fișierele care nu au fost transferate complet (procesul de copiere s-a încheiat în timpul procesului).
--partial-dir=<каталог> Stocați fișierele parțial transferate într-un director special.
--timeout=<секунды> Setați timeout-ul din sistemul I/O.
--contimeout=<секунды> Setați timpul de expirare pentru conectarea la demonul rsync.
-Eu, --ignor-ori Copiați fișierele oricum dacă au același aspect sau timp de modificare.
--doar mărimea Nu copiați numai acele fișiere care au aceeași dimensiune.
-T, --temp-dir=<каталог> Plasați toate fișierele temporare într-un anumit director.
-z, --comprima Comprimați datele fișierului în timpul transferului
--compress-level=<число> Setează nivelul de compresie de la 0 la 9.
--skip-compress=<список> Nu efectuați compresie pe fișierele listate.
-C, --cvs-exclude Excludeți de la copierea fișierelor care sunt excluse de CVS (RCS/ SCCS/ CVS/ .svn/ CVS.adm RCSLOG cvslog.* etichete TAGS .make.state .nse_depinfo *~ #* .#* ,* *.old *.bak * . BAK *.orig *.rej .del-* *.a *.o *.obj *.so *.Z *.elc *.ln core)
-f, --filtru=<правило> Adăugați o regulă de filtrare.
--exclude=<выражение> Excludeți fișierele care se potrivesc cu expresia de la sincronizare.
--exclude-din=<файл> Excludeți fișierele listate în fișier de la sincronizare.
--include=<выражение> Includeți fișierele care se potrivesc cu expresia în sincronizare.
--include-din=<файл> Includeți fișierele listate în fișier în sincronizare.
--files-from=<файл> Citiți o listă de nume de fișiere sursă dintr-un fișier.
--adresa= Legați o adresă IP pentru soclul de ieșire.
--port=<порт> Utilizați un anumit port de rețea.
--sockopts=OPTIUNI Utilizați opțiuni speciale pentru TCP.
--blocking-io Utilizați blocarea I/O pentru shell la distanță
--statistici Afișează statistici privind transferul de date.
-h, --lizibil de om Afișați numerele într-un format ușor de citit.
--progres Afișați bara de progres pentru sincronizare.
-P La fel ca --partial și --progress.
-i, --itemize-modificări Afișați un rezumat al modificărilor pentru toate actualizările
--log-file=<файл> Log output într-un fișier special.
--password-file=<файл> În timpul autentificării, parola poate fi stocată într-un fișier special. Acest lucru este necesar pentru a automatiza execuția unei comenzi fără parolă.
--numai-listă Afișați o listă de fișiere, dar nu le copiați.
--bwlimit=<число> Limitați lățimea de bandă (KBps).
--protocol=<число> Forțați utilizarea unei versiuni de protocol mai vechi.
--iconv=<кодировка> Interogați codificarea conversiei numelui fișierului.
-4, --ipv4 Este de preferat să utilizați IPv4.
-6, --ipv6 Este de preferat să folosiți IPv6.
--versiune Ieșirea versiunii rsync.
(-h) --ajutor Afișați informații de ajutor despre utilizarea rsync.

* cea mai recentă listă de taste rsync poate fi vizualizată cu comanda om rsync.

Rsync pe Windows

Implementarea rsync pentru Windows se numește cwRsync (nu este un analog al programului - de fapt, este utilitarul Rsync + biblioteca Cygwin). Îl puteți descărca de pe site-ul oficial. Versiunile plătite și gratuite sunt disponibile pentru descărcare. Acesta din urmă nu vă va permite să configurați un server Rsync, să primiți asistență, actualizări de securitate și posibilitatea de a lucra într-o interfață grafică.

Procedura de utilizare a clientului cwRsync este aceeași cu cea descrisă mai sus. Descărcați arhiva programului și despachetați-o. Lansați linia de comandă și accesați directorul cos(situat în folderul în care a fost dezambalat programul).

Începe sincronizarea:

rsync.exe -avv --progress [email protected]::data1 /cygdrive/c/temp

* acordați atenție căii de destinație - pentru a accesa discul C noi am scris /cygdrive/c. Destinație finală - C:\temp.

Copiați folosind SSH:

rsync.exe -avv -e "./ssh -p 22" --progress [email protected]:/data/ /cygdrive/c/temp

* Vă rugăm să rețineți că nu scriem ssh, dar ./ssh, altfel, dacă folosim un sistem pe 64 de biți și pachetul gratuit cwRsync, sistemul nu va găsi calea către ssh și va arunca o eroare Nu s-a executat ssh: nu există un astfel de fișier sau director.

Exemple de utilizare a rsync

O comandă simplă pentru a sincroniza două directoare:

Comanda de backup:

rsync -ab --delete-after [email protected]::sursa_date/destinație_date

Efectuarea sincronizării prin SSH:

rsync -a --delete-after -e "ssh -p 22" [email protected]:/data_source/data_destination

* Solicitările SSH nu trec prin serverul rsync. În acest exemplu, conexiunea se va face folosind 22 port, sub cont utilizator.

Copierea fișierelor pe o mașină la distanță:

Sincronizare în ambele direcții (rulăm două comenzi pe rând):

rsync -a --delete-after [email protected]::sursa_date/destinație_date

rsync -a --delete-after /data_destination [email protected]::sursă de date

Sincronizarea fișierelor după mască:

rsync -a --include="*.txt" --exclude="*" [email protected]::sursa_date/destinație_date

* în acest exemplu, numai fișierele cu extensia vor fi sincronizate TXT.

Excludeți directorul:

rsync -a --exclude="dosar/*" [email protected]::sursa_date/destinație_date

Probleme posibile

rsync: change_dir "/" failed: Permisiune refuzată

Motiv: Nu există drepturi pentru fișierele care sunt sincronizate.

Soluție: setați utilizatorul corect (uid) în setările de resurse din partea serverului.

rsync: nu s-a putut conecta la x.x.x.x (x.x.x.x): Nicio rută către gazdă (113)
eroare rsync: eroare în socket IO (cod 10) la clientserver.c(122)

Cauză: gazda la distanță nu este accesibilă.

Soluție: verificați dacă gazda este accesibilă prin rețea. Verificați setările firewall-ului.

Bună ziua Există o problemă: pur și simplu nu pot copia fișiere de pe server pe computerul local care rulează Windows. Am incercat asta: sunt pe server, in folderul cu site-uri. Scriu următoarea comandă: rsync -czavP site_1 localhost:Z:/home/site_1/ . Fie spune că parola este incorectă, fie cere o parolă pentru mașina locală, pe care de fapt nu o am. Care este problema? Îți voi fi recunoscător pentru ajutorul tău) Dmitry

Ce este rsync?

În primul rând, rsync este un utilitar folosit numai pe sistemele Linux. Pentru ca acesta să funcționeze în Windows, trebuie să fie instalat acolo și configurat, de exemplu prin cygwin. În al doilea rând, de ce încercați să trimiteți fișiere către localhost? Localhost este adresa internă de loopback 127.0.0.1. Când încerci să trimiți fișiere acolo, fiind în Linux, încerci să te conectezi de la server la tine, adică la serverul însuși.

Cum se sincronizează un folder de la Linux la Windows?

Pentru a trimite fișiere la Windows folosind rsync, cea mai bună modalitate este să montați sistemul de fișiere al computerului local Windows pe server prin smb. Apoi nu va trebui să instalați rsync pe Windows însuși, iar acest lucru rezolvă problema cu accesul dintre server și computerul dvs. de acasă.

Pentru a face acest lucru, trebuie să vă conectați la server de pe computerul local. Trebuie să redirecționați localhost:445. Apoi, trebuie să aveți pachetul cifs-utils instalat pe sistemul serverului. Partajați folderul dorit pe computerul local, apoi creați un punct de montare pe server și montați-l acolo de la localhost. Apropo, pe site-ul nostru există un generator de scripturi pentru copiile de rezervă ale site-ului și implementează generarea unui astfel de script.

Exemplu de script pentru sincronizarea folderelor

Să ne uităm la un exemplu de astfel de script pentru o astfel de copiere:

Porniți /b d:plik.exe -pw rootpassword [email protected]-N -R 445:localhost:445
d:plink.exe -pw rootpassword [email protected]-C "mkdir /tmp/win&&mount -t cifs -o rw,nounix,soft,intr,username=user,password=windowspass //localhost/backup /tmp/win"
d:plink.exe -pw rootpassword [email protected]-C „rsync -a --no-p --no-o --no-o --no-t /var/www/example.com/ /tmp/win && umount /tmp/win&&rmdir /tmp/win”
taskkill /f /im plin.exe

În prima linie, lansați programul plink.exe (client ssh de consolă pentru Windows) în fundal. Ne conectăm la serverul la distanță example.com și la portul tunel 445 de la mașina locală la interfața lo-a serverului. După conectarea prin ssh, serverul va „crede” că are o partajare Windows pe localhost:445 sau rulează un server smb.

start /b d:plik.exe -pw rootpassword [email protected]-N -R 445:localhost:445

Aici creăm un punct de montare și montăm folderul partajat la punctul creat. După aceasta, sistemul de fișiere al computerului local va fi disponibil pe server în punctul creat. Serverul „crede” că acest folder se află fizic pe el. În consecință, el poate efectua orice operațiuni asupra acestuia, scriind și ștergând fișiere, ca și cum ar fi propriul său folder.

d:plink.exe -pw rootpassword [email protected]-C "mkdir /tmp/win&&mount -t cifs -o rw,nounix,soft,intr,username=user,password=windowspass //localhost/backup /tmp/win"

Ei bine, aici sincronizăm direct folderul site-ului în acest folder. Toate fișierele sunt trimise la computerul local, care este responsabilitatea de a monta share-urile și tunelul. Transmitem opțiunea comenzii rsync de a nu salva atributele fișierului - proprietar și drepturi, deoarece Windows încă nu știe nimic despre astfel de atribute și nu știe cum să lucreze cu ele. După finalizarea sincronizării, vom demonta partajarea locală de pe server.

d:plink.exe -pw rootpassword [email protected]-C „rsync -a --no-p --no-o --no-o --no-t /var/www/example.com/ /tmp/win && umount /tmp/win&&rmdir /tmp/win”

Aici „omorâm” sesiunea SSH care rulează în fundal chiar de la început.

taskkill /f /im plin.exe

Dacă înțelegeți cum funcționează, îl puteți utiliza în mod similar pe serverele dvs. Sau pur și simplu faceți un script prin al nostru (fila rsync pentru backup fișier) cu datele dvs. și rulați-l. Înainte de a face acest lucru, instalați cifs-utils pe server.

Dacă aveți dorința de a menține stațiile de lucru în cea mai „protejată” stare, precum și de a „automatiza” acest proces cât mai mult posibil, atunci această postare este pentru dvs.

Va fi folosit:

Un mic fișier batch
Un mic server Linux
Un pic de Windows Server 2008 R2 și politici de grup

Ideea este următoarea - neobservată de utilizator însuși, pentru a nu-i perturba munca, faceți o copie săptămânală a profilului său pentru a preveni pierderea datelor și salvați-o pe server în cea mai protejată formă.

Pentru a face acest lucru, să începem cu partea client. Folosim shadow volume create - extinde pentru a elimina problema fișierelor deschise de utilizator, cum ar fi Outlook pst, sau documentele care nu sunt citite. Vom avea nevoie de un set de la Microsoft care conține vshadow - acesta este Volume Shadow Copy Service SDK 7.2, care poate fi descărcat gratuit de pe serverele Microsoft, http://www.microsoft.com/download/en/details.aspx?displaylang= ro&id=23490. Vom avea nevoie de fișiere vshadow.exe și vshadow.pdb din acest SDK. Atenție - sunt diferite pentru sistemele pe 64 și 32 de biți.

64 de biți - %PROGRAMFILES%\Microsoft\VSSSDK72\TestApps\vshadow\bin\obj-chk\amd64
32 de biți - %PROGRAMFILES%\Microsoft\VSSSDK72\TestApps\vshadow\bin\release-xp

Avem nevoie și de un set de fișiere de la cwrsync sub Windows -

După instalare, acestea pot fi găsite aici:

%PROGRAMFILES%\cwRsync\bin

Punem toate fișierele într-un singur folder, îl numim „Backup” pentru comoditate și începem să creăm un fișier care va lansa această „mașină a morții” - de fapt, acesta este un fișier batch simplu care va procesa toate acțiunile. Să-l numim „backup.cmd” pentru comoditate.

Scriem în fișier:

(magie necunoscută)

Setlocal
dacă NU „%CALLBACK_SCRIPT%"="" mergeți la:IS_CALLBACK
setați SOURCE_VOLUME=C:
setați DESTINATION_VOLUME=O:
setați CALLBACK_SCRIPT=%~dpnx0
setați TEMP_GENERATED_SCRIPT=GeneratedVarsTempScript.cmd
%~dp0\vshadow.exe -nw -p -script=%TEMP_GENERATED_SCRIPT% -exec=%CALLBACK_SCRIPT% %SOURCE_VOLUME%
del /f %TEMP_GENERATED_SCRIPT%
du-te la:EOF
:IS_CALLBACK
setlocal
apelați %TEMP_GENERAD_SCRIPT%
%~dp0\vshadow.exe -el=%SHADOW_ID_1%,%DESTINATION_VOLUME%

Această parte a „codului de pastă” face o copie a volumului umbră din C: și o conectează la O:, pe care o vom folosi pentru copiere, apoi o vom elimina cu același script. Acum partea care este responsabilă pentru acțiunile rsync:

(magie necunoscută)

Setlocal
SET CWRSYNCHOME=C:\Backup\ (unde este folderul cu fișierele rsync și vshadow)
SET CWOLDPATH=%PATH%
SET CYGWIN=nontsec
SET PATH=%CWRSYNCHOME%;%PATH%
SET HOME=С:\Backup\LOG\ (vom salva jurnalele aici)
SET RSYNC_PASSWORD=(aici este parola care este setată pe serverul rsync de primire)
SET MY_NAME=%computername%

(acum indicăm ce să copiem)

SET FS_SRC_HOME="/cygdrive/O/Users/" (folosim acest format, specificăm folderul înainte de „Utilizatori”)
SET FS_SRC_BCK="/cygdrive/C/Backup/" (unde sunt fișierele rsync pentru a le pune împreună cu jurnalele pe serverul de rezervă)

Del /q С:\backup\log\*.log (ștergem jurnalele vechi înainte de a începe)

(lansa)

Rsync -av --chmod=ug=rwx %FS_SRC_B2% backupusr@hostname::sbackupusr/%MY_NAME%
rsync -avhP --inplace --stats --del --modify-window=1 --log-file=%FS_SRC_BCK%DATA/backupwork.log --exclude-from=%FS_SRC_BCK%DATA/exclude %FS_SRC_HOME% backupusr@ hostname::sbackupusr/%MY_NAME%/snapshot/
rsync -av %FS_SRC_BCK% backupusr@hostname::sbackupusr/%MY_NAME%/snapshot/Backup/

Cu prima comandă creăm un director după numele computerului %computername%
Cu a doua comandă copiem datele de pe unitatea conectată temporar O:\Users, salvând fișierul jurnal.
Cu a treia comandă copiem întregul folder C:\Backup pentru a salva jurnalul și programul în sine.

Această linie „backupusr@hostname::sbackupusr” indică utilizatorul din partea de primire, precum și gazda din partea de primire. (Va fi discutat în a doua postare).

După aceasta, trebuie să deconectam unitatea O:, deoarece dacă nu facem acest lucru, data viitoare vshadow nu va putea monta o copie acolo, iar copia va fi făcută tot timpul de pe vechea unitate O:\. , în ciuda faptului că fișierele care se află în folderul utilizatorului s-au schimbat de mult.

(magie necunoscută)

SET HOME=%HOMEDRIVE%%HOMEPATH%

VSHADOW.EXE -ds=%SHADOW_ID_1%

Toate acestea trebuie puse într-un fișier .cmd obișnuit, așa cum am indicat mai sus, salvat în folderul Backup, unde sunt stocate fișierele rsync și vshadow și rulat după cum este necesar. Funcționează pe Windows Vista, Windows 7, Windows XP, 32 și 64 de biți

P.S: Desigur, va fi necesar să ridicăm mașina de recepție, în cazul nostru pe baza *nix, și să creăm partiții care vor fi protejate de true-crypt în caz de furt de server. De asemenea, în viitor, acest folder poate fi împachetat într-un program de instalare msi pentru instalare pe toate stațiile de lucru prin Politici de grup și utilizat pentru a crea sarcini programate și pentru a bloca accesul utilizatorului la folderul Backup. Dar asta este o altă poveste.

O notă interesantă, care din anumite motive nu a ajuns încă pe blog. Exemplul de configurare a unui server rsync arată un fișier de configurare în oglindă a depozitului Debian, pe care l-am păstrat în trecut în mod voluntar pentru utilizatorii Ufanet. Apoi Ufanet și-a ridicat propria oglindă de depozite și au apărut tarife ieftine nelimitate, așa că oglinda mea și-a pierdut sensul.

1. Configurarea unui server rsync

Pentru a configura un server rsync, trebuie să instalați pachetul rsync:
# apt-get install rsync Apoi, scrieți opțiunile liniei de comandă cu care serverul rsync va fi lansat în fișierul /etc/default/rsync. În acest fișier puteți seta următoarele opțiuni:

  • RSYNC_ENABLE- setarea serverului la pornirea automată la pornirea sistemului de operare. Variabila ia următoarele valori:
    • fals- împiedică pornirea serverului rsync,
    • Adevărat- lansați un server rsync separat,
    • inetd- rulați serverul rsync dacă este necesar de pe super serverul inetd.
  • RSYNC_CONFIG_FILE- specifică locația fișierului de configurare. În mod implicit, acest fișier este /etc/rsyncd.conf
  • RSYNC_OPTS- setează opțiuni suplimentare pentru linia de comandă pentru pornirea serverului rsync.
    De exemplu, puteți specifica opțiunea „--address=123.45.67.89” (implicit - toate adresele locale) pentru a specifica ce adresă ar trebui să accepte conexiuni și/sau opțiunea „--port=8730” (implicit - 873) pentru a specifica pe care port conexiunile ar trebui acceptate.
  • RSYNC_NICE- stabilește prioritatea procesului în planificatorul de sarcini.
Creați fișierul de configurare a serverului rsync /etc/rsync.conf:
uid = rsyncd gid = oglindă max conexiuni = 50 numai pentru citire = da listă = da facilitate syslog = local5 dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *. tbz *.rar *.mp3 use chroot = yes outgoing chmod = Fu=rw,g=rw,o=,Du=rwx,g=rx,o= path = /home/mirror/debian/ comment = Debian Lenny i386 și calea depozitului amd64 = /home/mirror/debian-cd/ comment = Imagini DVD Debian Lenny i386 și amd64 Descrierea opțiunilor specificate:
  • uid- ID de utilizator în numele căruia va funcționa serverul rsync,
  • gid- identificatorul grupului în numele căruia va funcționa serverul rsync,
  • max connections - numărul maxim de conexiuni simultane la serverul rsync. Toate conexiunile care depășesc limita specificată vor fi eliminate.
  • numai citit- permite clienților să doar citească,
  • listă- permite clienților să primească o listă de fișiere. Dacă dezactivați vizualizarea listei de fișiere, atunci clienții vor putea primi fișierul doar cunoscând numele lui exact,
  • facilitate syslog- nivelul mesajelor de depanare pentru demonul syslog,
  • nu comprima- specifică modele de nume de fișier al căror conținut nu trebuie să fie comprimat în timpul transmisiei. Aici este util să indicați fișierele deja comprimate, a căror recomprimare nu va oferi niciun beneficiu, ci doar va risipi resursele sistemului - acestea sunt majoritatea fișierelor audio și video, cele mai multe fișiere grafice, arhive.
  • utilizați chroot- indică dacă serverul rsync, pentru a asigura o securitate mai mare, ar trebui să schimbe directorul rădăcină cu cel specificat în cale.
  • ieșire chmod- setează drepturi de acces la fișierele încărcate. Deoarece protocolul rsync permite ca permisiunile de fișiere și identificatorii de proprietar și grup să fie transmise împreună cu conținutul fișierelor, puteți specifica permisiuni specifice care vor suprascrie permisiunile reale pentru un anumit fișier sau director atunci când este transferat în rețea.
Numele secțiunii este specificat între paranteze drepte. Fiecare secțiune trebuie să aibă propriul parametru de cale. În plus, poate suprascrie valorile opțiunilor globale.

După modificarea opțiunilor, dacă serverul dvs. rsync rulează în modul autonom, trebuie să îl reporniți:
# /etc/init.d/rsync restart 2. Utilizarea unui client rsync

Pentru a instala clientul rsync, trebuie să instalați pachetul rsync:
# apt-get install rsync Pentru a începe copierea de pe serverul rsync, puteți folosi o comandă similară:
$ rsync -avv rsync:// [email protected]:873/debian/debian/ Sau mai simplu:
$ rsync -avv rsync://mirror.yandex.ru/debian/ debian/ Clientul rsync poate funcționa nu numai cu serverul rsync, ci poate funcționa și printr-o conexiune ssh cu acele mașini pe care este instalat rsync:
$ rsync -avv user@computer:/home/mirror/debian/debian/ În același timp, va avea următoarele avantaje în comparație cu comanda scp:

  • nu va copia acele fișiere a căror ștampilă de modificare se potrivește cu marca de timp de modificare a copiei locale a fișierului,
  • poate descărca fragmente de fișiere nedescărcate,
  • cu toate acestea, poate verifica identitatea fișierelor folosind o funcție hash, dacă este necesar, descarcând blocuri individuale ale fișierului, rezultatul calculării funcției hash pentru care este diferit.
De asemenea, puteți utiliza rsync pentru a copia fișiere locale:
$ rsync -avv /home/mirror/debian/ debian/ În comparație cu comanda cp, va avea următoarele avantaje:
  • nu va copia acele fișiere a căror ștampilă de modificare coincide cu marca de timp de modificare a copiei fișierului,
  • poate copia link-uri, dispozitive,
  • copiază permisiunile fișierelor,
  • atunci când rulează ca root, va copia proprietatea fișierului către utilizatori și grupuri.
Când copiați, puteți seta modele pentru includerea și excluderea fișierelor din procesul de copiere și există multe alte posibilități.

La sincronizarea cu o resursă Samba sau cu un sistem de fișiere FAT, se poate întâmpla ca nu numai fișierele modificate să fie copiate, ci jumătate din toate fișierele plus cele modificate. Acest lucru se datorează faptului că sistemul de fișiere FAT a alocat istoric doar 5 biți pentru stocarea secundelor. 5 biți pot stoca maximum 32 de valori diferite, astfel încât secundele sunt stocate rotunjite la o valoare pară. Din această cauză, rsync poate crede că fișierul s-a schimbat chiar dacă diferența dintre marcajele de timp ale celor două fișiere este de 1 secundă. Pentru a preveni rsync să acorde atenție diferenței de o secundă, ar trebui să îi oferiți opțiunea suplimentară --modify-window=1:
$ rsync -avv --modify-window=1 /home/fileserv1/ /home/fileserv2/ Pentru mai multe informații despre programul rsync, consultați paginile de manual de sistem rsync(1) și rsync.dconf(5) sau traducerile acestora în limba rusă limba

Soluție de backup bazată pe implementare rsync pentru Windows, utilizați tehnologia populară pentru sincronizarea fișierelor și folderelor aflate în diferite locuri din rețea, cu o cantitate minimă de date transferate.

Tehnologia de backup Rsync

Denumirea tehnologiei de copiere rsync (sincronizare la distanță)– literal: „sincronizare la distanță”. A fost dezvoltat inițial ca o aplicație pentru Unix. Există un analog al rsync pentru Windows, cwrsync. Deci, care sunt beneficiile backupului rsync pentru backup și sincronizare pe Windows?

Exemple de utilizare Rsync în Handy Backup Server Network

Versiunea ajută la crearea de rezervă a stațiilor de lucru de la distanță printr-o rețea, astfel încât este nevoie de o singură persoană - un administrator de rețea care gestionează întregul proces de backup de la distanță fără a întrerupe activitatea utilizatorilor.

Descarca

Cumpără!

Versiunea 8.0.4 din 10 iulie 2019. 104 MB
Program de backup Backup la îndemână. 27800 RUB pentru o licență

Server de rețea de rezervă la îndemână

Cu această versiune a programului, puteți gestiona copii de siguranță ale stațiilor de lucru la distanță prin rețea. Perioada de probă gratuită, complet funcțională - 30 de zile!

Să presupunem că aveți două stații de lucru în rețea pe care doriți să le sincronizați. Backup folosind rsync pentru Windows vă permite să transferați numai date care diferă în anumite foldere pe două mașini, economisind astfel semnificativ timpul de lucru.

La prima vedere, poate părea că aceasta este o copie de rezervă incrementală sau diferențială obișnuită, cu toate acestea, acestea sunt, de fapt, lucruri semnificativ diferite, deoarece o copie de rezervă standard nu poate calcula, transfera și „lipi” doar diferența dintre datele sincronizate, dar suprascrie întotdeauna fișierele când se potrivesc cu nume

În acest fel, fluxul de date la sincronizarea a două foldere este minimizat. Prin urmare, obținem și un timp de procesare mai scurt pentru operație, toate celelalte lucruri fiind egale. Folosind expresia standard „Timpul este bani”, constatăm că într-un fel reducem costurile financiare ale copierii de rezervă prin copierea fișierelor Rsync.

Backup incremental folosind rsync pe rețele Windows-Unix: argumente pro și contra

Să aruncăm o privire mai atentă la backup-ul software folosind rsync. Să fim atenți la cele mai interesante situații. Să presupunem că acum avem o rețea mixtă Windows-Unix OS.

Pe baza a ceea ce am învățat deja bine despre serverul rsync, această tehnologie în sine și backup-ul cu ajutorul ei, putem deduce câteva avantaje remarcabile: backup și recuperare incrementală rapidă, utilizare redusă a RAM și a resurselor de rețea. Și cireasa de pe tort: ​​aceasta este exact funcționalitatea care vă permite să faceți backup la serverele și stațiile de lucru Linux la fel de ușor ca și în cazul Windows.

Există o serie de probleme posibile cu utilizarea rsync pe Windows:

  • Incertitudine privind suportul pentru platformele de server pe 64 de biți;
  • Instabilitatea în timpul procesării pe termen lung a unor cantități mari de informații;
  • Necesitatea de a configura aplicația pentru fiecare sarcină specifică.

Ultimul punct ar putea fi automatizat, însă, problema este că nu există rețete de configurare universale pentru toate serverele și toate tipurile de date.

Astfel, înțelegem că, probabil, utilizarea utilitarului original rsync pentru Windows nu va salva situația, cu toate acestea, puteți încerca pur și simplu să adaptați algoritmul rsync pentru o anumită aplicație Windows.

Planuri pentru extinderea tehnologiei Rsync Windows în Handy Backup

În prezent, dezvoltatorii de software Handy Backup acordă o mare atenție tehnologiei de copiere Rsync, implementând-o activ în operațiuni de aplicație precum:

Echipa de dezvoltare Handy Backup lucrează în prezent la aplicație rsync pentru backup prin rețea din mai multe puncte de control. Funcționalitatea inteligentă a programului nostru vă va permite să gestionați stațiile de lucru la distanță de pe aproape orice mașină din rețea, atâta timp cât aveți drepturi de acces (nu uitați de securitate!).

Dezvoltatorii Handy Backup au implementat funcționalități pentru Rsync backup Windows și Linux computere, iar lista de posibilități este în continuă extindere! Ce se întâmplă dacă ți-ai putea gestiona întreaga rețea de pe dispozitivul tău mobil Android? Sau faceți o copie de rezervă a cardului de memorie al telefonului dvs. ca stație de lucru în rețeaua locală? Iti place ideea? Apoi, vă vor plăcea și versiunile Handy Backup, care funcționează pe algoritmul de backup rsync pentru Windows de la Novosoft.