rsync on Unix-tyyppisille järjestelmille rakennettu protokolla, joka tarjoaa uskomattoman monipuolisuuden tietojen varmuuskopiointiin ja synkronointiin. Sitä voidaan käyttää paikallisesti tiedostojen varmuuskopioimiseen eri hakemistoihin tai voidaan konfiguroida synkronoimaan Internetin välityksellä muihin isäntiin.
Sitä voidaan käyttää Windows-järjestelmissä, mutta se on käytettävissä vain eri porttien kautta (kuten Cygwin). Tästä syystä puhumme siitä, miten se asennetaan Linuxissa. Ensinnäkin meidän on asennettava / päivitettävä rsync-asiakas. Red Hat -jakaumalla komento on "yum install rsync" ja Debianilla se on "sudo apt-get install rsync."
Command on Red Hat / CentOS, kirjautumisen jälkeen root (huomaa, että jotkut viimeaikaiset Red Hat -julkaisut tukevat sudo-menetelmää).
Komento Debianista / Ubuntu.
Tämän opetusohjelman ensimmäisessä osassa varmuuskopioimme tiedostot Directory1: sta Directory2: een. Molemmat hakemistot ovat samassa kiintolevyasemassa, mutta tämä toimisi täsmälleen samalla tavalla, jos hakemistoja oli olemassa kahdessa eri asemassa. Voimme lähestyä tätä eri tavalla, riippuen siitä, millaisia varmuuskopioita haluat määrittää. Useimmissa tarkoituksissa seuraavan koodin rivi riittää:
$ rsync -av --delete / Directory1 / / Directory2 /
Edellä oleva koodi synkronoi Directory1: n ja Directory2: n sisällön ja jättää näiden kahden välille eroja. Jos rsync havaitsee, että Directory2: lla on tiedosto, jota Directory1 ei, se poistaa sen. Jos rsync löytää tiedoston, joka on muuttunut, luonut tai poistettu hakemistosta1, se heijastaa samoja muutoksia hakemistoon2.
Rsyncillä on paljon erilaisia kytkimiä, jotka voit mukauttaa sen tarpeisiin. Tässä on se, mitä edellä mainittu koodi kertoo rsyncin tekemisestä varmuuskopioiden kanssa:
1. -a = rekursiivinen (haku uudelleen hakemistoon), linkit (kopioi symlinks-linkkejä symlinksiksi), perms (säilytä käyttöoikeudet), kertaa (säilytä muokkausaika), ryhmä (säilytä ryhmä), omistaja (säilytä omistaja) säilytä erityisiä tiedostoja.
2. -v = verbose. Syy, jonka luulen verbose on tärkeä, on niin, että näet tarkalleen, mitä rsync tukee. Ajattele tätä: Mitä jos kiintolevysi menee huonoon ja alkaa tiedostojen poistamatta tietämättäsi, suoritat rsync-skriptin ja työntää nämä muutokset varmuuskopioihisi, jolloin poistat kaikki sellaiset tiedostot, joita et halunnut saada eroon?
3. -delete = Tämä kertoo rsyncistä, että kaikki Directory2-tiedostoista, jotka eivät ole hakemistossa1, poistetaan. Jos valitset tämän vaihtoehdon, suosittelen myös verbose-vaihtoehtoja edellä mainituista syistä.
Käyttämällä yllä olevaa käsikirjoitusta tässä on tuotos, jota generoidaan rsyncin avulla varmuuskopioon Directory1: sta Directory2: een. Huomaa, että ilman verbose-kytkintä et saisi tällaisia yksityiskohtaisia tietoja.
Yllä oleva kuvakaappaus kertoo, että File1.txt ja File2.jpg havaittiin olevan joko uusia tai muutoin muutettu Directory2: n olemassa olevista kopioista, joten ne varmuuskopioitiin. Noob tip: Huomaa peräkkäisiä viivoja rsync-komennon hakemistojen lopussa - ne ovat välttämättömiä, muista muistaa ne.
Menemme vielä muutamaan kätevään kytkinohjelmaan tämän oppitunnin loppuun, mutta muista vain, että täydellisen luettelon kirjoittaessa voit kirjoittaa "man rsync" ja tarkastella täydellistä luetteloa kytkimistä käytettäväksi.
Se kattaa sen paikallisten varmuuskopioiden osalta. Kuten voitte sanoa, rsync on erittäin helppokäyttöinen. Se on hieman monimutkaisempi, kun sitä käytetään synkronoimaan tietoja ulkoisen isäntän kanssa Internetin välityksellä, mutta näytämme sinulle yksinkertaisen, nopean ja turvallisen tavan tehdä niin.
rsync voidaan konfiguroida useilla eri tavoilla ulkoisiin varmuuskopiointiin, mutta menemme käytännön (myös helpoin ja turvallisin) tunnelin rsyncin kautta SSH: n kautta. Useimmilla palvelimilla ja jopa monilla asiakkailla on jo SSH, ja sitä voi käyttää rsync-varmuuskopioihisi. Näytämme prosessin saada yksi Linux-kone varmuuskopioida toiselle paikalliselle verkolle. Prosessi olisi täsmälleen sama, jos yksi isäntä olisi internetissä jonnekin, huomaa vain, että portti 22 (tai mikä tahansa portti, johon SSH on määritetty), olisi välitettävä mille tahansa verkkolaitteelle palvelimen puolelle.
Varmista, että SSH ja rsync on asennettu palvelimelle (tietokone, joka vastaanottaa varmuuskopiot).
# yum -y asenna ssh rsync
# sudo apt-get asenna ssh rsync
Muuten kuin SSH: n ja rsyncin asentaminen palvelimelle, kaikki, mitä todella tarvitaan, on asentaa arkistot palvelimelle, johon haluat varmuuskopioidut tiedostot, ja varmista, että SSH on lukittu. Varmista, että käyttäjä, jonka aiot käyttää, on monimutkainen salasana, ja se saattaa myös olla hyvä vaihtaa portti, johon SSH kuuntelee (oletuksena on 22).
Käytämme samaa komentoa, jota käytimme rsyncin käyttämiseen paikallisessa tietokoneessa, mutta siihen sisältyvät tarvittavat lisäykset SSH: n tunnistukseen rsyncille paikallisverkko-palvelimelle. Käyttäjä "geek", joka yhdistää "192.168.235.137" ja käyttää samoja kytkimiä kuin yllä (-av -delete), ajetaan seuraavasti:
$ rsync -av -delete -e ssh / Directory1 / [email protected]: / Directory2 /
Jos sinulla on SSH-kuuntelu joissakin muissa portissa kuin 22, sinun on määritettävä portin numero, kuten tässä esimerkissä, jossa käytän porttia 12345:
$ rsync -av -delete -e 'ssh -p 12345' / hakemisto1 / [email protected]: / hakemisto2 /
Kuten yllä olevasta kuvakaapista voi nähdä, verkossa varmuuskopioitu tulostus on melko samanlainen kuin varmuuskopioimalla paikallisesti, ainoa asia, joka muuttuu, on komento, jota käytät. Huomaa myös, että se pyysi salasanaa. Tämä on todentaa SSH: n avulla.Voit asettaa RSA-avaimet ohittamaan tämän prosessin, mikä yksinkertaistaa myös automaattisen rsyncin automaatiota.
Cronia voidaan käyttää Linuxissa komennoiden, kuten rsyncin, automatisoimiseksi. Cronin avulla voimme Linux-järjestelmämme suorittaa öisin varmuuskopioita, tai kuitenkin usein haluaisit niiden toimivan.
Voit muokata cron-taulukkotiedostoa käyttäjälle, johon olet kirjautunut sisään, suorittamalla:
$ crontab -e
Sinun on tunnettava vi, jotta voit muokata tätä tiedostoa. Kirjoita "I" insertille ja aloita sitten cron-taulukkotiedoston muokkaus.
Cron käyttää seuraavaa syntaksia: tunnin tunti, päivän tunti, kuukauden päivä, vuoden kuu, viikonpäivä, komento.
Se voi olla hieman hämmentävä aluksi, joten anna esimerkkinä. Seuraava komento suorittaa rsync-komennon joka ilta kello 22:
0 22 * * * rsync -av --delete / Directory1 / / Directory2 /
Ensimmäinen "0" määrittää tunnin tunti, ja "22" määrittää 10 PM. Koska haluamme tämän komennon toimivan päivittäin, jätämme loput kentät tähdellä ja liitä sitten rsync-komento.
Kun olet määrittänyt Cronin, paina paeta ja kirjoita sitten ": wq" (ilman lainausmerkkejä) ja paina enter. Tämä säästää muutoksesi vi.
Cron voi saada paljon enemmän syvällisempää kuin tämä, mutta jatkaa siitä, että se olisi tämän opetusohjelman ulkopuolella. Useimmat ihmiset haluavat vain yksinkertaisen viikoittaisen tai päivittäisen varmuuskopion, ja mitä olemme osoittaneet, voit helposti saavuttaa sen. Lisätietoja Cronista on man-sivuilla.
Toinen hyödyllinen tapa voit tehdä varmuuskopiot zip-tiedostoksi. Sinun on määritettävä, mistä haluat zip-tiedoston sijoittamisen, ja rsync sitten hakemisto varmuuskopio-hakemistoosi. Esimerkiksi:
$ zip /ZippedFiles/archive.zip / Hakemisto1 / && rsync -av --delete / ZippedFiles / / Directory2 /
Yllä oleva komento ottaa tiedostot hakemistosta1, asettaa ne /ZippedFiles/archive.zip -muotoon ja sitten rsynches hakemiston Directory2: lle. Aluksi saattaa ajatella, että tämä menetelmä osoittautuu tehottomaksi suurille varmuuskopioille, kun otetaan huomioon, että zip-tiedosto muuttuu joka kerta, kun pienintä muutosta tehdään tiedostolle. Rsync kuitenkin siirtää vain muuttuneet tiedot, joten jos zip-tiedosto on 10 gigatavua ja lisäät sitten tekstitiedoston hakemistoon 1, rsync tietää, että kaikki olet lisännyt (vaikka se on zipissä) ja siirtää vain muutaman kilobyytin muuttuneista tiedoista.
Rsync-varmuuskopioita voidaan salata useilla eri tavoilla. Helpoin tapa on asentaa salaus itse kiintolevylle (se, johon tiedostoja varmuuskopioidaan). Toinen tapa on salata tiedostot ennen niiden lähettämistä etäpalvelimelle (tai muulle kiintolevylle, mitä tahansa varmuuskopioitavaksi). Käsittelemme nämä menetelmät myöhemmissä artikkeleissa.
Mitä vaihtoehtoja ja ominaisuuksia valitset, rsync osoittautuu yhdeksi tehokkaimmista ja monipuolisista varmuuskopiointityökaluista tähän mennessä, ja jopa yksinkertainen rsync-skripti voi säästää sinua menettämästäsi tietoja.