rsync on nopea ja monipuolinen komentorivin apuohjelma tiedostojen ja hakemistojen synkronoimiseksi kahden sijainnin välillä etäkuorella tai etä-Rsync-demonilta/etäyhteydelle. Se tarjoaa nopean inkrementaalisen tiedostojen siirron siirtämällä vain lähteen ja määränpään väliset erot.
Rsynciä voidaan käyttää tietojen peilaamiseen, inkrementaalisiin varmuuskopioihin, tiedostojen kopioimiseen järjestelmien välillä sekä scp-, sftp– ja cp-komentojen korvaajana.
Tässä artikkelissa selitetään rsync:n käyttöä käytännön esimerkkien ja yleisimpien rsync-asetusten yksityiskohtaisten selitysten avulla.
Rsyncin asentaminen #
rsync-apuohjelma on esiasennettu useimpiin Linux- ja macOS-jakeluihin. Jos rsync ei ole asennettuna järjestelmääsi, voit helposti asentaa sen jakelusi paketinhallinnan avulla.
Asenna Rsync Ubuntuun ja Debianiin #
sudo apt install rsync
Asenna Rsync CentOS:ään ja Fedoraan #
sudo yum install rsync
Rsync-komennon syntaksi #
Ennen kuin käymme läpi rsync-komennon käyttöä, käymme aluksi läpi perussyntaksin.
rsync-apuohjelman lausekkeet ovat seuraavassa muodossa:
Local to Local: rsync ... ... DESTLocal to Remote: rsync ... ... HOST:DESTRemote to Local: rsync ... HOST:SRC...
-
OPTION– rsync-asetukset. -
SRC– Lähdehakemisto. -
DEST– Määrähakemisto. -
USER– Etäyhteyden käyttäjänimi. -
HOST– Etäyhteyden isäntänimi tai IP-osoite.
rsync tarjoaa useita vaihtoehtoja, jotka ohjaavat komennon käyttäytymistä. Yleisimmin käytetyt vaihtoehdot ovat:
-
-a,--archive, arkistotila, vastaa-rlptgoD. Tämä optio käskeersyncsynkronoimaan hakemistot rekursiivisesti, siirtämään erikois- ja lohkolaitteita, säilyttämään symboliset linkit, muokkausajat, ryhmät, omistusoikeudet ja käyttöoikeudet. -
-z,--compress. Tämä vaihtoehto pakottaarsyncpakkaamaan tiedot, kun ne lähetetään kohdekoneelle. Käytä tätä vaihtoehtoa vain, jos yhteys etäkoneeseen on hidas. -
-P, vastaa--partial --progress. Kun tätä vaihtoehtoa käytetään,rsyncnäyttää edistymispalkin siirron aikana ja säilyttää osittain siirretyt tiedostot. Se on hyödyllinen, kun suuria tiedostoja siirretään hitaiden tai epävakaiden verkkoyhteyksien kautta. -
--delete. Kun tätä vaihtoehtoa käytetään,rsyncpoistaa ylimääräiset tiedostot määränpäästä. Se on hyödyllinen peilauksessa. -
-q,--quiet. Käytä tätä vaihtoehtoa, jos haluat tukahduttaa muut kuin virheilmoitukset. -
-e. Tämän vaihtoehdon avulla voit valita eri etäkuoretulkin. Oletusarvoisestirsyncon määritetty käyttämään ssh:ta.
Basic Rsync Usage #
rsync:n peruskäyttötilanne on kopioida yksittäinen tiedosto yhdestä paikalliseen sijaintiin. Tässä on esimerkki:
rsync -a /opt/filename.zip /tmp/
Komennon suorittavalla käyttäjällä on oltava lukuoikeudet lähdepaikkaan ja kirjoitusoikeudet kohdepaikkaan.
Komennon antaminen kohdepaikasta kopioi tiedoston nykyisellä nimellä. Jos haluat tallentaa tiedoston eri nimellä, määritä uusi nimi kohdeosassa:
rsync -a /opt/filename.zip /tmp/newfilename.zip
rsync:n todellinen teho tulee hakemistojen synkronoinnissa. Alla olevassa esimerkissä näytetään, miten luodaan paikallinen varmuuskopio verkkosivuston tiedostoista:
rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/
Jos kohdehakemistoa ei ole olemassa, rsync luo sen.
On syytä mainita, että rsync kohtelee eri tavalla lähdehakemistoja, joissa on perässä oleva vinoviiva (/). Jos lähdehakemistossa on perässä oleva vinoviiva, komento kopioi vain hakemiston sisällön kohdehakemistoon. Kun perään tuleva vinoviiva jätetään pois, rsync kopioi lähdehakemiston kohdehakemiston sisälle.
Rsync:n käyttäminen tietojen synkronoimiseen etäkoneesta/etäkoneeseen #
Kun käytät rsync:tä tietojen siirtämiseen etänä, se on asennettava sekä lähde- että kohdekoneeseen. Uudet versiot rsync:stä on määritetty käyttämään SSH:ta oletusarvoisena etäkuorena.
Seuraavassa esimerkissä siirretään hakemisto paikallisesta koneesta etäkoneeseen:
rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/
Jos haluat siirtää tietoja etäkoneesta paikalliseen koneeseen, käytä etäkohtaa lähteenä:
rsync -a remote_user@remote_host_or_ip:/opt/media/ /opt/media/
Jos SSH kuuntelee etäkoneessa muuta porttia kuin oletusporttia 22, määritä portti käyttämällä -e-vaihtoehtoa:
rsync -a -e "ssh -p 2322" /opt/media/ remote_user@remote_host_or_ip:/opt/media/
Suuria tietomääriä siirrettäessä on suositeltavaa suorittaa komento rsync näyttöistunnon sisällä tai käyttää -P-vaihtoehtoa:
rsync -a -P remote_user@remote_host_or_ip:/opt/media/ /opt/media/
Exclude Files and Directories #
Tiedostojen ja hakemistojen poissulkemiseen on kaksi vaihtoehtoa. Ensimmäinen vaihtoehto on käyttää --exclude-argumenttia ja määrittää komentorivillä tiedostot ja hakemistot, jotka haluat sulkea pois.
Tiedostojen tai hakemistojen poissulkemisessa on käytettävä niiden suhteellisia polkuja lähdepaikkaan nähden.
Seuraavassa esimerkissä näytetään, miten suljetaan pois hakemistot node_modules ja tmp:
rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_directory/
Toisena vaihtoehtona on käyttää --exclude-from-vaihtoehtoa ja määritellä tiedostot ja hakemistot, jotka haluat sulkea pois komentorivillä.
rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_directory/
node_modulestmp
Johtopäätös #
Olemme näyttäneet, miten Rsyncin avulla voi kopioida ja synkronoida tiedostoja ja hakemistoja. Rsyncistä on paljon lisää opittavaa Rsyncin käyttöopassivulla.