Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • vijesti
  • Brza sinhronizacija milijardi fajlova. Rsync: Moćan uslužni program za brzo, fleksibilno daljinsko i lokalno kopiranje datoteka

Brza sinhronizacija milijardi fajlova. Rsync: Moćan uslužni program za brzo, fleksibilno daljinsko i lokalno kopiranje datoteka

Potreba za prijenosom datoteka između servera i računala javlja se prilično često, posebno kada se administrira više uređaja. Obično je za ove svrhe zgodno koristiti ssh i scp, ali ako je datoteka jako velika, a promijenjen je samo mali dio, ili želite podesiti stalnu automatsku sinhronizaciju, onda scp očito nije idealna opcija . Za to postoje posebni uslužni programi. U ovom članku ćemo pogledati jedan od njih. Naime, rsync sinhronizacija u linuxu će biti razmotrena.

Rsync je softver otvorenog koda koji se može koristiti za sinhronizaciju datoteka i fascikli sa lokalnog računara na udaljeni i obrnuto. Značajna karakteristika Rsync-a je mogućnost prijenosa šifriranih datoteka koristeći SSH i SSL. Osim toga, prijenos datoteka se obavlja u jednoj niti, za razliku od drugih sličnih programa, koji kreiraju posebnu nit za svaki prijenos datoteke. Ovo povećava brzinu i uklanja dodatna kašnjenja koja postaju problem pri prijenosu velikog broja malih datoteka.

Moguće je koristiti rsync za sinkronizaciju datoteka, direktorija, a može se koristiti i kompresija i enkripcija. Program je prvi put primijenjen u junu 1996. godine, a razvili su ga Andrew Tridgel i Paul Mackerras. Rsync sinhronizacija se izvodi pomoću RSYNC protokola, koji je posebno dizajniran ne samo za prijenos datoteka između dva računara, već i za njihovu sinhronizaciju. Tačnije, ne prenosi se kompletan fajl, već samo ono što je promenjeno.

Kao što ste već shvatili, u ovom članku ćemo pogledati primjere rsync sinhronizacije, rsync konfiguraciju, kao i njegove glavne karakteristike i opcije.

Karakteristike Rsync

Hajde da prvo pogledamo značajne karakteristike Rsync-a:

  • Sposobnost sinkroniziranja cijelih stabala direktorija
  • Možete sačuvati simboličke veze, tvrde veze, vlasnike datoteka i dozvole, metapodatke i vrijeme kreiranja.
  • Ne zahtijeva posebne privilegije
  • Jednostruki prijenos datoteka
  • Podrška za RSH, SSH kao transport
  • Podrška za anonimni Rsync

Rsync sintaksa

Nećemo se detaljno zadržavati na instalaciji ovog uslužnog programa na sistem. Veoma je popularan, tako da ga možete instalirati koristeći svoj menadžer paketa iz zvaničnih spremišta. Na Ubuntu-u, naredba za instalaciju će izgledati ovako:

$ sudo apt-get install rsync

A sada, prema tradiciji sličnih članaka, razmotrite sintaksu naredbe rsync:

$ rsync opcije izvorni sink

Izvor i odredište mogu biti udaljeni ili lokalni direktorij. Na primjer ssh, rsync, samba server ili lokalni direktorij. Opcije specificiraju dodatne opcije za rsync.

Opcije Rsync

Sada pogledajmo na brzinu opcije rsync. Ovdje nisu navedene sve opcije. Za više detalja pogledajte man rsync:

  • -v- Prikažite detaljne informacije o procesu kopiranja
  • -q- Minimum informacija
  • -c- Provjera kontrolnih suma za datoteke
  • -a- Režim arhiviranja
  • -R- relativne staze
  • -b- kreiranje rezervne kopije
  • -u- nemojte prepisivati ​​novije datoteke
  • -l- kopirajte simboličke veze
  • -L- kopirati sadržaj linkova
  • -H- kopirajte čvrste veze
  • -p- sačuvati prava za fajlove
  • -g- sačuvaj grupu
  • -t- uštedite vrijeme modifikacije
  • -x- radi samo na ovom sistemu datoteka
  • -e- koristiti drugi transport
  • -z- komprimirati datoteke prije prijenosa
  • —Izbriši- brisanje datoteka koje nisu u izvoru
  • —Isključiti- isključi datoteke po uzorku
  • —Rekurzivno- rekurzivno iterirati preko direktorija
  • —Bez rekurzivnog- onemogućiti rekurziju
  • —Napredak- prikaz toka prijenosa datoteke
  • —Stat- prikaz statistike prijenosa
  • —Verzija- uslužna verzija

Konfiguracija Rsync servera

Kao što razumijete, ne možete jednostavno uzeti i ispustiti datoteke na prvu mašinu koja naiđe bez instaliranja posebnog softvera na nju. Udaljena mašina mora imati instaliran i konfigurisan RSYNC, SSH, Samba ili FTP server, sa kojim se Rsync može prijaviti na mašinu i tamo prenijeti datoteke.

Pogledajmo minimalnu konfiguraciju rsync servera tako da se može izvršiti rsync kopiranje datoteka. To će nam omogućiti ne samo da sinhronizujemo datoteke sa mašinom, već i da ih primamo odatle.

Prvo kreirajte konfiguracioni fajl sa sledećim sadržajem:

$ sudo nano /etc/rsyncd.conf

Putanja = / tmp / share / hosts dozvoljava = 192.168.1 * Hostovi odbijaju = * lista = istinit uid = root gid = root samo za čitanje = lažno

Ovdje postavljamo putanju do naše mape za sinhronizaciju, dozvoljavamo pristup serveru samo sa kućne mreže (192.168.1. *) i odbijamo sve ostale veze. Parametri uid i gid određuju korisnika i grupu od kojih će demon biti pokrenut. Bolje je ne koristiti root, već navesti korisnika niko i dati mu prava na mapu u kojoj će se izvršiti sinhronizacija rsync direktorija.

$ sudo servis rsyncd start

$ sudo servis rsyncd omogući

Primjeri Rsync sinhronizacije

Lokalno kopirajte i sinhronizirajte datoteke

Rsync vam omogućava da sinhronizujete datoteke i fascikle unutar istog uređaja. Pogledajmo prvo korištenje rsync za lokalnu sinkronizaciju datoteke:

$ rsync -zvh datoteka / tmp / sigurnosne kopije /

Sinhroniziranje foldera na lokalnom računalu

Sinhronizacija rsync foldera je jednostavna kao i sinhronizacija datoteka:

$ rsync -avzh / početna / korisnik / dokumenti / tmp / sigurnosne kopije /

Sinhronizacija sa udaljenim serverom

Nije mnogo teže sinhronizovati datoteke sa udaljenim serverom. Kopirajmo folder lokalnih dokumenata na udaljeni server:

$rsync -avz dokumenti / [email protected]: / Dom /

Takođe možete sami da sinhronizujete datoteke sa rsync sa udaljenog servera:

$ rsync -avz [email protected]: / kuća / dokumenti /

Adresa udaljenog servera je napisana u sljedećem formatu:

korisničko ime @ adresa_mašine: port / folder / uključeno / udaljeni_mašina

Nije potrebno specificirati port, tada će se sinhronizacija rsync foldera izvršiti na standardnom portu.

Sinhronizacija datoteka preko SSH-a

Opcija -e se koristi za postavljanje protokola veze. Kada se koristi SSH, svi preneseni podaci se šifriraju i prenose preko sigurnog kanala, tako da ih niko ne može presresti.

