Rsync-komento Linuxissa esimerkkeineen

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äskee rsync 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 pakottaa rsync 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. Oletusarvoisesti rsync 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 et ole asettanut salasanatonta SSH-kirjautumista etäkoneeseen, sinua pyydetään antamaan käyttäjän salasana.

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/
/exclude-file.txt
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.

Vastaa

Sähköpostiosoitettasi ei julkaista.