15 Rsync-esimerkkejä

15 Rsync Esimerkkeja



Tiedostojen siirtäminen paikasta toiseen on hyvin yleinen tehtävä Linux-käyttäjälle. Linuxissa on useita vaihtoehtoja tämän tehtävän suorittamiseen; 'rsync' on yksi niistä. 'rsyncin' täysi muoto on 'Remote Sync'. Se on erittäin hyödyllinen synkronointityökalu tiedostojen ja kansioiden kopioimiseen järjestelmästä toiseen järjestelmään paikallisesti tai etänä. Sillä on paljon enemmän etuja kuin muilla synkronointityökaluilla. Tämä työkalu on asennettu Linuxiin oletuksena. Joten käyttäjän ei tarvitse asentaa sitä. 'rsync'-komennon edut ja käyttötavat esitetään tässä opetusohjelmassa 15 yksinkertaisen esimerkin avulla.

'Rsync'-komennon edut

  1. Se on nopeampi kuin muut työkalut, koska se kopioi vain ne tiedostot lähdesijainnista kohdesijaintiin, joita on muokattu tai joita ei ole kohdesijainnissa.
  2. Se tukee epätäydellistä siirtoa.
  3. Se vaatii vähemmän kaistanleveyttä, koska se pakkaa tiedot lähetyksen aikana.
  4. Se vähentää lähetyksen lisäkustannuksia, koska vähemmän tärkeät tiedot voidaan siirtää ilman salausta.

Syntaksi

'rsync'-komennon syntaksi on annettu seuraavassa:

rsync [Vaihtoehto] Lähteen kohde

Tässä lähde- ja kohdepolut voivat olla paikallisia tai etäpolkuja. Tämän komennon kanssa voidaan käyttää erityyppisiä valintoja eri tarkoituksiin.







Rsync-komennon hyödylliset vaihtoehdot

Jotkut 'rsync'-komennon yleisesti käytetyt vaihtoehdot selitetään seuraavassa:



Vaihtoehto Tarkoitus
-Kanssa Sitä käytetään tietojen pakkaamiseen lähetyksen aikana.
-r Sitä käytetään tietojen synkronointiin rekursiivisesti ilman tiedostojen käyttöoikeuksia.
-a Sitä käytetään tietojen synkronointiin rekursiivisesti säilyttämällä kaikki tiedostojen käyttöoikeudet.
-b Sitä käytetään tietojen varmuuskopiointiin lähetyksen aikana.
-sisään Sitä käytetään tuotoksen näyttämiseen verbose-muodossa.
-s Sitä käytetään siirron edistymisen näyttämiseen.
-n Sitä käytetään tarkistamaan, toimiiko synkronointi vai ei ennen tiedostojen tai kansioiden siirtämistä.

Luettelo 15 'Rsync'-esimerkistä

  1. Siirrä yksittäinen tiedosto ja kansio paikallisesti
  2. Siirrä useita tiedostoja ja kansioita paikallisesti
  3. Siirrä yksittäinen tiedosto ja kansio etänä
  4. Siirrä useita tiedostoja ja kansioita etänä
  5. Näytä siirron edistyminen
  6. Pakkaa tiedot siirron aikana
  7. Siirto kaistanleveysrajoituksella
  8. Siirrä tiedostot ja kansiot rekursiivisesti
  9. Siirto vähimmäiskokorajoituksella
  10. Siirrä enimmäiskokorajoituksella
  11. Siirrä tietyn tyyppiset tiedostot
  12. Näytä erot lähde- ja kohdetiedostojen välillä
  13. Sisällytä tai sulje pois tiedostot siirron aikana
  14. Synkronoi tiedot kuivaustilassa
  15. Poista lähdetiedostot ja -kansiot siirron jälkeen

Siirrä yksittäinen tiedosto ja kansio paikallisesti