Da biste koristili SSH, morate znati lozinku korisnika na sistemu.

Sinhronizacija rsync fajlova sa udaljenog servera preko ssh-a će izgledati ovako:

$ rsync -avzhe ssh [email protected]: /root/install.log / tmp /

Sada prebacimo podatke na isti server:

$ rsync -avzhe ssh backup.tar [email protected]: / sigurnosne kopije /

Pogledajte napredak sinhronizacije

Da vidite napredak kopiranja datoteke s jedne mašine na drugu, koristite opciju toka:

$ rsync -avzhe ssh --progres / home / korisnik / dokumenti [email protected]: / root / dokumenti

Sinhronizacija ne svih datoteka u rsync

Opcije uključivanja i isključivanja vam omogućavaju da odredite koje datoteke želite sinkronizirati, a koje isključiti. Opcije ne rade samo sa datotekama već i sa direktorijumima.

Na primjer, kopirajmo sve datoteke koje počinju slovom R:

$ rsync -avze ssh --uključi "R *" --isključi "*" [email protected]: / root / dokumenti / / root / dokumenti

Izbriši pri sinhronizaciji

Tokom sinhronizacije, možete izbrisati datoteke koje nisu na mašini sa koje dolazi rsync sinhronizacija; za to koristite opciju –delete.

Na primjer:

$ rsync -avz --delete [email protected]: / dokumenti / / tmp / dokumenti /

Ako prije izvršavanja ove naredbe kreirate datoteku u fascikli koja nije na udaljenom serveru, ona će biti izbrisana.

Maksimalna veličina datoteke

Možete odrediti maksimalnu veličinu datoteka za sinhronizaciju. Za to se koristi opcija –max-size. Na primjer, sinkronizirat ćemo samo datoteke manje od 200 kilobajta:

$ rsync -avzhe ssh --max-size = "200k" / korisnik / dokumenti / [email protected]: / root / dokumenti

Uklanjanje originalnih fajlova

Moguće je izbrisati izvorne datoteke nakon što se sinhronizacija sa udaljenim serverom završi:

$ rsync --remove-source-files -zvh backup.tar / tmp / backups /

Stoga će datoteka backup.tar biti izbrisana nakon što se kopiranje u / tmp / backups završi.

Prekrasan i vrlo popularan rsync program ima mnogo praktičnih opcija i izvanrednih sposobnosti, ali ih nije lako pronaći. Pa, osim ako niste spremni pročitati cijeli priručnik od korice do korice.

Pokušat ću vam uštedjeti vrijeme čitajući priručnik i ispričati vam najvažnije i najkorisnije stvari. Jednostavnim rečima, kako jeste.

Zašto je potreban rsync?

Zašto koristiti rsync ako imate uobičajene cp i scp, pitate se.

    U jednom dijelu, rsync je praktičniji i bolji od pomenutih analoga jer vam daje mogućnost da vidite sve što će raditi prilikom kopiranja datoteka prije same operacije kopiranja.

    U drugom dijelu - rsync po defaultu kopira samo nove i izmijenjene fajlove, pa čak i ne samo fajlove - već njihove zasebne dijelove, čineći to surovo i efikasno.

Ova dva razloga su dovoljna da zaboravite na cp u svakodnevnom radu, zamjenjujući ovu komandu i njene analoge za rsync.

Princip primjene

Ako govorimo o jednostavnom kopiranju datoteka, prvo što treba učiniti je uvijek napraviti probni rad (prekidač -n) u opširnom načinu rada (-v):

rsync -avn izvorni primjer.com:odredište

U ovom režimu, rsync će prikazati listu datoteka koje će kopirati. Kopirat će se samo novi i promijenjeni fajlovi. Možete provjeriti da li se kopira sam direktorij, a ne sadržaj, ili da je to sadržaj koji se kopira.

Nakon što ste se uvjerili da je kopirano upravo ono što želite, možete započeti pravo kopiranje:

rsync -av izvorni primjer.com:odredište

U ovoj naredbi, prekidač -a podrazumijeva rekurzivno kopiranje svih datoteka i direktorija uključujući njihove atribute kao što su datum kreiranja i datum izmjene. Prekidač -v će vam dati detaljan izvještaj o radu dok se izvodi i kada se završi.

Pravila kopiranja direktorija

S jedne strane, pravila su vrlo jednostavna.

    Ako nema kose crte na kraju puta do imenovanog izvora, sam direktorij će biti kopiran.

    $ rsync -avn put / do / izvor example.com: odredište slanje inkrementalne liste datoteka izvor / izvor / primjer.html ...

    Ako postoji kosa crta ili izvor pokazuje na direktorij bez imena, tada će se kopirati sadržaj direktorija.

    $ rsync -avn putanja / do / izvora / example.com: odredište ^^^ slanje inkrementalne liste datoteka example.html ... # Ekvivalentno ovoj naredbi: $ cd putanja / do / izvora; rsync -avn. primjer.com:odredište

S druge strane, sasvim je moguće zaboraviti u žaru šta i kako, nakon što ste kopirali sadržaj direktorija umjesto samog direktorija, zadobili dosta problema s brisanjem nepotrebnih datoteka koje su se pojavile niotkuda s datumima u prošlost (ključ -a, sjećate se?).

Stoga je najbolje uvijek slijediti uobičajeni scenarij uz preliminarnu provjeru operacije.

Nekoliko korisnih ključeva

Prvo, hajde da razgovaramo o opcijama koje će vam biti sjajno da znate bez mamza i varalica.

    Prekidač -P uključuje nekoliko opcija odjednom. Sa ovim ključem, rsync će pokazati napredak kopiranja pojedinačnih datoteka i nastaviti kopiranje ako je prekinuto. Ova opcija je posebno korisna kada kopirate velike datoteke. Prekidač -P mora biti specificiran svaki put, inače će rsync izbrisati datoteke koje nisu u potpunosti preuzete.

    Ako kopirate datoteke sa veoma zauzetog ili slabog servera, možete eliminisati trošenje procesorskih resursa na izračunavanje promenjenih delova datoteka tako što ćete ih u potpunosti kopirati. Ovo zahtijeva prekidač -W.

    Ako želite da znate koliko rsync misli da je ostalo da radi, potreban vam je prekidač --info = progress2. Ako kopirate cijeli sistem datoteka, tada će vas ovaj ključ, koji se koristi sam, razočarati: informacije o ukupnom volumenu će se stalno ažurirati. To je zato što rsync ne pokušava pročitati cijeli sistem datoteka prije nego što počne kopirati, već obavlja oba zadatka odjednom.

    Ali ne očajavajte! Ako želite da znate koliko je tačno posla ostalo od samog početka, možete onemogućiti sekvencijalno skeniranje pomoću --no-inc-rekurzivnog prekidača ili, ukratko, --no-i-r.

    $ rsync -ah --partial --info = napredak2 --no-i-r izvor example.com:odredište 623.38M 0% 82.23MB / s 0:11:10

    Gore navedeni ključevi dostupni su od verzije 3.1.0, odnosno već rade u stabilnom Debianu.

    Ako ne trebate samo kopirati datoteke, već potpuno sinhronizirati sadržaj direktorija brisanjem nepotrebnih datoteka, a iz nekog razloga ne možete sinkronizirati datoteke koristeći Git, onda će vam prekidač --delete (ili njegov ekvivalent --del) dobro doći.

    Sa ovim prekidačem rsync će ukloniti nepotrebne datoteke iz odredišnog direktorija.

    $ rsync -avn --izbriši izvor example.com:odredište šalje inkrementalnu listu datoteka brisanje izvora / bad.txt izvora / izvora / test.txt

    Prekidač -n u gornjoj naredbi je namjerno ostavljen.

