15 Rsync példa

15 Rsync Pelda



A fájlok egyik helyről a másikra átvitele nagyon gyakori feladat a Linux-felhasználók számára. Linuxban számos lehetőség áll rendelkezésre ennek a feladatnak a végrehajtására; Az „rsync” az egyik ilyen. Az „rsync” teljes formája a „Remote Sync”. Ez egy nagyon hasznos szinkronizálási eszköz a fájlok és mappák helyi vagy távoli másolásához egyik rendszerről a másikra. Sokkal több előnnyel rendelkezik, mint a többi szinkronizálási eszköznek. Ez az eszköz alapértelmezés szerint telepítve van Linux alatt. Tehát a felhasználónak nem kell telepítenie. Az „rsync” parancs előnyeit és felhasználását ez az oktatóanyag 15 egyszerű példán keresztül mutatja be.

Az „Rsync” parancs előnyei

  1. Gyorsabb, mint a többi eszköz, mert csak azokat a fájlokat másolja a forrás helyről a célhelyre, amelyek módosítottak vagy nem léteznek a célhelyen.
  2. Támogatja a hiányos átvitelt.
  3. Kisebb sávszélességet igényel, mert az átvitel során tömöríti az adatokat.
  4. Csökkenti az átvitel többletköltségét, mivel a kevésbé fontos adatok titkosítás nélkül továbbíthatók.

Szintaxis

Az „rsync” parancs szintaxisa a következő:

rsync [Opció] Forrás cél

Itt a forrás és a cél elérési útja lehet helyi vagy távoli. Ezzel a paranccsal különböző típusú beállítások használhatók különböző célokra.







Az „Rsync” parancs hasznos beállításai

Az „rsync” parancs néhány gyakran használt beállítását az alábbiakban ismertetjük:



választási lehetőség Célja
-Val vel Az adatok tömörítésére szolgál az átvitel során.
-r Az adatok rekurzív szinkronizálására szolgál anélkül, hogy bármilyen fájlengedélyt megtartana.
-a Az adatok rekurzív szinkronizálására szolgál az összes fájlengedély megtartásával.
-b Az adatátvitel során biztonsági másolat készítésére szolgál.
-ban ben A kimenet bőbeszédű formátumban való megjelenítésére szolgál.
-o Az átvitel folyamatának megjelenítésére szolgál.
-n A fájlok vagy mappák átvitele előtt annak ellenőrzésére szolgál, hogy a szinkronizálás működik-e vagy sem.

15 „Rsync” példa listája

  1. Egyetlen fájl és mappa helyi átvitele
  2. Több fájl és mappa helyi átvitele
  3. Egyetlen fájl és mappa átvitele távolról
  4. Több fájl és mappa átvitele távolról
  5. Jelenítse meg az átvitel folyamatát
  6. Tömörítse az adatokat az átvitel során
  7. Átvitel a sávszélesség-korláttal
  8. Fájlok és mappák rekurzív átvitele
  9. Átvitel a minimális méretkorláttal
  10. Átvitel a maximális méretkorláttal
  11. Vigye át az adott típusú fájlokat
  12. Jelenítse meg a forrás- és a célfájlok közötti különbségeket
  13. Fájlok felvétele vagy kizárása az átvitel során
  14. Szinkronizálja az adatokat száraz módban
  15. Az átvitel után törölje a forrásfájlokat és mappákat

Egyetlen fájl és mappa helyi átvitele

Futtassa az „ls” parancsot az aktuális hely fájlok és mappáinak listájának megjelenítéséhez. Ezután futtassa az „rsync” parancsot az „employees.txt” fájl helyi „employees_copy.txt” fájlba való átviteléhez. Futtassa újra az „ls” parancsot, hogy ellenőrizze, hogy a fájl megfelelően megtörtént-e vagy sem.



$ ls
$ rsync munkavállalók.txt munkavállalók_másolata.txt
$ ls

A következő kimenet azt mutatja, hogy az „employee.txt” fájl átvitele sikeresen megtörtént:





Tegyük fel, hogy a temp mappa tartalmát át kell vinni a tempdir mappába, ahol mindkét mappában megtalálható a „courses.txt” fájl. Futtassa az „ls temp” parancsot a temp mappa tartalmának ellenőrzéséhez. Ezután futtassa a „cat temp/courses.txt” parancsot a fájl tartalmának ellenőrzéséhez. Ezután futtassa az „ls tempdir” parancsot a tempdir mappa tartalmának ellenőrzéséhez. Ezután futtassa a „cat tempdir/courses.txt” parancsot a fájl tartalmának ellenőrzéséhez.