Suorita 'ls'-komento näyttääksesi luettelon nykyisen sijainnin tiedostoista ja kansioista. Suorita seuraavaksi 'rsync'-komento siirtääksesi 'employees.txt'-tiedoston 'employees_copy.txt'-tiedostoon paikallisesti. Suorita 'ls'-komento uudelleen tarkistaaksesi, onko tiedosto siirretty oikein vai ei.



$ ls
$ rsync työntekijät.txt työntekijät_copy.txt
$ ls

Seuraava tulos osoittaa, että 'employee.txt'-tiedosto on siirretty onnistuneesti:





Oletetaan, että temp-kansion sisältö on siirrettävä tempdir-kansioon, jossa molemmissa kansioissa on 'courses.txt'-tiedosto. Suorita 'ls temp' -komento tarkistaaksesi temp-kansion sisällön. Suorita seuraavaksi 'cat temp/courses.txt' -komento tarkistaaksesi tämän tiedoston sisällön. Suorita seuraavaksi 'ls tempdir' -komento tarkistaaksesi tempdir-kansion sisällön. Suorita seuraavaksi 'cat tempdir/courses.txt' -komento tarkistaaksesi tämän tiedoston sisällön.



$ls lämpötila
$ cat temp/courses.txt
$ lstempdir
$ cat tempdir/courses.txt

Tuloste näyttää, että temp- ja tempdir-kansioiden “courses.txt”-tiedoston sisältö on hieman erilainen ja temp-kansion “courses.txt”-tiedosto sisältää enemmän tietoa kuin tempdir-kansion “courses.txt”-tiedosto. .

Suorita seuraava komento siirtääksesi temp-kansion sisältö tempdir-kansioon ja tarkista tempdir-kansion “courses.txt”-tiedoston sisältö varmistaaksesi, että tiedosto on päivitetty oikein vai ei:

$ rsync -a temp/ tempdir/
$ lstempdir
$ cat tempdir/courses.txt

Seuraava tulos osoittaa, että temp-kansion sisältö on siirretty oikein tempdir-kansioon ja tempdir-kansion “courses.txt”-tiedoston sisältö päivitetään oikein:

Siirrä useita tiedostoja ja kansioita paikallisesti

'rsync'-komentoa voidaan käyttää useiden tiedostojen ja kansioiden siirtämiseen paikallisesti. Suorita seuraava komento siirtääksesi 'ping1.bash' ja 'ping2.bash' tiedostot tempdir-kansioon ja tarkista tempdir-kansion sisältö siirron jälkeen. Vaihtoehtoa -v käytetään 'rsync'-komennon kanssa tuotoksen näyttämiseen verbose-muodossa:

$ rsync -v ping1.bash ping2.bash tempdir/
$ lstempdir

Seuraava tulos osoittaa, että useita tiedostoja siirretään oikein tempdir-kansioon:

Suorita seuraavat komennot tarkistaaksesi temp-, tempdir- ja testikansioiden sisällön ja siirrä testi- ja tempdir-kansion sisältö temp-kansioon:

$ ls lämpötila
$ lstempdir
$ ls testi
$ rsync -av testi/ tempdir/ temp/
$ ls lämpötila

Tulos näyttää, että testi- ja tempdir-kansioiden sisältö on siirretty onnistuneesti temp-kansioon. Tiedostot 'customers.csv', 'ping1.bash' ja 'ping2.bash' lisätään uusina tiedostoina tilapäiseen kansioon:

Siirrä yksittäinen tiedosto ja kansio etänä

Sinun on asennettava ja määritettävä SSH-palvelin etäsijainnissa tiedostojen ja kansioiden etäsiirtoa varten. Voit tarkistaa tämän opetusohjelma määrittääksesi SSH-palvelimen.

Suorita seuraava komento tarkistaaksesi nykyisen sijainnin 'courses.txt'-tiedoston koon:

ls -la kurssit.txt

Tulos näyttää, että 'courses.txt'-tiedoston koko on 65 tavua:

