SSH:n kautta käytettävä rsync-komento on yksi tehokkaimmista ja käytännöllisimmistä Linux-työkaluista suurten tiedostojen nopeaan, turvalliseen ja katkoja kestävään siirtoon kahden palvelimen välillä. Esimerkiksi satojen gigatavujen verkkosivutiedostojen, varmuuskopioiden, mediahakemistojen tai sovellusdatien siirrossa rsync tarjoaa merkittävän nopeusetua perinteisiin kopiointitapoihin nähden, koska se siirtää vain muuttuneet osat tiedostoista. Peruslogiikka on tämä: lähdepalvelimen tiedostot synkronoidaan SSH-tunnelin läpi salattuna kohdepalvelimelle – ja jos yhteys katkeaa, siirtoa voi jatkaa siitä mihin jäi.
Palvelimen vaihtoon, hostingin päivitykseen, datakeskuksen siirtoon tai varmuuskopiointiin liittyvissä operaatioissa nopeuden lisäksi myös datan eheys on ratkaisevan tärkeä. Suuren arkiston lataaminen yhtenä pakettina ja uudelleen lähettäminen vie aikaa ja aiheuttaa riskin, että yhteyskatkon sattuessa joudut aloittamaan alusta. rsync ratkaisee tämän säilyttämällä tiedostojen aikaleimat, käyttöoikeudet, omistajatiedot ja hakemistorakenteen. Siksi Linux-järjestelmänvalvojat, DevOps-tiimit ja web-hosting-asiantuntijat käyttävät rsync:iä päivittäisissä rutiineissa.
Tässä oppaassa käydään läpi vaihe vaiheelta kuinka siirtää jättimäisiä tiedostoja kahden Linux-palvelimen välillä rsync-komennolla SSH:n kautta, käytännön esimerkein. Lisäksi käsitellään suorituskyvyn parantamiseen liittyvät parametrit, tietoturva, virhetilanteet, testisiirto ja tuotantoympäristöön siirtymisen tärkeät huomiot. Jos suunnittelet siirtymistä uuteen VPS-ympäristöön tai hostingiin, varmista ennen tämän ohjeen käyttöä, että sekä lähde- että kohdepalvelimella on riittävästi levytilaa, SSH-yhteys toimii ja käyttäjäoikeudet ovat kunnossa. Tutustu Hostragons VPS-palvelinratkaisut ja Linux Hosting Paketit sivuihin oikean infrastruktuurin valintaa varten.
Mikä on rsync ja miksi se on paras työkalu suurten tiedostojen siirtoon?
rsync on tehokas komentorivityökalu tiedostojen ja hakemistojen synkronointiin paikallisesti tai palvelimien välillä. Sen tärkein ominaisuus on ns. delta transfer -algoritmi, joka siirtää vain muuttuneet osat tiedostoista – ei koko tiedostoa joka kerta. Esimerkiksi jos 80 GB varmuuskopiotiedostossa on vain 2 GB muutoksia, rsync siirtää vain ne muutokset.
SSH varmistaa, että siirto tapahtuu salattuna ja turvallisesti – tiedostojen sisältö ei kulje verkossa selkokielisenä. Tämä on erityisen tärkeää asiakasdatassa, verkkokauppojen tilaustiedoissa, media-arkistoissa, tietokantavarastoissa ja sovellusten tiedostoissa. Hostingissa tietoturva ei rajoitu SSL-sertifikaattiin; myös palvelinten välinen siirtokanava tulee suojata. Verkkoliikenteessä käytetään SSL-sertifika, mutta tiedostosiirrossa SSH on välttämätön.
rsync on joustavampi kuin FTP tai manuaalinen lataus/lähetys. Se säilyttää oikeudet, siirtää symlinkit, voi poistaa kohteelta tiedostoja, rajoittaa kaistanleveyttä ja sallii siirron testauksen ennen toteutusta. Suurten tiedostojen siirrossa tämä hallinta on merkittävä etu.
Milloin kannattaa käyttää rsync-komentoa SSH:n kautta?
SSH:n kautta käytettävä rsync on ihanteellinen suurten, lukuisien tai usein muuttuvien tiedostojen siirtoon. Yksinkertaisen kuvakansion voi siirtää SFTP:llä, mutta tuhansien tiedostojen, monimutkaisten oikeuksien ja massiivisten arkistojen kohdalla rsync on luotettavin valinta.
- Kun siirrät verkkosivustoa vanhalta palvelimelta uudelle VPS:lle.
- Kun siirrät WordPress uploads -kansion mediaa (tuhansia tiedostoja).
- Kun varmuuskopioit säännöllisesti toiseen palvelimeen.
- Kun vaihdat datakeskusta tai hosting-palveluntarjoajaa.
- Kun synkronoit sovellustiedostoja tuotanto- ja varmuusympäristön välillä.
- Kun suunnittelet pitkäkestoisia siirtoja, joissa yhteys voi katketa.
Esimerkiksi 250 GB mediahakemiston lataaminen omalle koneelle ja sen jälkeen lähettäminen uudelle palvelimelle tuplaa siirron ajan ja kuormittaa kotiverkon. rsync:llä siirto tapahtuu suoraan palvelimelta palvelimelle – väliaskel jää pois.
Ennen kuin aloitat: Varmista nämä asiat
Onnistunut rsync-siirto vaatii muutakin kuin komennon osaamisen. Lähde- ja kohdepalvelimen tarkistus vähentää virheiden ja datamenetyksen riskiä. Tuotantoympäristössä nämä tarkistukset ovat välttämättömiä.
1. Varmista SSH-yhteys
Lähdepalvelimelta tulee olla SSH-yhteys kohteeseen. Testaa yhteys näin: ssh käyttäjä@kohde-palvelin-ip. Jos SSH toimii eri portilla: ssh -p 2222 käyttäjä@kohde-palvelin-ip. Jos tämä ei toimi, rsync ei toimi. Tarkista palomuuri, Fail2ban, SSH-portti, käyttäjäoikeudet ja salasanat/avaimet.
2. Tarkista rsync-ohjelman asennus
Useimmissa Linux-jakeluissa rsync on valmiina, mutta varmista: rsync --version. Debian/Ubuntu: apt install rsync, CentOS/Rocky/Alma: dnf install rsync tai yum install rsync. Hostragons VPS:llä asennus on yleensä sekunneissa.
3. Tarkista levytila
Jos kohdepalvelimella ei ole tarpeeksi tilaa, siirto jää kesken. Lähteen koko: du -sh /lähde/hakemisto. Kohteen tila: df -h. Varaa hieman ylimääräistä tilaa väliaikaisille tiedostoille ja logeille. Esimerkiksi 500 GB datassa kohteella olisi hyvä olla 550–600 GB vapaana.
4. Suunnittele muuttuvat tiedostot ja palvelut
Live-verkkosivuilla tiedostot muuttuvat siirron aikana – esimerkiksi käyttäjien lataukset, cache-hakemistot ja logit. Suurissa siirroissa ensin siirretään päädata, sitten otetaan sivusto maintenance-tilaan ja tehdään loppusynkronointi. Näin katko jää minuutteihin. WordPress-sivustoissa WordPress-hostingin siirtoupas auttaa suunnittelussa.
rsync-peruskomento: tiedostojen siirto palvelimien välillä
Yleisimmin käytetty peruskomento on: rsync -avz /lähde/hakemisto/ käyttäjä@kohde-ip:/kohde/hakemisto/. -a = arkistomoodi (säilyttää oikeudet, aikaleimat, symlinkit), -v = verbose, -z = pakkaa siirron aikana. Hakemiston lopussa oleva / on tärkeä: /lähde/hakemisto/ siirtää sisällön, /lähde/hakemisto siirtää koko hakemiston kohteen sisään.
Esimerkki: haluat siirtää vanhalta palvelimelta /var/www/site/public_html/ (180 GB) uudelle palvelimelle samaan hakemistoon. Komento: rsync -avz /var/www/site/public_html/ root@203.0.113.20:/var/www/site/public_html/. Tämä siirtää tiedostot SSH:n kautta suoraan.
Jos et halua käyttää rootia, luo kohdepalvelimelle käyttäjä (esim. deploy), jolla on kirjoitusoikeus hakemistoon. Tuotannossa rajoitetut oikeudet ovat turvallisempi valinta kuin suora root.
Suositellut rsync-parametrit turvallisiin ja katkoja kestäviin siirtoihin
Pelkkä peruskomento ei riitä isoissa siirroissa. Katkojen, osittaisten tiedostojen, väärien poistojen tai hitaiden verkkojen varalta kannattaa käyttää lisäparametreja. Esimerkki monipuolisesta komennosta:
rsync -aHAXv --numeric-ids --partial --progress --append-verify -e ssh /lähde/hakemisto/ käyttäjä@kohde-ip:/kohde/hakemisto/
-a: arkisto, -H: hard linkit, -A: ACL-oikeudet, -X: extended attributes. --numeric-ids käyttää ID:tä (ei käyttäjänimeä), mikä auttaa jos käyttäjänimet eroavat. --partial jättää kesken jääneet tiedostot. --progress näyttää etenemisen. --append-verify jatkaa isojen tiedostojen siirtoa ja tarkistaa lisätyn osan.
Kaikki parametrit eivät ole aina tarpeellisia – perussivustolla pelkkä -aHAX riittää, mutta monimutkaisissa sovelluksissa ACL ja extended attributes voivat olla kriittisiä. Testaa ensin pienellä siirrolla.
Jos SSH-portti on muu kuin 22 – oikea komento
Jos SSH toimii muulla portilla, se pitää ilmoittaa rsync-komennossa. Esimerkki: rsync -avz -e 'ssh -p 2222' /lähde/hakemisto/ käyttäjä@kohde-ip:/kohde/hakemisto/. Jos käytät SSH-avainta: rsync -avz -e 'ssh -p 2222 -i /root/.ssh/id_rsa' /lähde/hakemisto/ käyttäjä@kohde-ip:/kohde/hakemisto/. Tämä sopii automaatioon ja cron-varmuuskopioihin.
Huomioi lainausmerkit: terminalissa niiden pitää olla oikein. Jos käytät JSON-rajapintoja, lainausmerkit voivat käyttäytyä eri tavalla.
Testisiirto ennen varsinaista siirtoa: --dry-run
Ammattimainen tapa ennen suurta siirtoa on käyttää --dry-run. Tämä ei siirrä tiedostoja oikeasti, vaan näyttää mitkä tiedostot siirtyisivät. Näin vältät väärän hakemiston, virheellisen kohteen tai odottamattoman tiedostojen poiston.
Testikomento: rsync -avz --dry-run /var/www/site/ käyttäjä@kohde-ip:/var/www/site/. Näet mitkä tiedostot siirtyvät ja mitä hakemistoja luodaan. Jos käytät --delete-parametria, dry-run on vieläkin tärkeämpi: --delete poistaa kohteelta tiedostot joita ei ole lähteessä.
Paras käytäntö: tee SSH-testi, tarkista levytila, aja dry-run, tee pieni testisiirto, sitten varsinainen siirto. Tämä vie muutaman minuutin mutta voi säästää tunteja virheiden korjaamisessa.
Suorituskyvyn optimointi: pakkaus, kaistanrajoitus ja salaus
rsync:n suorituskyky riippuu tiedostojen koon lisäksi mm. palvelimen CPU-tehosta, levyjen tyypistä, verkon viiveestä, kaistanleveydestä ja tiedostomäärästä. Paljon pieniä tiedostoja siirtyy hitaammin kuin yksi iso tiedosto, koska metadataa käsitellään jokaisessa tiedostossa. NVMe-levyillä tiedostojen skannaus ja kirjoitus on huomattavasti nopeampaa – tutustu NVMe VPS palvelin vaihtoehtoihin jos siirtoja on paljon.
-z (pakkaus) on hyödyllinen tekstitiedostoille, logeille ja joillekin varmuuskopioille. Jo valmiiksi pakatuissa tiedostoissa (zip, tar.gz, jpg, mp4) se voi kuluttaa CPU:ta turhaan. Jos siirrät isoja media-arkistoja 1 Gbps yhteydellä, kannattaa testata ilman -z-parametria. Hitaassa verkossa ja teksti-/logipainotteisessa datassa -z säästää kaistaa.
Kaistanleveyden rajoittamiseen käytä --bwlimit. Esim. --bwlimit=50000 rajoittaa siirron noin 50 MB/s. Tämä estää palvelimen verkon tukkeutumisen live-tilassa. Suunnittele siirto yöllä, aseta kaistaraja ja seuraa load average -arvoja.
rsync vs scp vs SFTP vs FTP