$ ls hőm
$ cat temp/courses.txt
$ lstempdir
$ cat tempdir/courses.txt

A kimenet azt mutatja, hogy a temp és tempdir mappa „courses.txt” fájljának tartalma kissé eltér, és a temp mappa „courses.txt” fájlja több adatot tartalmaz, mint a tempdir mappa „courses.txt” fájlja. .

Futtassa a következő parancsot a temp mappa tartalmának a tempdir mappába való átviteléhez, és ellenőrizze a tempdir mappa „courses.txt” fájljának tartalmát, hogy megbizonyosodjon arról, hogy a fájl megfelelően frissült-e vagy sem:

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

A következő kimenet azt mutatja, hogy a temp mappa tartalma megfelelően átkerült a tempdir mappába, és a tempdir mappa „courses.txt” fájljának tartalma megfelelően frissült:

Több fájl és mappa helyi átvitele

Az „rsync” parancs több fájl és mappa helyi átvitelére használható. Futtassa a következő parancsot a „ping1.bash” és „ping2.bash” fájlok átviteléhez a tempdir mappába, és ellenőrizze a tempdir mappa tartalmát az átvitel után. A -v opciót az „rsync” paranccsal együtt használjuk a kimenet bőbeszédű formátumban való megjelenítéséhez:

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

A következő kimenet azt mutatja, hogy több fájl megfelelően kerül átvitelre a tempdir mappába:

Futtassa a következő parancsokat a temp, tempdir és tesztmappák tartalmának ellenőrzéséhez, és a teszt és a tempdir mappa tartalmának átviteléhez a temp mappába:

$ ls hőm
$ lstempdir
$ ls teszt
$ rsync -av test/ tempdir/ temp/
$ ls hőm

A kimenet azt mutatja, hogy a teszt és a tempdir mappa tartalma sikeresen átkerült a temp mappába. A „customers.csv”, „ping1.bash” és „ping2.bash” fájlok új fájlként kerülnek hozzáadásra az ideiglenes mappához:

Egyetlen fájl és mappa átvitele távolról

A fájlok és mappák távoli átviteléhez telepítenie és konfigurálnia kell az SSH-kiszolgálót a távoli helyen. Ezt ellenőrizheti oktatóanyag az SSH szerver konfigurálásához.

Futtassa a következő parancsot az aktuális hely „courses.txt” fájljának méretének ellenőrzéséhez:

ls -la tanfolyamok.txt

A kimenet azt mutatja, hogy a „courses.txt” fájl mérete 65 bájt:

Futtassa a következő parancsot a „courses.txt” fájl átviteléhez a /home/ubuntu/courses/ a távoli hely mappája, ubuntu@192.168.0.101. A fájl átvitele előtt meg kell adnia a távoli gép root jelszavát:

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

A következő kimenet azt mutatja, hogy a „courses.txt” fájl megfelelően átkerült a távoli gépre, és a fájl mérete 65 bájt:

Futtassa a következő parancsot a temp mappa átviteléhez a /home/ubuntu/tanfolyamok/ a távoli hely mappája, ubuntu@192.168.0.101. A fájl átvitele előtt az előző parancshoz hasonlóan meg kell adnia a távoli gép root jelszavát.

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

A következő kimenet azt mutatja, hogy a temp mappa tartalma megfelelően átkerült a távoli gépre:

Több fájl és mappa átvitele távolról

A következő „rsync” parancs átviszi a „customers.csv” és „department.json” fájlokat a /home/Ubuntu/files/ a távoli hely mappája, ubuntu@192.168.0.101.

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

A következő kimenet azt mutatja, hogy több fájl sikeresen átkerült a távoli helyre:

A következő „rsync” parancs átviszi a temp és a tesztmappák, valamint a „department.json” fájl tartalmát a /home/Ubuntu/files/ a távoli hely mappája, ubuntu@192.168.0.101.

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

A következő kimenet azt mutatja, hogy a több mappa tartalma sikeresen átkerült a távoli helyre:

Jelenítse meg az átvitel folyamatát

Futtassa az „rsync” parancsot a –progress paraméterrel, hogy a tempdir mappa tartalmát átvigye a temp_copy mappába az előrehaladási információkkal együtt.

