Primera radi, možete zakazati rsync kao cron zadatak svakog dana u 02:00 i sinhronizovati 5 GB korisničkih podataka komandom: rsync -az –delete /home/ /backup/home/. Ovakav set pruža inkrementalne prenose i kompresiju, ali –delete može nepovratno ukloniti vaše fajlove ako ciljate pogrešnu putanju; prvo pokrenite –dry-run da testirate zadatak i izbegnete greške.
Moć rsync alata u kreiranju sigurnosnih kopija
Rsync vam daje kombinaciju brzine i pouzdanosti: koristi delta-transfer algoritam koji prenosi samo izmenjene delove fajlova, često smanjujući mrežni saobraćaj za više od 90% kod većih dataset-a sa malim promenama. Možete sačuvati permisije, vlasništvo i vremenske oznake, izvršiti sinhronizaciju preko SSH-a i ograničiti propusnost, pa rsync postaje idealan za dnevne, inkrementalne i udaljene backup rutine.
Šta je rsync i kako funkcioniše?
Rsync je komandno‑linijski alat koji poredi fajlove po vremenu, veličini i checksumu, potom prenosi samo diferencijalne blokove. Radi lokalno ili preko mreže (obično preko SSH), a osnovna naredba izgleda kao rsync -avz –delete src/ user@host:/dest/. Flag –delete briše cilj koji ne postoji u izvoru, zato uvek testirajte sa –dry-run.
Ključne prednosti korišćenja rsync-a
Dobijate visoku efikasnost prenosa, mogućnost kompresije (-z), opciju nastavka prekinutih transfera, i čuvanje atributa fajlova (-a). Rsync se lako integriše u cron skripte i može ograničiti bandwidth (–bwlimit), što ga čini pogodnim za produkcijske servere i sporije veze. Inkrementalni transfer značajno smanjuje vreme i troškove skladištenja.
Za snapshot‑stil backup često se kombinuje rsync sa –link-dest kako biste dobili “punu” arhivu bez dupliranja podataka: primer komande je rsync -a –delete –link-dest=/backup/prev /data/ /backup/$(date +%F)/. Hard linkovi čuvaju prostor, ali obratite pažnju na tačnost putanja i koristite –dry-run pre uključenja –delete u automatizovanim zadacima.
Priprema za pokretanje rsync-a
Proverite da li je ciljna particija montirana i ima dovoljno prostora (npr. pokrenite df -h /mnt/backup
), testirajte mrežnu konekciju i korisničke dozvole za backup direktorijum. Ako koristite daljinski server, postavite SSH ključeve u ~/.ssh/
i obezbedite prava fajlova (direktorijum 700, privatni ključ 600). Napravite listu isključenja, plan rotacije i imajte na umu da opcija –delete može trajno izbrisati podatke ako je nepažljivo upotrebite.
Instalacija rsync alata na različitim distribucijama
Na Debian/Ubuntu instalirate komandom sudo apt update && sudo apt install rsync
. Na CentOS/RHEL koristite sudo dnf install rsync
ili yum install rsync
za starije verzije. Arch Linux zahteva sudo pacman -S rsync
. Proverite verziju sa rsync --version
i očekujte kompatibilnost između klijenta i servera — razlike u major verzijama ponekad uzrokuju neočekivane greške.
Konfiguracija i osnovna postavka pre korišćenja
Pripremite SSH autentifikaciju (~/.ssh/id_rsa
), podesite dozvole i testirajte komandno: rsync -avz --dry-run --exclude='.cache' /home/ korisnik@backup:/srv/backup
. Koristite --dry-run
za simulaciju, a imajte na umu da –delete briše fajlove na odredištu; za rsync demon koristi se port 873, dok SSH podrazumevano ide preko 22.
Dodatno konfiguršete rsync demon u /etc/rsyncd.conf
(primer: uid = backup\ngid = backup\npath = /srv/backup\nread only = false\nsecrets file = /etc/rsyncd.secrets
), a fajl sa lozinkama mora imati permisije 600. Razmislite o --link-dest
za hard-link inkrementalne kopije, pokretanju putem cron-a (npr. 0 2 * * *
) ili systemd timer-a, i izbegavajte otvorene write module bez autentifikacije jer to predstavlja ozbiljan bezbednosni rizik.
Različiti scenariji korišćenja rsync-a
Možete koristiti rsync za lokalne kopije, udalenu sinhronizaciju, mirror servere i periodične arhive; zbog delta-transfer algoritma rsync često smanji prenos podataka i do 90% kod malih izmena, podržava očuvanje atributa (-a), isključivanja (–exclude) i automatsko pokretanje putem cron-a ili systemd timera za redovne bekape.
Lokalno pravljenje sigurnosnih kopija
Za lokalne bekape često pokrećete komandu kao rsync -a –delete /home/ /mnt/backup/home/ da zadržite prava i vremenske oznake; koristite –link-dest za inkrementalne snapshot-e (hard linkovi) i prvo testirajte sa –dry-run kako biste izbegli nenamerno brisanje fajlova.
Sinhronizacija datoteka između udaljenih servera
Tipičan primer je rsync -avz -e “ssh” /var/www/ [email protected]:/backups/www/ koji kombinuje arhiviranje, kompresiju i sigurnu SSH konekciju; ako koristite drugi SSH port, navodite ga sa -e “ssh -p 2222”, a obavezno probate –dry-run pre pune operacije.
Dodatno, postavljanjem SSH ključne autentifikacije bez lozinke omogućavate automatizaciju u cron-u (npr. 0 3 * * * rsync -azP -e “ssh -p 2222” /var/www/ user@remote:/backups/www/), uključite -P za prikaz napretka i –partial da sačuvate delimične prenose; imajte na umu da opcija –delete trajno briše ciljne fajlove, pa uvek testirajte i neka vam ključ bude zaštićen passphrase-om radi bezbednosti.
Napredne mogućnosti rsync-a koje treba iskoristiti
rsync pruža moćne opcije poput –delete, –partial, –link-dest i –checksum (-c) koje omogućavaju inkrementalne kopije, obnavljanje prekinutih transfera i verifikaciju podataka. Korišćenje –link-dest štedi prostor pomoću hard linkova, dok -z/–compress ubrzava spore veze. Testirajte svaku novu kombinaciju sa –dry-run (-n) da izbegnete nenamerno brisanje podataka.
Filtriranje i isključivanje određenih datoteka
Upotrebom –exclude, –include i –exclude-from=FILE precizno definišete šta ne želite kopirati; primer: rsync -av –exclude=’*.log’ –exclude-from=excludes.txt /src/ /dest/. Za kompleksnije pravila koristite –filter ili .rsync-filter fajl. Pogrešan obrazac može preskočiti čitave direktorijume, zato uvek proverite sa –itemize-changes ili –dry-run.
Korišćenje rsync-a za automatizaciju sigurnosnih kopija
Automatizujete zadatke preko cron-a ili systemd timera; primer cron linije: 0 2 * * * rsync -a –delete /home/ user@backup:/srv/backups/home. Postavite SSH ključeve bez lozinke i ograničite pristup na backup serveru. Kombinacija sa –link-dest omogućava brze inkrementalne snapshot-e i značajnu uštedu prostora.
Za robusno rešenje kreirajte skriptu koja pravi direktorijum sa datumom: backup_dir=/backups/$(date +%F); mkdir -p “$backup_dir”; rsync -a –delete –link-dest=/backups/latest /srv/data/ “$backup_dir/”; ln -nfs “$backup_dir” /backups/latest. Ograničite SSH ključ u authorized_keys pomoću command=”rsync –server –sender …” radi dodatne bezbednosti. Systemd timeri nude bolje logovanje i ponovni pokušaj pri greškama, a opcije kao –bwlimit, ionice ili nice smanjuju uticaj na produkciju tokom izvršenja.
Greške koje treba izbegavati prilikom korišćenja rsync-a
Preskakanje suptilnosti kao što su završna kosa crta pri putanji može promeniti ponašanje kopiranja (npr. /src/ vs /src). Korišćenje –delete bez probe ili pokretanje kao root može dovesti do nepopravljivog brisanja ili preslikavanja sistemskih fajlova; primer: rsync -a –delete /srv/ /mnt/backup/ bez dry-run. Pogrešne –exclude šablone, ignorisanje vlasništva/timestamp-a i nepraćenje log fajlova su takođe česte greške koje povećavaju rizik gubitka podataka.
Česte zamke i njihovo rešavanje
Zaborav na -n/–dry-run pri testiranju, nepravilno postavljeni –exclude obrasci koji ne isključuju cache ili temp fajlove, i mešanje apsolutnih i relativnih putanja su najčešće zamke. Reši ih koristići kombinaciju -avz, -n, –itemize-changes i testnih pokretanja na manjem skupu podataka; za cron zadatke eksplicitno definiši PATH i koristi punu putanju do rsync binarija.
Kako testirati sigurnosne kopije pre nego što ih pouzdano koristite?
Pokreni prvo probe sa -n/–dry-run i –itemize-changes, zatim vrati nasumičnih 10–20 fajlova da proveriš integritet, vlasništvo i timestamps. Uporedi checksume korišćenjem rsync -c ili md5sum za lista fajlova; planiraj potpuni restore na VM najmanje jednom mesečno, a kompletan test oporavka barem kvartalno.
Praktičan primer: pokreni rsync -avz –delete -n /home/ user@backup:/backups/home/ za probe; za verifikaciju koristi rsync -avc –dry-run –delete ili kreiraj md5 liste i uporedi sa restored kopijama. Izaberi 10–20 kritičnih fajlova iz različitih direktorijuma, izvrši restore naredbom rsync -av backup:/backups/home/ /tmp/restore-test/ i proveri permisije, vlasnika i da li su aplikacije pokrenule se ispravno; zabeleži vreme i rezultate u log za audit.
Zaključak
Koristeći kombinaciju opcija kao -aAX –numeric-ids –delete (ali prvo uvek pokreni –dry-run) i planirajući cron zadatke na 02:00, možeš smanjiti vreme prenosa i rizik od gubitka podataka. Na primer, za 2 TB dataset, inkrementalni rsync često smanji prenesene podatke za 90–95%. Pazi na –delete — testiraj i čuvaj najmanje 3 snapshot-a lokalno i jedan vanlokalni za 30 dana kako bi osigurao pouzdanost i brz oporavak.