Oktatóanyagok > Hogyan lehet beállítani és ütemezni időszakos biztonsági mentést az Rsync-kel?

Hogyan lehet beállítani és ütemezni időszakos biztonsági mentést az Rsync-kel?

Közzétéve: 23 január 2020

Backup Storage Ubuntu

Az Rsync (távoli szinkronizálás) egy eszköz, amellyel fájlokat és mappákat másolhat és szinkronizálhat ugyanazon kiszolgálón vagy különböző, Linux operációs rendszert futtató gépeken.

Ami az Rsync-et megkülönbözteti a klasszikus „másolás és beillesztés” folyamatától az, hogy ez az eszköz automatikusan felismeri, hogy mely dokumentumok különböznek egymástól a két mappa között, annak érdekében, hogy felgyorsítsák a másolási folyamatot a forrásmappából a célmappába.

Ebben a cikkben megismerheti az Rsync telepítését, konfigurálását és használatát az Ubuntu 18.04 rendszeren a fájlok és mappák szinkronizálása és a szerver időszakos biztonsági másolatának ütemezése céljából.

Telepítés

Az rsync csomagok elérhetők a hivatalos Ubuntu csomagtárban (repository). Telepítéséhez írja be a következőt:

$ sudo apt install rsync

Ezt követően kövesse az alábbi szintaxist:

$ sudo rsync options /path/source/ /path/destination/

A rendelkezésre álló lehetőségek a következők:

  • -v: a másolt fájlok és mappák megjelennek a shellben,

  • -r: a mappák és azok tartalmának másolására,

  • -h: a másolt fájlok méretének bájtban történő bemutatása helyett egy könnyen olvasható formátum jelenik meg (14.167.396 bájt helyett 14.17 MB lesz látható),

  • -z: az átvitt adatok tömörítésére,

  • -a: megmutatja a fájl eredeti információit, például időbélyeg, engedélyek, tulajdonos stb.,

  • -u: másoláskor,

  • --delete: az rsync törli azokat a fájlokat a célmappából, amelyek nincsenek a forrásmappában,

  • --exclude: bizonyos fájlokat vagy mappákat másoláskor figyelmen kívül hagynak,

  • --progress: mutatja a másolási folyamat százalékát és a hátralévő időt,

  • --existing: csak a célmappában már létező fájlok kerülnek másolásra.

Két mappa szinkronizálása ugyanazon a számítógépen

Az egyik mappából a másikba történő másoláshoz az "rsync" parancs mögé be kell írnia a forrásmappa (ahonnan az elemek másolva vannak) és a célmappa útvonalát. Függetlenül attól, hogy a másolni kívánt mappa egyéb mappákat is tartalmazhat, ajánljuk az "-r" opció hozzáadását a parancshoz:

 $ sudo rsync -r path/source path/destination

A teljes "forrás" mappát a "cél" mappába másolja.

 $ sudo rsync -r ~/source/ ~/destination

A "forrás" mappa tartalmát a "cél" mappába másolja.

Vigyázzon a két parancs közötti különbségről: ha a forrásmappa után beírja a "/" karaktert, azzal utasítást ad a rendszernek, hogy másolja át a mappában található fájlokat.

A „/” karakter bevitele nem jelenti a teljes mappa kiválasztását, következésképpen a forrásmappa másolatának létrehozását sem a célmappában.

Fájlok másolása egyetlen formátumban

Az Rsync a fájltípusok szerinti másolást is engedélyezi a formátum vagy a név megadásával.

Feltételezve, hogy a fájlok "pdf" formátumban vannak, az összes ebben a formátumban található fájl átmásolható az alábbi parancs alapján:

$ sudo rsync path/source_folder/*.pdf path/destination_folder

A "*.pdf" kifejezés használatával kifejezetten kérte az "összes .pdf fájl" másolatát.

Fájlok másolása SSH-protokollon keresztül két gép között

Az SSH protokollt arra is használhatja, hogy fájljait és mappáit egyik számítógépről a másikra másolja. A protokoll használata garantálja, hogy az átvitel során az összes fájl titkosítva legyen, amik így másokra számára olvashatatlanok lesz.

A parancshoz szükség van az "-e ssh" opcióra, amelyet a forrás- és a célgép útvonala követ.

$ sudo rsync -e ssh path/source/ user@IP_machine:/path/destination/

A célgéphez hozzáférő felhasználó jelszavához szükség lesz a művelet befejezéséhez.

Fájlok másolása méret alapján

Az rsync a másolandó fájlokat a lemezen elfoglalt méret alapján is képes kiszűrni.

$ sudo rsync --max-size=15k path/source_folder/*.* path/destination_folder/*.*

A fenti parancs szerint csak a 15 KB-nál kisebb fájlokat másoljuk át, a nagyobb fájlokat nem veszi figyelembe.

$ sudo rsync --min-size=20k ~/source_folder/*.* ~/destination_folder/*.*

A fenti parancs szerint csak a 20 KB-nál nagyobb fájlokat másolja, a kisebb fájlokat nem veszi figyelembe.

Fájlok kizárása a másolásból kiterjesztés alapján

Ha nem akar átmásolni néhány fájltípust, akkor a „--exclude” címkével kizárhat néhány fájlt a kiterjesztés alapján a másolásból.

Az alábbi példában a PDF formátumú fájlokat nem másolja át a forrásmappából a célmappába.

$ sudo rsync -r --exclude="*.pdf" path/source_folder/ path/destination_folder

Tartalom eltávolítása a forrásmappából az átvitel után

Hasonlóképpen a normál "kivágás és beillesztés" művelethez, az rsync használatával is áthelyezhetők a fájlok egy forrásmappából egy célmappába. Ebben az esetben a fájlokat a célmappába másolja, majd eltávolítja a forrásmappából.

$ sudo rsync -r --remove-source-files path/source_folder path/destination_folder

Az átviteli sebesség határának beállítása

Ha hálózaton keresztül másol, lehetséges, hogy be kell állítania a fájlok feltöltési sebességi korlátját. Ebben az esetben használja a "--bwlimit = KBPS" címkét, helyettesítve a "KBPS" -et a kívánt átviteli sebességgel.

$ sudo rsync --bwlimit=KBPS -r ssh source_path/folder user@IP_receiver:/destination_path

Cserélje ki a "KBPS" értékét a maximális átviteli sebesség értékére, KB/s-ban kifejezve (2048 KB/s=2 MB/s)

Időszakos és automatikus másolatok készítése

Abban az esetben, ha rsync-t használ biztonsági másolat készítéséhez, de nem akarja minden alkalommal egyesével begépelni a parancsokat, van egy tökéletes eszköz az Ön számára: ez a Cron.

Az Ubuntu 18.04-ben már jelen lévő szolgáltatás lehetővé teszi bizonyos "szabályok" beállítását egyes parancsok időszakos ismétlésére.

A szabályok létrehozásának és az automatikus másolási folyamat beállításának megkezdéséhez írja be a következőt:

$ sudo crontab -e

Ezt követően megnyílik egy szövegszerkesztő, ahol megadhatja, hogy melyik parancsot kell rendszeresen megismételni. Miután beállította a szabályokat, mentse el és zárja be a programot.

Hogyan állíthat be egy crontabot?

A crontab írásákor pontos szintaxist kell követnie, az alábbu 6 paraméter közül választva:

 m h dom mon dow command
  • m: percek (0-59)

  • h: órák (0-23)

  • dom: napok (1-31)

  • mon: hónapok (1-12)

  • dow: a hét napjai (0:sunday - 6:saturday)

  • command: parancs a végrehajtáshoz


Példák a lehetséges konfigurációkra:

 30 * * * * rsync path/source/*.pdf path/destination

(minden hónapban, minden nap és minden órában, 30 percenként, az összes ".pdf" fájlt a forrásmappából a célmappába másolja)

*/2 * * * * rsync path/source/*.pdf path/destination 

(az összes "pdf" fájlt, amely a célmappában található átmásolja 2 percenként a forrásmappába, a hónap minden napján)

50 8 * * 1,3 rsync path/source/*.pdf path/destination 

(a .pdf fájlok másolásának parancsát a célmappából a forrásmappába hétfőtől szerdáig 8:50-kor hajtja végre)

Ezt követően szerkessze a crontab-ot az alábbi módon:

A szerkesztőfelület mentése és bezárása után a crontabs lista megtekintéséhez írja be a következőt:

$ sudo crontab -l