Korištenje rsync komande preko SSH-a jedan je od najefikasnijih i najpouzdanijih načina za brzo, sigurno i otpornu migraciju velikih datoteka između dva Linux servera. Kada se radi o stotinama GB web sadržaja, backup arhiva, medijskih direktorija ili aplikacijskih podataka, rsync je znatno brži od klasičnih metoda kopiranja jer prenosi samo izmijenjene dijelove datoteka. Osnovni princip je sljedeći: datoteke sa izvornog servera se putem šifriranog SSH tunela sinkroniziraju na ciljnom serveru, a ako dođe do prekida veze, transfer se može nastaviti od mjesta prekida.
Pri migraciji servera, nadogradnji hostinga, promjeni data centra ili backup operacijama, brzina je važna, ali je integritet podataka još važniji. Povlačenje ogromnih arhiva odjednom i ponovno učitavanje oduzima mnogo vremena i nosi rizik da se kod greške mora krenuti ispočetka. rsync čuva vremenske oznake, dozvole, vlasničke podatke i strukturu direktorija. Zato Linux administratori, DevOps timovi i stručnjaci za web hosting svakodnevno koriste rsync u operacijama.
U ovom vodiču prolazimo korak po korak proces prenosa velikih datoteka između dva Linux servera putem rsync-a i SSH-a, uz konkretne primjere komandi. Pokazujemo parametre za poboljšanje performansi, sigurnosne provjere, postupke za testiranje transfera i što treba provjeriti prije produkcije. Ako planirate migraciju na novi VPS ili hosting, provjerite imate li dovoljno disk prostora, SSH pristup i odgovarajuće korisničke dozvole na oba servera. Za izbor infrastrukture pogledajte Hostragons rješenja za VPS servere i Linux Hosting Paketi.
Šta je rsync i Zašto je Idealan za Veliki Prijenos Datoteka?
rsync je moćni alat za sinkronizaciju datoteka i direktorija lokalno ili između udaljenih servera. Najvažnija karakteristika je delta transfer algoritam: umjesto da svaki put prenosi cijelu datoteku, rsync šalje samo dijelove koji su se promijenili. Naprimjer, ako imate backup od 80 GB, ali je promijenjeno samo 2 GB, rsync će, u povoljnim uvjetima, prenijeti samo izmijenjene blokove.
SSH osigurava šifrirani transfer, tako da rsync ne šalje podatke kao običan tekst preko mreže. Ovo je ključno za korisničke podatke, narudžbe iz e-trgovine, medijske arhive, baze podataka i privatne aplikacijske fajlove. U hostingu sigurnost nije samo SSL certifikat; i transfer između servera mora biti šifriran. Za web promet koristite SSL certifikat, a za server-to-server transfer rsync preko SSH-a.
rsync je fleksibilniji od FTP ili ručnog downloada/uploadanja. Čuva dozvole, prenosi simboličke linkove, može brisati fajlove koji su obrisani na izvoru, ograničiti bandwidth i testirati transfer prije stvarne migracije. Za rizične operacije velikog prijenosa ovakva precizna kontrola je velika prednost.
Kada Koristiti rsync preko SSH-a?
Rsync preko SSH-a je idealan za velike, brojne ili često mijenjane datoteke. Za jednostavne direktorije sa slikama SFTP je dovoljan, ali za hiljade fajlova, kompleksne dozvole i velike arhive rsync je pouzdanija opcija.
- Migrirate web stranicu sa starog servera na novi VPS.
- Prijenos direktorija sa tisućama medijskih fajlova, poput WordPress uploads.
- Kopirate dnevne, tjedne ili mjesečne backupove na drugi server.
- Mijenjate datacentar ili hosting provajdera.
- Sinkronizirate aplikacijske fajlove između produkcije i backup okruženja.
- Planirate dugotrajne transfere gdje može doći do prekida veze.
Na primjer, prijenos 250 GB medijskog direktorija na vlastiti PC, pa upload na novi server, znači dvostruki transfer i duplo više vremena. Osim toga, kućni ili uredski internet može biti usko grlo. Sa rsync-om, direktno prebacujete sa izvornog na ciljni server, bez posrednih koraka.
Priprema Prije Početka
Samo znanje komande nije dovoljno za uspješan rsync transfer. Provjerite stanje izvornog i ciljnog servera da smanjite rizik od gubitka podataka ili nepotpunog transfera. Sljedeće provjere su obavezne u produkciji.
1. Potvrdite SSH Pristup
Izvorni server mora imati SSH pristup do ciljnog. Testirajte standardnu vezu: ssh korisnik@ciljni-server-ip. Ako SSH radi na posebnom portu: ssh -p 2222 korisnik@ciljni-server-ip. Ako test nije uspješan, ni rsync neće raditi. Provjerite firewall, Fail2ban, SSH port, korisničke dozvole i autentifikaciju (password ili key).
2. Provjerite Instalaciju rsync-a
Većina Linux distribucija dolazi s rsync-om, ali provjerite: rsync --version. Ako nije instaliran, na Debian/Ubuntu: apt install rsync. Na AlmaLinux, Rocky Linux ili CentOS: dnf install rsync ili yum install rsync. Na Hostragons VPS-u instalacija traje nekoliko sekundi.
3. Izračunajte Disk Prostor
Ako nema dovoljno prostora na ciljnom serveru, transfer će stati. Provjerite veličinu izvornog direktorija: du -sh /izvorni/direktorij. Ciljni disk: df -h. Planirajte dodatni prostor za privremene fajlove i logove. Za 500 GB podataka, ciljni server treba barem 550-600 GB slobodnog prostora.
4. Planirajte Kritične Servise i Promjenjive Fajlove
Ako je web stranica uživo, fajlovi se mogu mijenjati tijekom prepisa. Korisnički uploadi, cache i logovi se često ažuriraju. Prvo prebacite glavne podatke, zatim stavite sajt u maintenance mod i napravite još jedan rsync. Tako downtime svedete na minimum. Za WordPress, pogledajte Vodič za premještanje WordPress hostinga.
Osnovna rsync Komanda za Prijenos Između Servera
Najčešće korištena sintaksa: rsync -avz /izvorni/direktorij/ korisnik@ciljni-ip:/ciljni/direktorij/. -a je "archive" mod (čuva dozvole, vremenske oznake, linkove), -v daje detaljan output, -z kompresira podatke. Kraj direktorija ("slash") je važan: /izvorni/direktorij/ kopira sadržaj, /izvorni/direktorij kopira cijeli direktorij pod ciljnim direktorijem.
Primjer: želite prebaciti 180 GB web fajlova iz /var/www/site/public_html/ na starom serveru u /var/www/site/public_html/ na novom. Komanda: rsync -avz /var/www/site/public_html/ root@203.0.113.20:/var/www/site/public_html/. Transfer se odvija preko SSH-a.
Ne morate koristiti root; sigurnije je napraviti posebnog korisnika sa dozvolom za pisanje u ciljnom direktoriju. Npr. korisnik "deploy", a vlasništvo direktorija prilagodite. U produkciji je bolje koristiti ograničenog korisnika nego root.
Preporučeni Parametri za Siguran i Otpornan rsync Transfer
Osnovna komanda nije uvijek dovoljna, pogotovo kod prekida veze, djelimičnih fajlova, pogrešnog brisanja ili sporih mreža. Sljedeća komanda je dobra polazna tačka za većinu realnih migracija:
rsync -aHAXv --numeric-ids --partial --progress --append-verify -e ssh /izvorni/direktorij/ korisnik@ciljni-ip:/ciljni/direktorij/
-a je arhivski mod, -H prenosi hard linkove, -A ACL dozvole, -X extended attributi. --numeric-ids čuva korisničke i grupne ID-jeve (korisno kod različitih user imena na serverima). --partial ostavlja djelomične fajlove. --progress prikazuje status. --append-verify nastavlja transfer velikih fajlova i verificira dodane dijelove.
Nisu svi parametri potrebni za svaki slučaj. Za obične web stranice -aHAX je dovoljno, ali za aplikacije sa posebnim dozvolama ACL i X mogu biti ključni. Zato je test transfer uvijek preporučljiv.
Prijenos preko Nestandardnog SSH Porta
Za sigurnost SSH port je često promijenjen. U tom slučaju rsync-u treba proslijediti SSH parametar. Primjer: rsync -avz -e ssh -p 2222 /izvorni/direktorij/ korisnik@ciljni-ip:/ciljni/direktorij/. Pravilno korištenje: rsync -avz -e 'ssh -p 2222' /izvorni/direktorij/ korisnik@ciljni-ip:/ciljni/direktorij/.
U terminalu pazite na navodnike. Ako koristite SSH ključ, dodajte -i parametar: rsync -avz -e 'ssh -p 2222 -i /root/.ssh/id_rsa' /izvorni/direktorij/ korisnik@ciljni-ip:/ciljni/direktorij/. Ova metoda je česta za automatizirane backupove i cron zadatke.
Testiranje Transfera: --dry-run Opcija
Prije velikog transfera, najbolje je koristiti --dry-run. Ova opcija ne kopira fajlove, već pokazuje šta bi se prenijelo. Tako možete na vrijeme uočiti pogrešan direktorij, lošu destinaciju ili neželjeno brisanje.
Test komanda: rsync -avz --dry-run /var/www/site/ korisnik@ciljni-ip:/var/www/site/. Output prikazuje koje fajlove i direktorije bi rsync prenio. Ako koristite --delete, dry-run je još bitniji jer --delete može obrisati fajlove na ciljnom serveru koji ne postoje na izvoru.
Profesionalni workflow: testirajte SSH, provjerite disk, pokrenite rsync --dry-run, napravite mali test transfer, zatim pokrenite glavni transfer. Ova procedura dodaje nekoliko minuta, ali sprječava višesatne greške.
Poboljšanje Performansi: Kompresija, Ograničenje Bandwidtha i Šifriranje
Performanse rsync-a ovise o veličini fajlova, ali i o CPU-u servera, tipu diska, mrežnoj latenciji i broju fajlova. Velik broj malih fajlova je sporije za transfer nego jedan veliki, zbog metapodataka. NVMe VPS serveri znatno ubrzavaju skeniranje i pisanje fajlova, pa razmislite o NVMe VPS server.
-z (kompresija) je koristan za tekstualne fajlove, logove i backup tipove, ali za već komprimirane fajlove (zip, tar.gz, jpg, mp4) može bespotrebno trošiti CPU. Kod dva snažna servera s 1 Gbps vezom i velikim medijskim fajlovima, bolje je izostaviti -z. Za nisku propusnost i tekstualne fajlove, -z može znatno ubrzati transfer.
Ograničite bandwidth sa --bwlimit. Npr. --bwlimit=50000 ograničava na ~50 MB/s. To je važno da web server ne zaguši mrežu i ne utječe na korisnike. Planirajte transfer za noćne sate, postavite bandwidth limit i pratite load average.
Usporedba rsync, scp, SFTP i FTP Metoda