Suorita seuraava komento siirtääksesi 'courses.txt' tiedostoon /home/ubuntu/kurssit/ etäsijainnin kansio, ubuntu@192.168.0.101. Sinun on annettava etäkoneen pääkäyttäjän salasana ennen tiedoston siirtämistä:

rsync -v courses.txt  ubuntu@192.168.0.101:/home/ubuntu/courses/

Seuraava tulos näyttää, että 'courses.txt'-tiedosto on siirretty etäkoneeseen oikein ja tiedoston koko on 65 tavua:

Suorita seuraava komento siirtääksesi temp-kansion /home/ubuntu/kurssit/ etäsijainnin kansio, ubuntu@192.168.0.101. Sinun on annettava etäkoneen pääkäyttäjän salasana ennen tiedoston siirtämistä edellisen komennon tapaan.

rsync -av temp/ ubuntu@192.168.0.101:/home/ubuntu/courses/

Seuraava tulos osoittaa, että temp-kansion sisältö on siirretty etäkoneeseen oikein:

Siirrä useita tiedostoja ja kansioita etänä

Seuraava 'rsync'-komento siirtää 'customers.csv'- ja 'department.json'-tiedostot /home/Ubuntu/files/ etäsijainnin kansio, ubuntu@192.168.0.101.

rsync -av customers.csv Department.json ubuntu@192.168.0.101:/home/ubuntu/files/

Seuraava tulos osoittaa, että useita tiedostoja on siirretty onnistuneesti etäsijaintiin:

Seuraava 'rsync'-komento siirtää temp- ja testikansioiden sekä 'department.json'-tiedoston sisällön /home/Ubuntu/files/ etäsijainnin kansio, ubuntu@192.168.0.101.

rsync -av temp/ test/ Department.json ubuntu@192.168.0.101:/home/ubuntu/files/

Seuraava tulos osoittaa, että useiden kansioiden sisältö on siirretty onnistuneesti etäsijaintiin:

Näytä siirron edistyminen

Suorita 'rsync' -komento vaihtoehdolla -progress siirtääksesi tempdir-kansion sisällön temp_copy-kansioon edistymistietojen kera.

rsync -a tempdir/ temp_copy --progress

Seuraava tulos näyttää, että temp_copy-hakemisto luodaan paikallisesti ja tempdir-kansion sisältö siirretään onnistuneesti temp_copy-kansioon:

Pakkaa tiedot siirron aikana

Suorita seuraava 'rsync' -komento optiolla -z pakataksesi ja siirtääksesi tempdir-hakemiston testihakemistoon paikallisesti:

rsync -za tempdir/test/

Seuraava tulos osoittaa, että pakattu hakemisto on siirretty onnistuneesti paikallisesti:

Siirto kaistanleveysrajoituksella

Suorita seuraava 'rsync' -komento valitsimella -bwlimit arvolla 100 siirtääksesi /etc/passwd-tiedoston temp-kansioon paikallisesti:

rsync -v --bwlimit=100 etc/passwd temp/

Seuraava tulos osoittaa, että passwd-tiedosto on siirretty onnistuneesti:

Siirrä tiedosto ja kansio rekursiivisesti

Suorita seuraava 'rsync' -komento -rv-vaihtoehdolla siirtääksesi testikansion test_bak-kansioon paikallisesti:

rsync -rv testi/ test_bak/

Seuraava tulos osoittaa, että testikansio on siirretty onnistuneesti test_bak-kansioon:

Siirto vähimmäiskokorajoituksella

Tiedostojen ja kansioiden siirtoa 'rsync'-komennolla voidaan rajoittaa -min-size-vaihtoehdolla asettaaksesi tiedostojen ja kansioiden siirtämisen vähimmäiskokorajan. Suorita seuraava 'ls -la tempdir' -komento tarkistaaksesi tämän kansion kunkin tiedoston ja kansion koon. Suorita seuraavaksi 'rsync' -komento siirtääksesi tempdir-kansion sisältö kansioon tempdir_bak vähimmäiskokorajoituksella.