Recimo koju riječ o kompresiji

Suprotno popularnom zabludi, korištenje kompresije unutar rsync-a (-z prekidač) je više štete nego koristi. Činjenica je da OpenSSH, koji se svuda koristi od kraja 2005. godine, podrazumevano koristi kompresiju prenetih podataka. Razumijete da kompresija već komprimiranih podataka koristi samo procesorske resurse bez smanjenja količine prenesenih podataka.

Možete provjeriti da se kompresija već koristi prilikom povezivanja na vaš server:

$ ssh -v [email protected] false 2> & 1 | grep kompresija debug1: Omogućavanje kompresije na nivou 6.

Ako ova komanda neće se prikazati, između ostalog, takav red o omogućavanju kompresije kao gore, onda možda trebali biste koristiti kompresiju. Vrijedi provjeriti je li kompresija dobra. Ovo se posebno odnosi na uređaje male potrošnje sa brzim konekcijama: za vaš NAS može biti brže da kopira nešto preko gigabitne veze bez kompresije nego da pokušava da prestigne gigabitnu mrežu sa procesorom male snage.

Srećom, rsync je dovoljno pametan da ne koristi kompresiju ako kopirate datoteke lokalno, iz direktorija na disk, itd.

Djelomično kopiranje

Vjerovatno će vam trebati rsync da biste preskočili neke datoteke prilikom kopiranja jednog dana.

U najjednostavnijem slučaju, želite da rsync ne kopira datoteke iz različitih sistema kontrole verzija, uključujući direktorije kao što su .svn i.git. Za ovaj zadatak ne treba vam ništa osim prekidača -C (ili --cvs-exclude u punom obliku). Ovo će zanemariti najpopularnije VCS datoteke kao da ih nema. Ne zaboravite koristiti -n kada ga prvi put pokrenete.

rsync -nC primjer.com:izvorno odredište

Može se desiti da greškom kopirate gomilu takvih fajlova sa VCS-a. U ovom slučaju, da biste dobili čistu kopiju, trebat će vam prekidač --delete-excluded, pomoću kojeg će sve izuzete datoteke biti izbrisane.

rsync -nC --delete-excluded example.com:izvorno odredište

Isključujemo preko .rsync-filtera

Ako su vam potrebna fleksibilnija pravila, što je posebno važno ako se kopiranje obavlja redovito, onda je bolje ne gubiti vrijeme na sitnice i sve izuzetke nacrtati u datoteci rsync-filter.

$ cat source / .rsync-filter - test.bin - * .tmp - /.cache - / example / - / ** / Trash / - /.mozilla/firefox/*/Cache/ + Projekti / ** / Trash /

Da biste isključili nešto sa liste za prijenos, dodajte red s pravilom (- ili + na početku reda) ovoj datoteci.

    Ako trebate isključiti određenu datoteku, gdje god da se nalazi u bilo kojem direktoriju ispod hijerarhije, onda jednostavno naznačimo naziv datoteke.

    # nijedan test.bin fajl neće biti kopiran - test.bin # svi .tmp fajlovi će biti preskočeni - * .tmp

    Ako trebate isključiti datoteku ili direktorij relativno rsync-filter direktorij, tada označavamo kosom crtom na početku:

    # direktorij ili .cache fajl neće biti kopiran, ali foo / .cache i foo / bar / .cache će biti kopirani - /.cache # primjer direktorija neće biti kopiran, ali će biti kopiran primjer fajl - / primjer /

    U pravilima, zvjezdica odgovara bilo kojem znaku osim kose crte, a dvije zvjezdice odgovaraju bilo kojem znaku:

    # direktorij će biti preskočen .local / share / Trash / i Documents / example / Trash / - / ** / Trash / # direktorij neće biti preskočen .mozilla / firefox / abcd.profile / ext / Cache / # već direktorij će biti preskočen .mozilla /firefox/abcd.profile/Cache/ - /.mozilla/firefox/*/Cache/

    Konačno, ako želite da se neki fajlovi kopiraju, uprkos prethodno postavljenim pravilima, onda ih možete označiti pravilom + na početku reda.

    # direktorij Projekti / Primjer / raspored / Otpad / će se kopirati + Projekti / ** / Otpad /

Rsync-filter datoteke rsync može pretraživati ​​cijelu strukturu direktorija kada se pokrene sa -F opcijom.

Ako želite da se ove datoteke same po sebi ne kopiraju, onda morate navesti ovaj ključ dva puta ovako:

$ rsync -avFFn izvorni primjer.com:destinacija šalje inkrementalnu listu datoteka izvor / izvor / primjer.html izvor / tmp / izvor / tmp / foo.bin poslano 174 bajta primljeno 30 bajtova 408,00 bajtova / sek ukupna veličina je 18 400 ubrzanje je 90,20 ( SUHO TRCANJE)

Kao što vidite, dodatni fajlovi nisu kopirani:

$ ls izvor / .rsync-filter izvor / foo.tmp izvor / foo.tmp izvor / .rsync-filter $ cat izvor / .rsync-filter - * .tmp

Ograničavanje rsync preko ssh-a

Ponekad morate omogućiti rsync preko ssh-a, daljinski i bez lozinke, definiran samo za direktorij i host, isključujući kopiranje bilo čega na druga mjesta ili sa drugih mjesta.

Na primjer, želite biti u mogućnosti kopirati datoteke na server backup.example.com samo sa host server.example.com, samo i samo u backup-example direktorij, i samo sa ovim opcijama:

$ rsync -aW --del izvor / backup.example.com:destination/backup-example/

Tada prvo morate dobiti naredbu koju rsync pokreće kada pozivate ssh na udaljenom hostu:

$ rsync -e "ssh -t -v" -aW --del izvor / backup.example.com:destination/backup-example/ 2> & 1 | grep naredba debug1: Slanje naredbe: rsync --server -lWogDtpre.iLsfxC --delete-during. odredište / rezervni primjer /

U skladu s tim, u ~ / .ssh / authorized_keys na example.com, dodajte pokretanje ove naredbe prema zadanim postavkama za poznati ssh ključ prilikom povezivanja:

from = "server.example.com", command = "rsync --server -lWogDtpre.iLsfxC --delete-during. odredište / backup-example /", no-pty, no-port-forwarding ssh-rsa AAAA .. # sljedeći je vaš ključ

Stoga, čak i ako su neke druge opcije specificirane prilikom pokretanja rsync-a, ciljni server će i dalje izvršiti naredbu rsync koja odgovara originalnim opcijama i postavkama koje ste naveli.

Ako želite da vaša rezervna kopija ne bude prepisana ili izbrisana na odredišnom serveru, onda opciju --del treba zamijeniti sa --ignore-existing.

Vremeplov

Oni macOS i OS X korisnici koji naprave rezervnu kopiju sigurno će cijeniti rad Time Machinea. Ovaj program omogućava bukvalno u dva klika povratak na prethodnu verziju bilo koje datoteke. Uz svu svoju ljepotu, Time Machine ne radi ništa što mi ne možemo učiniti sa rsync-om.