Useita tapoja siirtää tiedostoja, mutta jokaisella on omat vahvuutensa ja heikkoutensa. Alla olevassa taulukossa näet, milloin kukin tapa on paras isoissa siirroissa ja palvelinvaihdossa.
| Menetelmä | Turvallisuus | Jatkuvuus | Suuri tiedosto | Käyttötarkoitus |
|---|---|---|---|---|
| rsync + SSH | Korkea | Vahva | Erittäin hyvä | Palvelimien siirto, varmuuskopiointi, synkronointi |
| scp | Korkea | Rajoitettu | Kohtalainen | Pienet kopioinnit, yksittäiset tiedostot |
| SFTP | Korkea | Riippuu asiakasohjelmasta | Kohtalainen | Manuaalinen tiedostohallinta |
| FTP | Matala | Riippuu asiakasohjelmasta | Vaihtelee | Vanhat järjestelmät, ei tietoturvakriittinen |
rsync on paras toistuvaan synkronointiin ja suurten tiedostojen siirtoon. scp on helppo mutta ei tunnista muuttuneita tiedostoja yhtä älykkäästi. FTP ilman salausta ei täytä nykyisiä tietoturvavaatimuksia – käytä SSH-pohjaisia tapoja tärkeissä siirroissa.
Live-verkkosivuston siirron esimerkki
Verkkosivun siirrossa pelkkä tiedostojen kopiointi ei riitä – tarkista myös DNS, tietokanta, SSL, PHP-versio, tiedostojen oikeudet ja sähköpostiasetukset. Alla on esimerkkityöjärjestys ison sivuston katkoja minimoivaan siirtoon.
- Valmistele uusi palvelin: web-palvelin, PHP, tietokanta, tarvittavat moduutit.
- Aseta domainin DNS TTL matalaksi (esim. 300 sekuntia). Hallintaan sopii Domainin tarkistus ja domainin hallinta.
- Aloita ensimmäinen rsync-siirto, kun sivusto on live. Tämä siirtää päämassan tiedostoista.
- Ota tietokannan varmuuskopio ja siirrä se uudelle palvelimelle.
- Aseta sivusto maintenance-tilaan.
- Suorita toinen rsync-komento – synkronoi muuttuneet tiedostot.
- Päivitä tietokanta uudelleen tai käytä inkrementaalista strategiaa.
- Tarkista tiedostojen oikeudet, sivuston toimivuus ja logit uudella palvelimella.
- Asenna tai päivitä SSL-sertifikaatti, katso SSL-sertifika-asennus.
- Ohjaa DNS uuteen IP-osoitteeseen.
Pääsiirto tehdään kun sivusto on live – katko syntyy vain loppusynkronoinnin ja DNS-vaihdon aikana. Esimerkiksi WordPress-sivustoilla tämä minimoi katkon useista tunneista muutamaan minuuttiin.
Datan eheyden tarkistaminen
Siirron onnistuminen ei tarkoita automaattisesti, että kaikki on kunnossa. Tarkista tiedostojen määrä, koot ja tärkeimmät tiedostot. Yksinkertainen tarkistus: du -sh lähteessä ja kohteessa. Blokkitason erot voivat aiheuttaa pieniä poikkeamia. Tarkempi tarkistus: aja rsync samalla komennolla uudestaan; jos mitään ei siirry, kaikki on synkronoituna.
Checksum-tarkistus: rsync -avc --dry-run /lähde/hakemisto/ käyttäjä@kohde-ip:/kohde/hakemisto/. -c tarkistaa myös checksumin. Tämä kuormittaa CPU:ta ja levyä – käytä harkiten isoissa siirroissa. Tärkeissä arkistoissa tai asiakasdokumenteissa tämä antaa varmuutta.
Jos siirsit verkkosivun, testaa myös sovellustasolla: etusivu, hallintapaneeli, kuvien lataus, maksusivu, yhteydenottolomake ja virhelokit. Verkkokaupassa pelkkä tiedostojen siirto ei riitä – testaa maksut ja cron-tehtävät.
Yleiset virheet ja ratkaisut
Permission denied
Syynä yleensä SSH-käyttäjän oikeudet, kohdehakemiston kirjoitusoikeudet tai avainten validointi. Kokeile normaalia SSH-yhteyttä samalla käyttäjällä; jos toimii, testaa tiedoston luonti kohteessa. Tarvittaessa muuta hakemiston omistaja chown:illa tai käytä sudo-strategiaa.
No space left on device
Kun kohdelevy on täynnä, siirto pysähtyy. Tarkista df -h:llä levyjen tila. Joskus /tmp tai mount-piste voi olla täynnä vaikka päälevy ei ole. Poista turhat logit, vanhat varmuuskopiot ja cachet. Tarvittaessa kasvata levyä tai vaihda isompaan VPS:ään.
Connection reset tai Broken pipe
Pitkissä siirroissa yhteys voi katketa. Käytä --partial ja --append-verify, jolloin komennon voi ajaa uudestaan ja jatkaa siirtoa. SSH keepalive auttaa: asiakaspuolella ServerAliveInterval 60 vähentää katkoja.
Hidas siirto
Hitaus voi johtua tiedostomäärästä, levy-I/O:sta, pakkauksen kuormasta tai verkon kapasiteetista. Jos tiedostoja on paljon ja pieniä, tee ensin tar-arkisto – mutta silloin rsync:n etu muuttuneiden tiedostojen tunnistuksessa menetetään. Isoissa jo pakatuissa tiedostoissa poista -z ja testaa. Selvitä pullonkaulat iotop, htop ja iftop -työkaluilla (CPU, levy vai verkko).
Tietoturvan parhaat käytännöt
Palvelinten välisten siirtojen tietoturvaa ei pidä unohtaa. Erityisesti root-oikeudet, SSH-avaimet ja varmuustiedostot ovat herkkiä. Käytä salasanan sijasta SSH-avainta. Avainten oikeudet tulee olla tiukat, älä jaa yksityisiä avaimia ja suojaa ne passphrasella.
Luo siirtoa varten väliaikainen käyttäjä, jolla on pääsy vain tarvittaviin hakemistoihin. Siirron jälkeen poista oikeudet tai deaktivoi käyttäjä. Rajoita SSH-yhteydet IP-osoitteittain. Palomuuri, Fail2ban ja ajantasainen OpenSSH ovat perusvaatimuksia.
Jos siirrät tietokantadumppeja, asiakasdokumentteja tai henkilötietoja, poista turhat väliaikaistiedostot lähteestä ja kohteesta. Älä jätä .sql, .zip tai .tar tiedostoja webin juureen – ne tulee säilyttää suojatussa hakemistossa tai poistaa siirron jälkeen.
rsync varmuuskopioinnin automatisointiin
rsync sopii myös säännölliseen varmuuskopiointiin – esimerkiksi joka yö tietyt hakemistot siirretään varmuuspalvelimelle cron-tehtävällä. Käytetään SSH-avainta (ilman salasanaa, mutta turvallisesti), rsync siirtää vain muuttuneet tiedostot ja kaistanrajoitus on mahdollinen.
Esimerkki: rsync -a --delete --bwlimit=30000 /var/www/site/ backup@varmuus-ip:/backup/site/. Tämä synkronoi kohteen lähteen kanssa – mutta --delete poistaa kohteelta tiedostot, joita ei ole lähteessä. Tämän vuoksi varmuuskopioinnissa kannattaa käyttää snapshotteja, päiväkohtaisia hakemistoja tai versioning-ratkaisuja.
Hostingissa 3-2-1-varmuuskopiointisääntö on hyvä ohje: vähintään 3 kopiota, 2 eri ympäristössä, 1 eri sijainnissa. rsync tekee palvelinten väliset kopiot helpoksi. Tutustu Varmuuskopiointiratkaisut ja yrityshostingpalvelut – suunnittele kattava varmuusjärjestelmä.
Lopullinen tarkistuslista
Ennen jättitiedostojen siirron aloittamista käy läpi tämä lista – virheiden riski pienenee. Tuotantoympäristössä tästä kannattaa tehdä rutiini.
- Onko rsync asennettuna molemmilla palvelimilla?
- Toimiiko SSH-yhteys oikealla käyttäjällä ja portilla?
- Onko kohdepalvelimella riittävästi levytilaa?
- Onko dry-run tehty?
- Onko live-sivustolle maintenance-tila ja loppusynkronointi suunniteltu?
- Jos käytät --delete, onko kohdehakemisto varmasti oikea?
- Tarkistetaanko siirron jälkeen tiedostojen koot, oikeudet ja sovelluksen toimivuus?
- Poistetaanko turhat varmuuskopiot ja dumpit turvallisesti?
Vaikka lista on yksinkertainen, useimmat virheet johtuvat väärästä kohdehakemistosta, puuttuvista oikeuksista, liian pienestä levytilasta tai suunnittelemattomasta DNS-siirrosta. Suunniteltu rsync-prosessi nopeuttaa siirtoa ja helpottaa mahdollisia palautuksia.
Usein kysytyt kysymykset
Jos SSH:n kautta rsync-siirto katkeaa, alkaako siirto alusta?
Ei, jos käytät oikeita parametreja. --partial ja --append-verify säilyttävät keskeneräiset tiedostot ja komennon voi ajaa uudestaan – siirto jatkuu siitä, mihin jäi. Tarkista kuitenkin kohdelevyn tila ja keskeneräiset tiedostot ennen uusintasiirtoa.
Voiko rsync siirtää tietokantoja suoraan?
rsync siirtää tiedostoja – käynnissä olevan tietokannan tiedostoja ei tule kopioida suoraan. MySQL/MariaDB:lle käytä mysqldumpia tai muita varmuustyökaluja, ja siirrä syntynyt dump rsync:llä kohdepalvelimelle. Live-järjestelmässä käytä maintenance-tilaa tai replikaatiota.
Tarvitaanko root-oikeudet molemmille palvelimille rsync:n käyttöön?
Root ei ole välttämätön. Riittää, että kohteessa on kirjoitusoikeus. Jos haluat säilyttää omistajuudet, järjestelmäkansiot, ACL:t tai erityisoikeudet, voi vaatia enemmän oikeuksia. Käytä rajoitettuja oikeuksia jos mahdollista.
Onko --delete-parametri turvallinen?
--delete on hyödyllinen, kun haluat identtisen synkronoinnin, mutta väärässä hakemistossa se voi poistaa tärkeitä tiedostoja. Testaa dry-runilla ja varmista hakemistot ennen käyttöä.
Kumpi on parempi isoissa tiedostoissa: rsync vai scp?
Pieniä tiedostoja voi siirtää scp:llä, mutta isoissa tiedostoissa, monissa tiedostoissa ja toistuvassa synkronoinnissa rsync on parempi – se tunnistaa muutokset, jatkaa katkojen jälkeen, rajoittaa kaistaa ja sallii testauksen.
Yhteenveto ja seuraavat askeleet
SSH:n kautta käytetty rsync on nopea, turvallinen ja hallittava tapa siirtää jättitiedostoja palvelinten välillä. Oikeilla parametreilla siirto kestää katkot, siirtää vain muuttuneet tiedostot ja minimoi sivuston katkon live-siirrossa. Parasta on testata SSH-yhteys ja levytila, ajaa dry-run, tehdä pieni testisiirto ja sitten varsinainen siirto suunnitelman mukaisesti.
Jos olet vaihtamassa palvelinta, tarvitset isompaa tallennustilaa tai haluat tehokkaamman hosting-infran, tutustu Hostragonsin ratkaisuihin. Valitse VPS, hosting, domain ja SSL tarpeen mukaan – siirto on turvallisempi. Aloita pienillä testisiirroilla, mittaa ja tee loppusynkronointi suunnitelmallisesti.