Više je metoda za migraciju fajlova, svaka ima prednosti i nedostatke. Sljedeća tabela sumira kada je koji alat najbolji za prijenos velikih fajlova i server-to-server migraciju.
| Metoda | Sigurnost | Nastavak Transfera | Performanse za Velike Datoteke | Najbolja Primjena |
|---|---|---|---|---|
| rsync + SSH | Visoka | Odličan | Vrlo dobra | Migracija servera, backup, sinkronizacija |
| scp | Visoka | Ograničeno | Srednja | Brzo kopiranje manjih fajlova |
| SFTP | Visoka | Ovisno o klijentu | Srednja | Ručno upravljanje fajlovima |
| FTP | Niska | Ovisno o klijentu | Varijabilno | Stari sistemi bez sigurnosnih zahtjeva |
Kao što se vidi, rsync je najbolji za ponavljajuću sinkronizaciju i masivne transfere. scp je jednostavan, ali ne detektira izmjene fajlova kao rsync. FTP bez šifriranja ne zadovoljava moderne sigurnosne standarde. Za kritične migracije između servera, SSH-based alati su neophodni.
Primjer Workflow-a za Migraciju Žive Web Stranice
Prilikom migracije web stranice cilj nije samo kopirati fajlove, već i provjeriti DNS, bazu podataka, SSL, PHP verziju, dozvole i email konfiguraciju. Evo workflow-a za migraciju velike stranice s minimalnim downtimeom:
- Pripremite web server, PHP, bazu podataka i potrebne module na novom serveru.
- Postavite TTL vrijednost domene na 300 sekundi prije migracije. Za upravljanje domenom pogledajte upit o domenu i upravljanje domenama.
- Pokrenite prvi rsync transfer dok je site uživo. Većina podataka se prenosi u ovom koraku.
- Nabavite backup baze podataka i prenesite ga.
- Stavite site u maintenance mod na kratko.
- Pokrenite drugi rsync za sinkronizaciju novih fajlova.
- Bazu podataka još jednom ažurirajte ili koristite inkrementalni backup.
- Provjerite dozvole, pokretanje stranice i logove na novom serveru.
- Instalirajte ili obnovite SSL certifikat. Za pomoć pogledajte Instalacija SSL certifikata.
- Preusmjerite DNS na novu IP adresu.
Ovim workflow-om, najduži transfer se odvija dok site radi. Downtime je samo u fazi zadnje sinkronizacije i DNS promjene. Kod velikih WordPress sajtova s puno medijskih fajlova, downtime se može smanjiti sa sati na nekoliko minuta.
Provjera Integriteta Podataka Nakon Transfera
Nije dovoljno da komanda završi; provjerite broj fajlova, veličinu i ključne fajlove. Najjednostavnije: du -sh na izvoru i cilju. No, zbog razlika u file sistemu, brojke možda nisu identične. Za detaljnu provjeru, ponovo pokrenite rsync s istim parametrima; ako nema novih fajlova, output je minimalan.
Za checksum provjeru: rsync -avc --dry-run /izvorni/direktorij/ korisnik@ciljni-ip:/ciljni/direktorij/. -c provjerava checksum uz datum i veličinu. Kod velikih podataka može opteretiti CPU i disk, pa budite oprezni. Za kritične arhive ili baze podataka, ova provjera daje dodatnu sigurnost.
Migrirali ste site? Provjerite funkcionalnost: homepage, admin panel, upload slike, checkout, kontakt forme i logove. Kod e-trgovine, osim fajlova, testirajte payment integracije i cron zadatke.
Česte Greške i Kako ih Riješiti
Permission denied
Najčešće je problem s korisničkim dozvolama, pisanjem u ciljni direktorij ili SSH key autorizacijom. Prvo pokušajte SSH pristup s istim korisnikom. Ako radi, testirajte pisanje u ciljni direktorij. Po potrebi promijenite vlasništvo direktorija sa chown ili planirajte sudo strategiju.
No space left on device
Ako nema dovoljno prostora, transfer se prekida. Provjerite df -h. Ponekad nije root disk, nego /tmp ili mount point prepun. Očistite logove, stare backupove i cache. Za trajno rješenje, povećajte disk ili migrirajte na VPS s većim kapacitetom.
Connection reset ili Broken pipe
Kod dugih transfera može doći do prekida veze. Uz --partial i --append-verify možete nastaviti transfer. Podesite SSH keepalive: ServerAliveInterval 60 smanjuje rizik od prekida veze.
Spor Transfer
Sporost može biti zbog broja fajlova, disk I/O limita, kompresije ili mreže. Kod mnogo malih fajlova ponekad je brže napraviti tar arhivu, ali to smanjuje rsync prednosti za djelimične izmjene. Za velike i već komprimirane fajlove testirajte bez -z. Pratite CPU, disk i mrežu sa iotop, htop, iftop.
Sigurnosne Prakse pri Prijenosu Datoteka
Sigurnost je prioritet kod migracije između servera, posebno kod root pristupa, SSH ključeva i backup fajlova. Preporučuje se korištenje SSH key autentifikacije umjesto passworda. Zaštitite privatne ključeve, koristite passphrase i ne dijelite ih.
Napravite privremenog korisnika sa pristupom samo potrebnim direktorijima za migraciju, pa ga deaktivirajte nakon završetka. Ograničite SSH pristup na određene IP adrese. Firewall, Fail2ban i ažurirani OpenSSH su osnovne zaštite.
Ako prenosite baze podataka, dokumente klijenata ili lične podatke, očistite privremene fajlove nakon transfera. Nikada ne ostavljajte .sql, .zip ili .tar backup fajlove u web root direktoriju; držite ih u nepublic direktorijima ili obrišite.
rsync za Automatski Backup
rsync nije samo za migraciju, već i za automatski backup. Npr. svaku noć možete backup-irati određeni direktorij na backup server putem cron-a. Koristi se SSH key za siguran login bez passworda, rsync prenosi samo izmijenjene fajlove, bandwidth se može ograničiti.
Primjer: rsync -a --delete --bwlimit=30000 /var/www/site/ backup@backup-ip:/backup/site/. Ova komanda sinkronizira ciljni direktorij sa izvorom. --delete briše fajlove koji ne postoje na izvoru, pa budite oprezni. Za kritične backupove koristite snapshot, dnevne direktorije ili versioning.
U hostingu vrijedi 3-2-1 backup pravilo: barem tri kopije podataka, dvije na različitim medijima, jedna na drugoj lokaciji. rsync je odličan za server-to-server kopije. Pogledajte Rešenja za rezervne kopije i usluge korporativnog hostinga za napredne strategije.
Zadnja Kontrolna Lista
Prije pokretanja prijenosa velikih datoteka, ova kratka lista pomaže da izbjegnete greške. U produkciji neka postane standardna procedura:
- rsync instaliran na izvoru i cilju?
- SSH pristup testiran s pravim korisnikom i portom?
- Dovoljno disk prostora na ciljnom serveru?
- Testiran --dry-run?
- Planiran maintenance mod i zadnja sinkronizacija za živi site?
- Potvrđena destinacija kod --delete opcije?
- Provjera veličine fajlova, dozvola i funkcionalnosti nakon transfera?
- Privremeni backup i dump fajlovi sigurno uklonjeni?
Ove provjere su jednostavne, ali većina problema nastaje zbog pogrešne destinacije, dozvola, manjka prostora ili neplaniranog DNS preusmjerenja. Dobro planiran rsync transfer štedi vrijeme i smanjuje rizik povratka na staru verziju.
Najčešća Pitanja
Šta ako se veza prekine tokom rsync transfera putem SSH-a?
Ne počinje ispočetka, ako koristite --partial i --append-verify. Ovi parametri čuvaju djelomične fajlove i omogućavaju nastavak transfera. Prije nastavka, provjerite stanje disk prostora i djelomičnih fajlova.
Može li rsync direktno prenijeti bazu podataka?
rsync prenosi fajlove, ali nije preporučljivo direktno kopirati aktivnu bazu podataka. Za MySQL/MariaDB koristite mysqldump ili alat za fizički backup, pa rsync-om prebacite backup fajl. Za integritet koristite maintenance mod ili replikaciju.
Treba li root pristup na oba servera za rsync?
Nije nužno. Dovoljno je da korisnik ima dozvolu za pisanje u ciljni direktorij. Za očuvanje vlasništva, sistemskih direktorija, ACL ili posebnih dozvola možda treba više privilegija. Uvijek je sigurnije koristiti ograničenog korisnika.
Je li --delete siguran?
--delete je koristan za sinkronizaciju, ali opasan ako se koristi u pogrešnoj destinaciji. Uvijek testirajte prvo sa --dry-run i pažljivo provjerite putanje.
rsync ili scp za velike datoteke?
Za male, jednokratne transfere scp je dovoljan, ali za velike, brojne fajlove i ponovljene sinkronizacije rsync je bolji—detektira izmjene, nastavlja transfer, ograničava bandwidth i omogućuje testiranje.
Zaključak i Dalji Koraci
Prijenos velikih datoteka između dva servera putem rsync-a i SSH-a je brz, siguran i lako upravljiv. Sa pravim parametrima, transfer je otporan na prekide, prenosi samo izmijenjene fajlove i minimizira downtime kod migracije živog site-a. Najbolji rezultat postižete sa provjerom SSH i diska, testiranjem --dry-run i pažljivo planiranim glavnim transferom.
Ako planirate migraciju na novi server, proširenje kapaciteta ili napredniji hosting, istražite Hostragons rješenja—VPS, hosting, domene i SSL za sigurnu migraciju. Počnite s malim testovima, izmjerite performanse i planirajte zadnju sinkronizaciju za besprijekoran prelazak.