#! / bin / bash set -o skup imenica -o errexit cd $ (dirname "$ 0") datum = $ (datum --iso-8601 = sekunde) test -L najnoviji || ln -s "$ datum" najnoviji rsync --delete-excluded --prune-empty-dirs --archive -F --link-dest = ../latest " [email protected]"" ./ $ datum "rm najnoviji ln -s" $ datum "najnoviji

Skriptu treba staviti u korijen diska ili direktorija gdje treba napraviti sigurnosne kopije.

Pokreni sa samo jednim argumentom: izvorni direktorij. Na primjer, ovako.

/ mnt / backups / backup / home

Nakon nekoliko pokretanja, dobijamo sljedeću strukturu direktorija:

2017-02-08T22: 05: 04 + 09: 00 2017-02-08T22: 10: 05 + 09: 00 2017-02-08T22: 15: 05 + 09: 00 2017 T22: 06:02 : 00 2017-02-08T22: 25: 05 + 09: 00 2017-02-08T22: 30: 04 + 09: 00 najkasnije -> 2017-02-08T22: 30: 04 + 09: 0

U ovom slučaju, najnovije označava najnoviju sigurnosnu kopiju.

Svaki od direktorija sadrži snimak onoga što je bilo u originalnom direktoriju u vrijeme kopiranja. Možda mislite da je prostor na disku zauzet proporcionalno broju kopija, ali to nije slučaj.

$ du -sh / mnt / sigurnosne kopije 4.5M / mnt / sigurnosne kopije $ du -sh / home 3.8M / home

Cijeli skup kopija zauzima tek nešto više prostora od originalnog direktorija. Mjesto ide na promijenjene fajlove.

Ako se ništa nije promijenilo, prostor se i dalje gubi na kreiranje direktorija koji se ne mogu pohraniti kao čvrste veze.

$ du -hs 2017-02-08T22: 20: 06 + 09: 00 2017-02-08T22: 25: 05 + 09: 00 2017-02-08T22: 30: 04 + 09: 08 M 02-31.02. : 20: 06 + 09: 00 136K 2017-02-08T22: 25: 05 + 09: 00 136K 2017-02-08T22: 30: 04 + 09: 00

Ove značajne uštede su omogućene gore navedenim tvrdim vezama koje rsync čini za datoteke koje se nisu promijenile od posljednje kopije.

$ stat -c "% i" 2017-02-08 * / example.txt | uniq 31819810

Identični, nepromijenjeni fajlovi će imati isti inode.

Naravno, u smislu moguće uštede prostora na disku, ovaj način sigurnosnog kopiranja je daleko od posebnih programa kao npr

Martin Streicher
Objavljeno 02/11/2010

Serija sadržaja:

U proteklih 20 godina upotreba kompjuterskih mreža postala je izuzetno raširena. To je uglavnom zbog razvoja interneta, ulaganja u nacionalnu i međunarodnu mrežnu infrastrukturu i pada cijena mrežne i računarske opreme. Mreže su danas sveprisutne, a nove aplikacije povećavaju zahtjeve za skalabilnost i brzinu mreže. Internet je nekada počinjao sa nekoliko malih radnih stanica, ali sada on i njegove privatne kolege povezuju bezbroj računara.

Često korištene skraćenice
  • FTP: Protokol za prijenos datoteka
  • WebDAV: Web-based Distributed Authoring and Versioning

Tokom istog perioda, UNIX® je takođe rastao i nudio sve moćniji softver za upotrebu. FTP je bio jedan od najranijih alata za razmjenu datoteka između sistema i još uvijek je široko rasprostranjen danas. Komanda rcp (skraćenica od "remote copy") bila je korak naprijed u odnosu na FTP jer ne samo da je pružala mogućnosti standardnog cp uslužnog programa, već je i kopirala datoteke s jedne mašine na drugu. rdist, baziran na rcp-u, automatski distribuira datoteke sa jedne mašine na više sistema.

Ovi alati su danas zastarjeli, na primjer rcp i rdist ne pružaju sigurnost prilikom prijenosa datoteka. Sada scp zauzima njihovo mjesto. Iako je FTP još uvijek široko rasprostranjen, SFTP (Secure FTP), sigurna verzija FTP-a, treba koristiti gdje god je to moguće. Postoje i druge opcije dijeljenja datoteka, kao što su WebDAV i BitTorrent™. Naravno, što više mašina imate, to je teže održavati ih sinhronizovanim ili barem poznatim. Kada radite sa scp-om i WebDAV-om, morate napisati vlastitu skriptu za sinhronizaciju da biste to učinili.

Rsync je idealan alat za distribuciju datoteka. Može nastaviti prijenos datoteka nakon prekida veze, prenosi samo one dijelove datoteke koji se razlikuju u izvornoj datoteci i njenoj odredišnoj kopiji i može izvršiti potpune ili inkrementalne sigurnosne kopije. Osim toga, dostupan je na svim vrstama UNIX-a, uključujući Mac OS X, što olakšava povezivanje gotovo svake verzije UNIX-a s njim.

Da bismo se upoznali sa rsync-om, prvo ćemo pogledati tipične slučajeve upotrebe, a zatim ćemo preći na naprednije upotrebe. Da demonstriram kako rsync radi, koristit ću Mac OS X verziju 10.5, Leopard (aroma FreeBSD-a) i Ubuntu Linux® verziju 8. Ako koristite drugi operativni sistem, možete prebaciti većinu primjera na taj također; pogledajte rsync man stranicu na vašoj mašini da vidite da li su operacije koje se koriste ovde podržane i ako je potrebno pokušajte da pronađete ekvivalent.

Predstavljamo rsync

Baš kao i cp, rsync kopira datoteke s jedne lokacije na drugu. Za razliku od cp-a, rsync može izvršiti i lokalno i udaljeno kopiranje. Na primjer, naredba data u kopira direktorij / tmp / photos sa svim njegovim sadržajem u početni direktorij.

Listing 1. Kopiranje direktorija i njegovog sadržaja
$ rsync -n -av / tmp / fotografije ~ lista datoteka za izgradnju ... urađene fotografije / fotografije / Fotografija 2.jpg fotografije / Fotografija 3.jpg fotografije / Fotografija 6.jpg fotografije / Fotografija 9.jpg poslano 218 bajtova primljeno 56 bajtova 548,00 bajtova / sek ukupna veličina je 375409 ubrzanje je 1370,11

Opcija -v omogućava opširne poruke. Parametar -a (ovdje označava arhivu) je kratka forma pisanja parametara -rlptgoD, koji označavaju da treba izvršiti rekurzivnu kopiju, kopiranje simboličkih veza kao simboličkih veza (linkova), očuvanje dozvola za sve datoteke, kreiranje vremena ( puta), grupa (grupa) i vlasnik fajla (vlasnik), kao i čuvanje fajlova uređaja i posebnih fajlova (uređaja). Tipično, prekidač -a kreira kopiju u ogledalu datoteka, osim ako sistem na koji se kopira ne podržava nijedan od atributa datoteka koje se kopiraju. Na primjer, kopiranje direktorija iz UNIX-a u Windows® ne prikazuje uvijek atribute savršeno. U nastavku su neki prijedlozi za postupanje u neobičnim situacijama.

rsync ima mnogo opcija. Ako sumnjate da su parametri naredbe, izvorni opis ili odredište kopiranja netočni, možete koristiti -n za probno izvođenje. Tokom probnog pokretanja, rsync će vam pokazati šta će biti urađeno sa svakom datotekom bez pomeranja ni jednog bajta. Nakon toga, nakon što se uvjerimo da su svi parametri ispravni, -n se može ukloniti i promjene će se izvršiti.

