'Rsync'-komennon edut
- Se on nopeampi kuin muut työkalut, koska se kopioi vain ne tiedostot lähdesijainnista kohdesijaintiin, joita on muokattu tai joita ei ole kohdesijainnissa.
- Se tukee epätäydellistä siirtoa.
- Se vaatii vähemmän kaistanleveyttä, koska se pakkaa tiedot lähetyksen aikana.
- 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 kohdeTä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ä
- Siirrä yksittäinen tiedosto ja kansio paikallisesti
- Siirrä useita tiedostoja ja kansioita paikallisesti
- Siirrä yksittäinen tiedosto ja kansio etänä
- Siirrä useita tiedostoja ja kansioita etänä
- Näytä siirron edistyminen
- Pakkaa tiedot siirron aikana
- Siirto kaistanleveysrajoituksella
- Siirrä tiedostot ja kansiot rekursiivisesti
- Siirto vähimmäiskokorajoituksella
- Siirrä enimmäiskokorajoituksella
- Siirrä tietyn tyyppiset tiedostot
- Näytä erot lähde- ja kohdetiedostojen välillä
- Sisällytä tai sulje pois tiedostot siirron aikana
- Synkronoi tiedot kuivaustilassa
- 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.txtTulos 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 --progressSeuraava 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 tempdirrsync -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 temprsync --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.txtcat 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.jsonrsync -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ötilarsync -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.
lsls 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.