Az „Rsync” parancs előnyei
- 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.
- Támogatja a hiányos átvitelt.
- Kisebb sávszélességet igényel, mert az átvitel során tömöríti az adatokat.
- 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élItt 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
- Egyetlen fájl és mappa helyi átvitele
- Több fájl és mappa helyi átvitele
- Egyetlen fájl és mappa átvitele távolról
- Több fájl és mappa átvitele távolról
- Jelenítse meg az átvitel folyamatát
- Tömörítse az adatokat az átvitel során
- Átvitel a sávszélesség-korláttal
- Fájlok és mappák rekurzív átvitele
- Átvitel a minimális méretkorláttal
- Átvitel a maximális méretkorláttal
- Vigye át az adott típusú fájlokat
- Jelenítse meg a forrás- és a célfájlok közötti különbségeket
- Fájlok felvétele vagy kizárása az átvitel során
- Szinkronizálja az adatokat száraz módban
- 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.txtA 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 --progressA 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 tempdirrsync -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őmrsync --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.txtcat 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.jsonrsync -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őmrsync -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.
lsls 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.