Listing 7. Kopiranje datoteka na lokalnu mašinu
rsync --port = 7777 mymachine.example.com::pickup/ Zdravo! Dobrodošli na Martinov rsync server. Drwxr-xr-x 4096 2009/08/23 08:56:19. -Rw-r - r-- 0 2009/08/23 08:56:19 article21.html -rw - r - r-- 0 2009/08/23 08:56:19 design.txt -rw-r - r-- 0 2009/08/23 08:56:19 figure1.png

Zamjenom izvorne i odredišne ​​adrese, možete upisati datoteku(e) u modul sa lokalnog stroja, kao što je prikazano u.

Listing 8. Zamjena izvornog i odredišnog direktorija
$ rsync -v --port = 7777 application.js mymachine.example.com::dropbox Zdravo! Dobrodošli na Martinov rsync server. Application.js poslao 245 bajtova primljeno 38 bajtova 113,20 bajtova/sek ukupna veličina je 164 ubrzanje je 0,58

Ovo je bio brz, ali prilično potpun pregled mogućnosti rsync-a. Sada da vidimo kako možete primijeniti ovaj paket na svoje svakodnevne zadatke. rsync je posebno koristan za sigurnosne kopije. A pošto može da sinhronizuje lokalne i udaljene datoteke ili čak sisteme datoteka, idealan je alat za upravljanje velikim grupama mašina koje moraju (barem delimično) biti identične.

Izrada sigurnosne kopije vaših podataka pomoću rsync

Redovno čuvanje rezervnih kopija je izuzetno važna, ali obično zanemarena rutina. Ni dužina postupka pravljenja rezervne kopije, ni potreba za velikim eksternim skladištem datoteka, niti bilo šta drugo ne mogu biti izgovor; kopiranje podataka kako bi se osigurala njihova sigurnost trebala bi biti svakodnevna rutina.

Kako biste ovaj zadatak učinili bezbolnim, koristite rsync za sigurnosne kopije i udaljeni server, koji vam je možda omogućio vaš ISP. Svaka vaša UNIX mašina može koristiti ovaj mehanizam, što je idealno rješenje za sigurno pohranjivanje vaših podataka.

Instalirajte SSH ključeve, rsync demon na udaljenu mašinu i kreirajte rezervni modul za pisanje. Nakon toga, pokrenite rsync i, kao što je prikazano u skripti from, kreirajte sigurnosne kopije za koje je malo vjerovatno da će zauzeti mnogo prostora.

Listing 9. Kreirajte dnevne sigurnosne kopije datoteka
#! / bin / sh # Ova skripta je zasnovana na radu Michaela Jakla (jakl.michael AT gmail DOTCOM) i koristi se # uz izričitu dozvolu. HOST = mymachine.example.com SOURCE = $ POČETNA PUTNJA PUTNA BACKUP = home-backup datum = `datum" +% Y-% m-% dT% H:% M:% S "` rsync -az --link-dest = $ PATHTOBACKUP / trenutni $ SOURCE $ HOST: PATHTOBACKUP / back- $ datum ssh $ HOST "rm $ PATHTOBACKUP / trenutni && ln -s back- $ datum $ PATHTOBACKUP / trenutni"

Zamijenite HOST imenom vašeg backup servera i SOURCE direktorijem koji želite spremiti. Zamijenite PATHTOBACKUP imenom modula. (Alternativno, posljednja tri reda skripte mogu se zapetljati i više direktorija može napraviti sigurnosnu kopiju promjenom varijable SOURCE). Ovaj scenario funkcioniše na sledeći način.

  • Prvo, string poput 2009-08-23T12:32:18 stavlja se u varijablu datuma, koja sadrži trenutni datum i vrijeme; ovaj niz će jedinstveno identificirati svaku sigurnosnu kopiju.
  • Naredba rsync ovdje obavlja najveći dio posla. -az opcije čuvaju sve informacije o datotekama i vrše kompresiju podataka prije njihovog prijenosa, a --link-dest = $ PATHTOBACKUP / current opcija označava da ako se datoteka nije promijenila, ne biste je trebali kopirati u novu instancu sigurnosne kopije , ali kreirajte čvrstu vezu koja upućuje na ovu datoteku u postojećoj arhivi. Drugim riječima, nova sigurnosna kopija sadrži samo datoteke koje su pretrpjele promjene, ostali fajlovi su veze.

    Razmotrimo scenario detaljnije (i zamijenimo njihove vrijednosti za sve varijable). Trenutna arhiva je mymachine.example.com::home-backup/current. Nova arhiva za / home / strike direktorij će se nalaziti u direktoriju mymachine.example.com::home-backup/back-2009-08-23T12:32:18. Ako datoteka u / home / strike nije promijenjena, tada će datoteka u novoj arhivi biti predstavljena tvrdom vezom na odgovarajući fajl u trenutnoj arhivi. U suprotnom, nova datoteka se kopira u novu arhivu.

    Ako mijenjate samo mali broj datoteka i direktorija svaki dan, tada će dodatni prostor potreban za sljedeću kopiju sigurnosne kopije biti zanemariv. Štaviše, pošto su sve sigurnosne kopije (osim prve) prilično male, dugu istoriju svojih datoteka možete držati na raspolaganju.

  • U posljednjem koraku mijenjamo organizaciju rezervnih kopija na udaljenoj mašini kako bi novokreirana arhiva bila trenutna arhiva i na taj način minimizirali razlike koje je potrebno zabilježiti tokom sljedećeg izvršavanja skripte. Posljednja komanda briše trenutnu arhivu (koja je samo tvrda veza) i kreira simboličku vezu s istim imenom koja ukazuje na novu arhivu.

Jednom kada počnete sa daljinskim rsync-om za svoje svakodnevne zadatke, vjerovatno ćete morati održavati daemon uvijek aktivan i aktivan. Za Linux i UNIX mašine postoji rsync skripta za pokretanje, koja se obično nalazi na /etc/init.d/rsync. Korišćenjem ove skripte i uslužnog programa vašeg operativnog sistema koji kontroliše kako se komponente uključuju i isključuju, možete organizovati da se rsync pokrene pri pokretanju. Ako pokrećete rsync demon bez privilegija superkorisnika ili nemate pristup skriptama za pokretanje, možete pokrenuti rsync koristeći cron:

@reboot / usr / bin / rsync --daemon --port = 7777 --config = / home / strike / rsyncd / rsyncd.conf

Ova komanda pokreće demon svaki put kada se mašina ponovo pokrene. Stavite ovaj red u svoj crontab fajl i sačuvajte ga.

Već ste vidjeli kako možete rano otkriti problem korištenjem -n pregleda. Takođe možete pratiti status rsync zadataka koristeći dva parametra: --progress i --stats. Prva od ovih opcija prikazuje traku napretka zadatka. Drugi prikazuje statistiku kompresije i prijenosa podataka. Sa --compress, možete ubrzati prijenos podataka između strojeva. Umjesto slanja podataka u originalnom obliku, pošiljatelj ih komprimira prije slanja, a primalac ih dekomprimira, i kao rezultat toga, manje bajtova se prenosi za manje vremena.