rsync -a tempdir/ temp_copy --progress

A következő kimenet azt mutatja, hogy a temp_copy könyvtár helyileg jön létre, és a tempdir mappa tartalma sikeresen átkerült a temp_copy mappába:

Tömörítse az adatokat az átvitel során

Futtassa a következő „rsync” parancsot a –z kapcsolóval a tempdir könyvtár tömörítéséhez és helyi tesztkönyvtárba való átviteléhez:

rsync -za tempdir/test/

A következő kimenet azt mutatja, hogy a tömörített könyvtár sikeresen átkerült helyileg:

Átvitel a sávszélesség-korláttal

Futtassa a következő „rsync” parancsot a –bwlimit kapcsolóval 100 értékkel, hogy az /etc/passwd fájlt helyileg átvigye a temp mappába:

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

A következő kimenet azt mutatja, hogy a passwd fájl átvitele sikeres volt:

A fájl és a mappa rekurzív átvitele

Futtassa a következő „rsync” parancsot az –rv kapcsolóval, hogy a tesztmappát helyileg a test_bak mappába vigye át:

rsync -rv test/ test_bak/

A következő kimenet azt mutatja, hogy a tesztmappa sikeresen átkerült a test_bak mappába:

Átvitel a minimális méretkorláttal

A fájlok és mappák átvitele az „rsync” paranccsal korlátozható a –min-size opcióval, amellyel beállíthatja a fájlok és mappák átvitelének minimális méretkorlátját. Futtassa az alábbi „ls -la tempdir” parancsot a mappa egyes fájljainak és mappáinak méretének ellenőrzéséhez. Ezután futtassa az „rsync” parancsot a tempdir mappa tartalmának a tempdir_bak mappába történő átviteléhez a minimális méretkorlátozással.

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

A következő kimenet azt mutatja, hogy két olyan fájl létezik a tempdir mappában, amelyek megfelelnek a minimális méretnek. Ezek a „ping1.bash” (248 bájt) és a „test.txt” (34504 bájt). Ezek a fájlok átkerülnek a tempdir_bak mappába, és a tempdir mappa többi fájlja kimarad:

Átvitel a maximális méretkorláttal

A fájlok és mappák átvitele az „rsync” paranccsal korlátozható a –max-size opcióval, amellyel beállíthatja az átviteli fájlok és mappák maximális méretkorlátját. Futtassa az alábbi „ls -la temp” parancsot a mappa egyes fájljainak és mappáinak méretének ellenőrzéséhez. Ezután futtassa az „rsync” parancsot a temp mappa tartalmának a maximális méretkorlátozással rendelkező temp_bak mappába történő átviteléhez.

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

A következő kimenet azt mutatja, hogy négy olyan fájl található az ideiglenes mappában, amelyek megfelelnek a maximális méretkorlátnak. Ezek a „courses.txt” (65 bájt), az „employees.csv” (361 bájt), a „ping1.bash” (248 bájt) és a „ping2.bash” (244 bájt). Ezek a fájlok átkerülnek a temp_bak mappába, és a többi fájl a temp mappában kimarad:

Vigye át az adott típusú fájlokat

Az átvitelre kerülő fájl típusát úgy állíthatja be, hogy megemlíti a fájl kiterjesztését az „rsync” parancsban. Futtassa a következő „rsync” parancsot a temp mappa összes szöveges fájljának a mydir mappába való átviteléhez. Itt a szövegfájl kiterjesztése „*.txt”-vel van jelölve:

rsync -v temp/*.txt mydir/

A következő kimenet azt mutatja, hogy két szöveges fájl, a „courses.txt” és a „test.txt” átkerül a mydir mappába, a temp mappa többi fájlja pedig kimarad:

Jelenítse meg a forrás- és a célfájlok közötti különbségeket

Amikor a fájlokat vagy mappákat helyileg vagy távolról egyik helyről egy másik helyre viszi át, mindkét hely ugyanazokat a fájlokat vagy mappákat tartalmazhatja. A forrás és a cél közötti különbségek az átvitel során az -i kapcsolóval az “rsync” paranccsal vizsgálhatók. Futtassa a következő „cat” parancsokat a forrás és a célfájl tartalmának ellenőrzéséhez az átvitel előtt. Itt a „courses.txt” fájl átkerül a temp mappába.

macska tanfolyamok.txt
cat temp/courses.txt
rsync -avi tanfolyamok.txt temp/

A következő kimenet azt mutatja, hogy a forrás és a cél „courses.txt” fájlja kissé eltér. Az „rsync” parancs kimenete megmutatja a fájlok közötti különbséget:

Szinkronizálja az adatokat száraz módban

Ha tudni szeretné, hogy az „rsync” parancs mely fájlokat és mappákat helyezi át a tényleges átvitel előtt, jobb, ha az „rsync” parancsot a –dry-run vagy az –n kapcsolóval futtatja. Ha az „rsync” parancsot ezzel a beállítással hajtják végre, akkor ellenőrzi, hogy mely fájlok vagy mappák kerülnek átmásolásra a forrásmappából a célmappába, de a célmappát változatlanul hagyja. Futtassa az „ls –la Department.json” fájlt a fájl méretének ellenőrzéséhez. Ezután futtassa az „rsync” parancsot a –dry-run móddal, hogy ellenőrizze a „department.json” fájl átvitelét a temp mappába.

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

A következő kimenet azt mutatja, hogy a „department.json” fájl mérete 1172 bájt. A fájl mérete 1172 bájtot mutat, miután végrehajtotta az „rsync” parancsot a –dry-run kapcsolóval:

Fájlok felvétele vagy kizárása az átvitel során

Szűrheti a fájl típusát a forrás helyről a célhelyre történő átvitelkor az –include és –exclude opciókkal. Az „optionssinclude” opció a forrásból a célba továbbított fájlok kiterjesztésének meghatározására szolgál. Az –exclude paraméterrel határozható meg azon fájlok kiterjesztése, amelyek nem kerülnek át a forrásból a célba.

Futtassa az alábbi „ls temp” mappát a temp mappa tartalmának ellenőrzéséhez. Ezután futtassa az „rsync” parancsot az –include és –exclude paraméterekkel. A parancs szerint a temp mappa összes CSV-fájlja átkerül a fájlok mappába, és a temp mappa összes szöveges fájlja kimarad az átvitelkor. Ezután futtassa az „ls files” parancsot, hogy ellenőrizze, mely fájlok kerülnek át az ideiglenes mappából a fájlok mappába.

ls hőm
rsync -a temp/ files/ --include=*.csv --exclude=*.txt
ls fájlokat

A következő kimenet azt mutatja, hogy a temp mappa két CSV-fájlt, két szövegfájlt és két BASH-fájlt tartalmaz. A fájlmappa üres az átvitel előtt, és két CSV-fájl és két BASH-fájl átvitele megtörténik:

Az átvitel után törölje a forrásfájlokat és mappákat

Az előző „rsync” parancsban a forrásfájlok és mappák a célhelyre való átvitel után a forrás helyén maradnak. Néha azonban szükség van a fájlok és mappák végleges átvitelére a célhelyre. Ezt a feladatot a –remove-source-files kapcsolóval lehet elvégezni az „rsync” paranccsal. Futtassa az „ls” parancsot az aktuális hely összes fájljának és mappájának ellenőrzéséhez. Futtassa az „ls temp” parancsot a temp mappa fájljainak és mappáinak ellenőrzéséhez. Ezután futtassa az „rsync” parancsot a –remove-source-files opcióval, hogy az átvitel befejezése után törölje a forráshely fájljait és mappáit. Futtassa újra az „ls” parancsot, hogy ellenőrizze, hogy a forrásfájl eltávolítva van-e a forrás helyéről.

ls
ls hőm
rsync ployers.csv temp/ --remove-source-files
ls

A következő kimenet azt mutatja, hogy az aktuális hely „employees.csv” fájlja átkerül a temp mappába, és az „employees.csv” fájl eltávolításra kerül a forrás helyéről az átvitel után:

Következtetés

Az „rsync” egy nagyon hasznos eszköz a Linuxon, amely megkönnyíti a fájlok és mappák egyik helyről a másikra történő átvitelét különböző lehetőségek használatával. Az „rsync” paranccsal a fájlok és mappák tömörítéssel, a fájlok és mappák méretének beállításával, a fájltípus beállításával, a sávszélesség korlátozásával stb. ezt az oktatóanyagot. Ez az oktatóanyag segít a Linux-felhasználóknak abban, hogy megfelelően ismerjék az „rsync” parancs alapvető használatát Linuxon.