ls -la tempdir
rsync -av --min-size='245B' tempdir/tempdir_bak

Seuraava tulos osoittaa, että tempdir-kansiossa on kaksi tiedostoa, jotka vastaavat vähimmäiskokoa. Nämä ovat 'ping1.bash' (248 tavua) ja 'test.txt' (34504 tavua). Nämä tiedostot siirretään kansioon tempdir_bak ja muut tempdir-kansion tiedostot jätetään pois:

Siirrä enimmäiskokorajoituksella

Tiedostojen ja kansioiden siirtoa 'rsync'-komennolla voidaan rajoittaa käyttämällä -max-size-vaihtoehtoa siirrettävien tiedostojen ja kansioiden enimmäiskokorajan asettamiseksi. Suorita seuraava 'ls -la temp' -komento tarkistaaksesi tämän kansion kunkin tiedoston ja kansion koon. Suorita seuraavaksi 'rsync' -komento siirtääksesi temp-kansion sisällön temp_bak-kansioon enimmäiskokorajoituksella.

ls -la temp
rsync --max-size='250B' temp/ temp_bak/

Seuraava tulos osoittaa, että temp-kansiossa on neljä tiedostoa, jotka vastaavat enimmäiskokorajoitusta. Nämä ovat 'courses.txt' (65 tavua), 'employees.csv' (361 tavua), 'ping1.bash' (248 tavua) ja 'ping2.bash' (244 tavua). Nämä tiedostot siirretään kansioon temp_bak ja muut temp-kansion tiedostot jätetään pois:

Siirrä tietyn tyyppiset tiedostot

Siirrettävän tiedoston tyyppi voidaan asettaa mainitsemalla tiedoston pääte 'rsync'-komennossa. Suorita seuraava 'rsync' -komento siirtääksesi kaikki temp-kansion tekstitiedostot mydir-kansioon. Tässä tekstitiedoston tunniste on merkitty '*.txt':llä:

rsync -v temp/*.txt mydir/

Seuraava tulos näyttää, että kaksi tekstitiedostoa, 'courses.txt' ja 'test.txt', siirretään mydir-kansioon ja muut väliaikaiskansion tiedostot jätetään pois:

Näytä erot lähde- ja kohdetiedostojen välillä

Kun tiedostot tai kansiot siirretään paikasta toiseen paikallisesti tai etänä, molemmat sijainnit voivat sisältää samat tiedostot tai kansiot. Lähteen ja kohteen välisiä eroja lähetyksen aikana voidaan tutkia käyttämällä -i-optiota 'rsync'-komennolla. Suorita seuraavat 'kissa'-komennot tarkistaaksesi lähde- ja kohdetiedoston sisällön ennen siirtoa. Täällä 'courses.txt'-tiedosto siirretään tilapäiseen kansioon.

kissakurssit.txt
cat temp/courses.txt
rsync -avi courses.txt temp/

Seuraava tulos osoittaa, että lähteen ja kohteen 'courses.txt'-tiedosto ovat hieman erilaiset. 'rsync'-komennon tulos näyttää tiedostojen välisen eron:

Synkronoi tiedot kuivaustilassa

Jos haluat tietää, mitkä tiedostot ja kansiot siirretään 'rsync'-komennolla ennen varsinaista siirtoa, on parempi ajaa 'rsync'-komento vaihtoehdolla -dry-run tai -n. Kun 'rsync'-komento suoritetaan tällä valinnalla, se tarkistaa, mitkä tiedostot tai kansiot kopioidaan lähdekansiosta kohdekansioon, mutta pitää kohdekansion ennallaan. Suorita ls –la Department.json-tiedosto tarkistaaksesi tiedoston koon. Suorita seuraavaksi 'rsync'-komento -dry-run-tilassa tarkistaaksesi 'department.json'-tiedoston siirron temp-kansioon.

ls -la Department.json
rsync -v --dry-run Department.json temp/

Seuraava tulos osoittaa, että 'department.json'-tiedoston koko on 1172 tavua. Tiedoston koko näyttää 1172 tavua sen jälkeen, kun 'rsync' -komento on suoritettu -dry-run -vaihtoehdolla:

Sisällytä tai sulje pois tiedostot siirron aikana

Voit suodattaa tiedoston tyypin siirtäessäsi lähdesijainnista kohdesijaintiin käyttämällä -include- ja -exclude -vaihtoehtoja. Optionssinclude-vaihtoehtoa käytetään määrittämään niiden tiedostojen laajennus, jotka siirretään lähteestä kohteeseen. -Exclude-vaihtoehtoa käytetään määrittämään tiedostopääte, jota ei siirretä lähteestä kohteeseen.

Suorita seuraava 'ls temp' -kansio tarkistaaksesi temp-kansion sisällön. Suorita seuraavaksi 'rsync' -komento -include- ja -exclude-vaihtoehdoilla. Komennon mukaan kaikki temp-kansion CSV-tiedostot siirretään tiedostokansioon ja kaikki temp-kansion tekstitiedostot jätetään pois siirron yhteydessä. Suorita seuraavaksi 'ls files' -komento tarkistaaksesi, mitkä tiedostot siirretään tilapäiskansiosta tiedostokansioon.

ls lämpötila
rsync -a temp/ files/ --include=*.csv --exclude=*.txt
ls-tiedostoja

Seuraava tulos osoittaa, että temp-kansio sisältää kaksi CSV-tiedostoa, kaksi tekstitiedostoa ja kaksi BASH-tiedostoa. Tiedostokansio on tyhjä ennen siirtoa ja kaksi CSV-tiedostoa ja kaksi BASH-tiedostoa siirretään:

Poista lähdetiedostot ja -kansiot siirron jälkeen

Aiemmissa 'rsync'-komennoissa lähdetiedostot ja -kansiot pysyvät lähdesijaintiin siirtämisen jälkeen kohdesijaintiin. Mutta joskus se vaatii tiedostojen ja kansioiden siirtämistä pysyvästi kohdesijaintiin. Tämä tehtävä voidaan tehdä käyttämällä -remove-source-files -vaihtoehtoa 'rsync'-komennolla. Suorita 'ls'-komento tarkistaaksesi kaikki nykyisen sijainnin tiedostot ja kansiot. Suorita 'ls temp' -komento tarkistaaksesi temp-kansion tiedostot ja kansiot. Suorita seuraavaksi 'rsync' -komento -remove-source-files -vaihtoehdolla poistaaksesi lähdesijainnin tiedostot ja kansiot siirron jälkeen. Suorita 'ls'-komento uudelleen tarkistaaksesi, onko lähdetiedosto poistettu lähdesijainnista vai ei.

ls
ls lämpötila
rsync  työntekijät.csv temp/ --remove-source-files
ls

Seuraava tulos näyttää, että nykyisen sijainnin 'employees.csv'-tiedosto siirretään väliaikaiskansioon ja 'employees.csv'-tiedosto poistetaan lähdesijainnista siirron jälkeen:

Johtopäätös

'rsync' on erittäin hyödyllinen Linuxin työkalu, joka helpottaa tiedostojen ja kansioiden siirtämistä paikasta toiseen eri vaihtoehtoja käyttämällä. Menetelmät 'rsync'-komennon käyttämiseksi tiedostojen ja kansioiden siirtämiseen paikasta toiseen pakkaamalla, asettamalla tiedostojen ja kansioiden koko, asettamalla tiedostotyyppi, asettamalla kaistanleveysrajoituksen jne. on esitetty 15 yksinkertaisessa esimerkissä tämä opetusohjelma. Tämä opetusohjelma auttaa Linux-käyttäjiä tuntemaan 'rsync'-komennon peruskäytöt Linuxissa oikein.