Podrazumevano, rsync kopira sve datoteke iz izvora podataka na odredište. Ovo se zove dupliciranje. Ako želite da organizujete preslikavanje podataka, tj. da biste točno uskladili lokalne i udaljene podatke, koristite parametar --delete. Na primjer, ako izvor sadrži datoteke A, B i C, tada će po defaultu rsync kreirati kopije sve tri datoteke na udaljenom računalu. Međutim, ako iz izvora izbrišete, na primjer, datoteku B i ponovo izvršite dupliciranje, tada će datoteka B ostati na udaljenoj mašini, tj. udaljena kopija više neće biti točna kopija lokalnih podataka. Komanda --delete vrši preslikavanje podataka uklanjanjem datoteka iz udaljene kopije koje više ne postoje u originalnim podacima.

Često postoje fajlovi koje ne želite da arhivirate ili napravite rezervnu kopiju. To mogu biti pomoćne datoteke koje kreiraju urednici (njihova imena se obično završavaju tildom [~]) i drugi uslužni programi, kao i mnoge nebitne datoteke u vašem kućnom direktoriju, kao što su MP3 datoteke, koje se mogu vratiti ako je potrebno. U ovom slučaju, možete odrediti rsync predloške pomoću kojih će isključiti datoteke iz obrade. Možete odrediti predložak u komandnoj liniji ili možete odrediti tekstualnu datoteku koja sadrži listu predložaka. Predlošci se također mogu koristiti zajedno sa naredbom --delete-excluded za uklanjanje takvih datoteka iz obrisane kopije.

Da biste isključili datoteke koje odgovaraju određenom uzorku, koristite naredbu --exclude. Zapamtite da ako bilo koji karakter u obrascu ima posebno značenje za ljusku, kao što je *, tada obrazac mora biti zatvoren u jednostrukim navodnicima:

$ rsync -a --exclude = "* ~" / home / strike / data example.com::data

Recimo da datoteka / home / strike / excludes sadrži sljedeću listu šablona:

* ~ * .old * .mp3 tmp

Zatim možete kopirati sve datoteke osim onih koje odgovaraju bilo kojem od ovih obrazaca koristeći sljedeću naredbu:

$ rsync -a --exclude-from = / home / strike / excludes / home / strike / data example.com::data

Sinhronizujte ga

Sada kada ste upoznati sa rsync-om, nemate razloga da ne pravite redovne rezervne kopije. Šta se desilo? Da li je vaš pas žvakao vaš hard disk? (I to se dešava!) Poduzmite korake unaprijed i tada će vaši podaci ostati u savršenom redu. Na kraju krajeva, sada su svi vaši vrijedni fajlovi pohranjeni v

Rsync je uslužni program za sinhronizaciju datoteka i pravljenje rezervnih kopija. Radi na mnogim * nix sistemima).

Ograničenje rsync-a je da se podaci ne mogu kopirati između 2 udaljena sistema. U ovom slučaju, morali biste kopirati podatke s jednog udaljenog sistema, a zatim ih prenijeti na drugi.

U aptosidu imate različite opcije za pokretanje procesa sinhronizacije. Možete pokrenuti rsync s naredbom u terminalu ili instalirati dodatne pakete s Debian Sida:

Da instalirate deb paket:
apt-get install luckybackup
Upute za korištenje u terminalu

U sledećem odeljku predstavljamo rsync, njegove karakteristike i neke primere kako se rsync može koristiti sa prilagođenom skriptom za pravljenje rezervnih kopija.

rsync je brzi program za pravljenje rezervnih kopija direktorija i datoteka. rsync izračunava izmijenjene datoteke i direktorije koristeći atribute kao što su vrijednost ili datum, što može učiniti sinhronizaciju vrlo brzom. Podaci se arhiviraju prije kopiranja i raspakuju na odredištu.

rsync može kopirati podatke:
* sa lokalnog sistema na lokalni sistem,
* sa lokalnog sistema na udaljeni (udaljeni) sistem,
* sa udaljenog sistema na lokalni sistem.

U ovom slučaju, rsync koristi ssh klijent (uključen u osnovnu instalaciju) ili rsync-daemon, koji radi na izvornom i na ciljnom sistemu. rsync stranice upravljanja kažu da ako sistemi mogu komunicirati preko ssh-a, ssh se također može koristiti za rsync.

Ograničenje kod rsync-a je da se podaci ne mogu kopirati između 2 udaljena sistema. U ovom slučaju, morat ćete kopirati podatke s jednog udaljenog sistema, a zatim prebaciti sa rsync na drugi.

Da biste ovo razjasnili, razmotrite sljedeći primjer sa 3 računara:

Neo - lokalni sistem morpheus - udaljeni sistem trinity - udaljeni sistem

Svaki korisnik zna ime drugog korisnika, a rsync radi isključivo na neo, lokalnom sistemu:

Korisničko ime na neo je cuddles, korisničko ime na morpheusu je tartie, korisničko ime na trinityju je taylar.

Cilj je sinhronizirati direktorije / home / $ user / Files:

Neo: / home / cuddles / data sa morpheus i trinity, morpheus: / home / tartie / data sa neo i trinity, trinity: / home / taylar / data sa neo i morpheus.

Sada se javlja problem što se rsync ne može primijeniti između 2 udaljena računara:

Neo-> morpheus - od lokalnog do udaljenog, ispašće neo-> trinity - od lokalnog do udaljenog, ispašće morpheus-> neo - od udaljenog do lokalnog, ispašće trinity-> neo - od udaljenog do lokalno, ispostaviće se morpheus-> trojstvo - nemoguće , od udaljenog do udaljenog trojstva-> morpheus - nije moguće, od udaljenog do udaljenog

Da bismo zaobišli ovo ograničenje, postupamo na sljedeći način:

Morpheus -> trojstvo - postaje: morpheus -> neo i neo -> trojstvo trojstvo -> morpheus - postaje: trojstvo -> neo i neo -> morpheus

Ovaj dodatni korak u konačnici ništa ne mijenja. Međutim, ukazuje da:

Ovo ograničenje s rsync treba uzeti u obzir prilikom planiranja procesa sigurnosne kopije.

Korištenje imena hosta sa imenima hosta u rsync.

Korištenje imena hosta neo, morpheus i trinity umjesto IP adresa može učiniti proces kopiranja jasnijim i lakšim za razumijevanje.

Da biste to učinili, morate urediti / etc / hosts i umetnuti imena hostova i njihove pridružene IP adrese. Tako će u našem primjeru datoteka / etc / hosts izgledati ovako:

192.168.1.15 neo 192.168.1.16 morpheus 192.168.1.17 trinity

Prvi red prevodi IP adresu 192.168.1.15 u "neo", drugi 192.168.1.16 u "morpheus", a treći 192.168.1.17 u "trinity". Nakon snimanja, dodatno ime hosta se može koristiti umjesto IP adrese. Ovo je posebno zgodno ako se distribuirane IP adrese mijenjaju, na primjer, za "neo" sa 192.168.1.15 na 192.168.1.25 To olakšava rad sa skriptama, jer se one ne bi trebale mijenjati u slučaju promjene IP adresa , već samo hostovi / etc / fajla.

Dva načina za korištenje rsync.

Prvi način su podaci "Guraj (guraj)" na ciljnu mašinu; drugi su podaci "Povuci (povuci)" iz izvora. Svaka metoda ima prednosti i nedostatke, o kojima će biti riječi u nastavku. Naš primjer koristi lokalne i udaljene sisteme kako bi se jasnije objasnila terminologija.

