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äskeersync
synkronoimaan 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 pakottaarsync
pakkaamaan 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,rsync
nä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,rsync
poistaa 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. Oletusarvoisestirsync
on 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.