"Gurnuti"- lokalni sistem nosi izvorne direktorije i datoteke, cilj je udaljeni sistem. Komanda rsync se izvodi na lokalnom sistemu i gura podatke u ciljni sistem.

Prednosti:
* Više od jednog izvornog sistema može biti sigurnosno kopirano do cilja. * Proces izrade rezervne kopije na više računara može se odvijati istovremeno. * Ako sistem brže završi proces sigurnosne kopije, dozvoljava korištenje resursa za druge poslove.

Nedostaci:
* Ako se skripta koristi sa sinhronizacijom preko cron-a, tada se crontabs moraju postaviti na svakom sistemu. Prilikom modifikacije skripte potrebno je izvršiti odgovarajuće izmjene na svakom sistemu; kada se raspored promijeni, svaki crontab na svakom računaru mora se promijeniti. Kao rezultat toga, administrativna usluga postaje veoma glomazna i zbunjujuća. * Procesom sigurnosne kopije nije moguće provjeriti da li je ciljna particija montirana od strane ciljnog sistema. Ako nije montiran, sigurnosna kopija se neće izvršiti.

"vuci"- udaljeni sistem nosi izvorne direktorije i datoteke, cilj je lokalni sistem. Komanda rsync se izvodi na lokalnom sistemu i izvlači podatke iz izvornog sistema.

Prednosti:
* Sistem će postati server koji upravlja svim procesima pravljenja rezervnih kopija svih ostalih sistema. Backup procesi su centralizirani.
* Kada koristite skriptu, ona mora biti na samo jednom sistemu, što pojednostavljuje sve modifikacije. Samo jedan crontab bi se trebao promijeniti kada se raspored promijeni.
* Skripta može provjeriti da li je ciljna particija montirana i povremeno će je montirati.

Sintaksa rsync (dio od "man rsync"):
rsync ... SRC ... DEST rsync ... SRC ... HOST: DEST rsync ... SRC ... HOST :: DEST rsync ... SRC ... rsync: // HOST [: PORT] / DEST rsync ... SRC rsync ... HOST: SRC rsync ... HOST :: SRC rsync ... rsync: // HOST [: PORT] / SRC
Radni primjeri rsync naredbi:

Objašnjenje dijelova ove naredbe:

Izvor: (/ path / file) morpheus: / home / tartie, cilj je: / media / sda7 / SysBackups / morpheus / home

Direktorij / home / tartie (uključujući poddirektorije) će biti spremljen u / media / sda7 / SysBackups / morpheus / home, koji će izgledati ovako nakon rsync:

/ media / sda7 / SysBackups / morpheus / home / tartie

Imajte na umu da se samo / tartie direktorij kopira na stazu specificiranu u rsync / media / sda7 / SysBackups / morpheus / home. "Izvor" samo bira odakle dolaze podaci, a "Target" govori rsync-u gdje treba kopirati podatke iz "izvora", on ih više ne percipira kao / home / tartie, već jednostavno / tartie, što bi trebao pošalji na / media / sda7 / SysBackups / morpheus / home. Drugi primjer:

Rsync [...] / home / user / data / files / media / sda7 / SysBackups / neo

Ovdje će se izvorni / files direktorij i svi direktoriji i datoteke u njemu kopirati u ciljnu mapu / media / sda7 / SysBackups / neo / - a ne u / media / sda7 / SysBackups / neo / home / user / data / datoteke.

Ovo je nešto čega treba biti svjestan kada koristite rsync sigurnosne kopije.

Objašnjenje opts_y (chornovy prevod sa engleskog "man rsync"):
-a za način arhiviranja. Manpage kaže o ovome: „Jednostavno rečeno, ovaj metod je kreiranje rekurzivnih rezervnih kopija i kopiranje gotovo svih atributa. Samo tvrde veze se ne čuvaju zbog složenosti procesa. Opcija -a odgovara: -rlptgoD, što znači: -r = rekursiv - kopirajte poddirektorije i datoteke u njih sa njihove "izvorne lokacije". -l = Veze - simboličke veze se vraćaju na odredište. -p = prava - prava su identična sa njima na originalnoj lokaciji. -t = vremenska oznaka - vremenska oznaka na originalnoj lokaciji je identična s njom. -q = tiho - minimalan izlaz informacija. Više informacija se dobija pomoću opcije -v iza opcije -a. Izvršenje bez ikakvog odgovora će se postići bez postavljanja -v opcije. -o = vlasnik - Ako se rsync pokrene kao root, vlasnici originalnih datoteka se čuvaju na odgovarajući način. -D = odgovara obje ove naredbe: --devices --specials --devices = datoteke znakova i blok uređaja će se kopirati na udaljeni sistem za kasniji oporavak. Imajte na umu da bez --super opcije, --devices opcija ne radi. --specials = rsync kopira posebne fajlove kao što su socket i fifos. --g: grupe se spremaju prema originalnim datotekama. -E: Atribut "doable" je zadržan. -v: za detaljan izlaz. Ako detalji nisu važni, ova opcija se može izostaviti. Međutim, ako želite da vidite šta se dešava, ova opcija je veoma korisna. -z: Kopirani podaci se arhiviraju, što ubrzava proces kopiranja, jer će količina premještenih podataka biti manja. --delete-after = Ciljni direktoriji ili ciljne datoteke koje više nisu u izvoru se brišu nakon premještanja, a ne prije. U slučaju problema ili katastrofe, koristit će se "nakon", "izbriši" sprječava korištenje nepotrebnih datoteka i direktorija na odredištu. - exclude = označava datoteke ili direktorije koje treba isključiti iz procesa kopiranja. U primjeru, -- exclude = “* ~ "Isključio bi SVE datoteke koje završavaju sa" ~ "iz procesa sigurnosne kopije. Sa jednom opcijom --exclude, može se proslijediti samo jedan argument, sa više argumenata za isključenje, mora se koristiti više opcija --exclude.
Dodatne naredbe:
-c - Vrši dalje provjere poređenja, što oduzima mnogo vremena. Pošto rsync već radi benchmarking, ova komanda nije integrisana u --a zbog svoje redundantnosti i uštede vremena. Ova opcija obično nije potrebna. --super - ciljni sistem će pokušati da izvrši radnje superkorisnika (root) (pogledajte man stranicu) --dry-run - probno pokretanje: samo pokazuje šta treba kopirati. Nijedan fajl se ne kopira.

I na kraju, opcije za određivanje izvornog i ciljnog direktorija.

Primjer naredbi:
rsync -agEvz --delete-after --exclude = ”* ~” morpheus: / home / tartie / media / sda7 / SysBackups / morpheus / home

Ova naredba kopira sve direktorije i datoteke ispod iz / home / tartie u "morpheus" sistem i postavlja ih u ovaj direktorij / media / sda7 / SysBackups / morpheus / home. Struktura tartie direktorija je sačuvana.

Rsync -agEvz --delete-after --exclude = ”* ~” / home / tartie neo: / media / sda7 / SysBackups / morpheus / home

Ovo je suprotna naredba od prvog primjera. On "premešta" direktorij / home / tartie i njegov sadržaj u navedeni direktorij na "neo" sistemu - imajte na umu da se sistem smatra "udaljenim" ako stavite dvotočku ispred putanje.

Rsync -agEvz --delete-after --exclude = ”* ~” / home / cuddles / media / sda7 / SysBackups / neo / home

Ovo je proces izrade sigurnosne kopije lokalnog računara. Ovdje imajte na umu da nije postavljeno dvotočka. Lokalni / home / cuddles direktorij se kopira u / media / sda7 / SysBackups / neo / home na istom lokalnom računalu.

rsync s mnogo --exclude opcija:
rsync -agEvz --delete-after --exclude = ”* ~” --exclude = ”*. c” --exclude = ”*. o” "/ *" / media / sda7 / SysBackups / neo

Ova naredba kopira sve iz korijenskog direktorija lokalnog sistema (sve direktorije i datoteke) u / media / sda7 / SysBackups / neo - iz ovoga su isključene sve datoteke i direktoriji koji završavaju na "~", ".c" ili ".o" ...

Zamjena imena hosta IP adresom:

Prva komanda se instalira metodom imena hosta, a druga metodom IP adresa. Obje naredbe su identične u svom izvršavanju:

Rsync -agEvz --delete-after --exclude = ”* ~” morpheus: / home / tartie / media / sda7 / SysBackups / morpheus / home rsync -agEvz --delete-after --exclude = ”* ~” 192.168. 1.16: / home / tartie / media / sda7 / SysBackups / morpheus / home

Metoda imena hosta se ne bi trebala koristiti, ali po našem mišljenju ona pojednostavljuje rsync sigurnosne kopije preko mreža.

class = "highlight-2"> Nemoguća naredba:

rsync -agEvz --delete-after --exclude = ”* ~” morpheus: / home / tartie trinity: / home

Kao što je već pomenuto, ograničenje rsync je to što se ova komanda ne može kopirati između 2 udaljena računara. Želimo vam još jednom skrenuti pažnju na ovo.

Nadamo se da će vam ovaj mali vodič olakšati početak korištenja rsync-a, to je vrlo uspješan program za pravljenje rezervnih kopija.

Našao sam skriptu za sinhronizaciju direktorija kroz program rsync... Mislio sam da je sinhronizacija, taj backup ista stvar, samo se drugačije zovu
Program rsync je uključen u sve distribucije i dovoljno je popularan da ga možete lako pronaći u svakoj distribuciji.
Idemo direktno na primjere rsync sinhronizacije.
Želimo imati kopiju direktorija / home / user / foto, a duplikat ćemo pohraniti u / mnt / backup. Izvršite (ne zaboravite provjeriti dozvole foldera gdje ga kopiramo, ili izvršite kao root-sudo )

Rsync -av / home / user / foto / mnt / backup

  • -prenos arhive (zajedno sa folderima, podfolderima, fajlovima, skrivenim fajlovima, itd.)
  • -v prikazati podatke o izvršenju naredbe

To je tako jednostavno! Naše fotografije su već na dva mjesta. Naravno da nisu arhivirani i zauzimaju toliko prostora kao prvi folder, ali morate nešto žrtvovati. I moraćete da žrtvujete svoj prostor na disku. Inače, za fotografije je arhiviranje neefikasno, omjer kompresije je prenizak. Naravno, morate kopirati na drugi fizički disk! Jer ako jedan tvrdi disk umre, onda će i sve ostale particije na ovom disku sa svim rezervnim kopijama umrijeti.
Da nastavimo, nesto sam ometen..
Postoji mala kvaka u gornjoj naredbi. Na primjer, preimenovali ste ili sortirali fotografije u druge mape i promijenili nazive starih mapa ili ih potpuno izbrisali. Šta će se desiti? Skripta će pošteno prenijeti nove datoteke i direktorije koji su se pojavili, a stari koje ste izbrisali u folderu / home / user / foto ostat će u backup folderu. U stvari, u direktorijumima koji se često menjaju, izvršavanje takve skripte će dovesti do gomile smeća u fascikli rezervne kopije. Da bi se to izbjeglo, naredba se mora izvršiti pomoću ključa --delete

Rsync -av --delete / home / user / foto / mnt / backup

I oba foldera će uvijek biti identična
Sada trebate odabrati svoje najvažnije direktorije i napisati jednostavnu listu naredbi za sigurnosnu kopiju u datoteci. Jednom mi je izgledalo ovako.

Rsync -av --delete / home / mik / mail / mnt / backup / home / mik / rsync -av --delete /home/mik/.mozilla / mnt / backup / home / mik / rsync -av --delete / home / mik / .claws-mail / mnt / backup / home / mik / rsync -av --delete / bin / mnt / backup / system rsync -av --delete / boot / mnt / backup / system rsync -av - izbrisati / dev / mnt / backup / system rsync -av --delete / etc / mnt / backup / system rsync -av --delete / lib / mnt / backup / system rsync -av --delete / netup / mnt / backup / system rsync -av --delete / opt / mnt / backup / system rsync -av --delete / root / mnt / backup / system rsync -av --delete / sbin / mnt / backup / system rsync -av --delete / var / mnt / backup / sistem

Posebno obraćam pažnju da ne napravim sigurnosnu kopiju svega. Ako, na primjer, odaberete cijeli svoj kućni direktorij za sigurnosnu kopiju, tada može postojati kolekcija vaših filmova, distribucija otvorenog koda itd. Sve ovo zauzima previše prostora, i po mom mišljenju, ne isplati se praviti rezervne kopije.
Vratimo se našem fajlu sa listom direktorijuma za rezervnu kopiju i učinimo ga izvršnim

Chmod + x ./file_name

Skripta se može napisati u crontab-u za svakodnevno izvršavanje, te u većini distribucija kao npr ubuntu ili debian samo ga stavite u /etc/cron.daily direktorij. Međutim, možda ćete i dalje morati da unesete izmene u datoteku / etc / crontab. Većina računara ne radi noću, pa promijenite /etc/cron.daily zadatke na vrijeme kada je vaš računar obično uključen.

A sada primjeri naredbi rsync koje samo trebate imati na umu. I tada nikad ne znaš sa kojim zadacima se možeš suočiti u budućnosti.

1 primjer.

Rsync -av --delete --exclude = "*. Avi" --exclude = "*. Mpg" / home / user / mnt / backup

Tim se sinhronizuje cjelina vaš kućni direktorij, ali ne kopira datoteke sa avi i mpg ekstenzijama. Ako vam ne treba nešto drugo, samo dodajte u nizu --exclude = "_ what_exclude_"

2 primjer.

Rsync -avz -e "ssh -l ssh_user -p5623" --delete / home / user / foto 192.168.0.1:"./temp "

Ali ovo je već komanda za sinhronizaciju između vašeg i udaljenog računara putem ssh veze.

  • -z dodatno komprimirati podatke
  • -e koristeći udaljenu školjku
  • ssh -l ssh_user -p5623- komanda za povezivanje sa udaljenim računarom. ssh_user korisnik, a -p5623 je ako je ssh port nestandardan, u primjeru 5623
  • 192.168.0.1:"./temp "- IP adresa računara (možete koristiti i ime). Također označavamo imenik u koji ćemo prenijeti podatke. Imajte na umu da je direktorij specificiran putem ./ , već krećemo od putanje matičnog direktorija ssh_user do kojeg dolazimo pri povezivanju preko ssh-a

Nakon unosa ove naredbe, moramo se prijaviti sa ssh_user lozinkom i tek tada će početi sinhronizacija direktorija. Isto tako, možete sinkronizirati udaljeni i lokalni direktorij. Dovoljno je samo zamijeniti foldere odakle vršimo sinhronizaciju i gdje.
Ako želite automatizirati proces i ne unositi lozinku svaki put, pročitajte moj članak

Top srodni članci