Hledáte spolehlivé a robustní řešení pro zálohování dat v Linuxu? Rsync mám tě pokryto! Tato příručka vás provede kroky k zálohování souborů a adresářů pomocí Rsync v Linuxu.
1. Úvod
Pokud svá data nikdy nezálohujete, protože vše bude fungovat dobře, pak bych řekl, že se mýlíte.
Zeptejte se všech uživatelů Linuxu tam venku, budou sdílet bolest, že nebudou zálohovat svůj systém/data. Jako nováček jsem tuto chybu jednou udělal a naučil jsem se důležitost zálohování.
Existuje spousta nástrojů pro zálohování pro platformy Linux a Unix. Rsync (Remote Sync) je považován za jeden z nejpoužívanějších a nejdůvěryhodnějších zálohovacích nástrojů.
2. Zálohujte soubory a adresáře pomocí Rsync v Linux
Pomocí Rsync můžeme,
- zálohujte celý systém,
- nebo zálohujte jednotlivé soubory a adresáře.
V prvním typu zkopírujeme celý souborový systém Linuxu na externí zařízení nebo síťové sdílení. Tuto kopii můžete použít k uvedení stroje do původního stavu v případě jakéhokoli selhání systému.
Druhým typem je zálohování nebo kopírování pouze vybraných souborů a adresářů. Můžete například zkopírovat důležité konfigurační soubory nebo celý $HOME
adresář a vylučte vše ostatní.
Již jsme vám ukázali, jak zálohovat celý systém Linux pomocí Rsync . Tato příručka se zaměřuje na selektivní zálohování souborů a adresářů pomocí Rsync v Linuxu.
2.1. Výběr paměťového média
V prvním kroku se rozhodněte, kam budete svá data zálohovat. Je to velmi důležité!
Svá data můžete zálohovat na externí pevný disk, cloudové úložiště nebo úložiště připojené k síti (NAS). Jednoduchou a levnou možností je použití externího pevného disku.
Pokud máte ve svém počítači dva samostatné disky, můžete k zálohování dat použít kterýkoli z nich, protože oba nebudou selhat najednou.
Poznámka:
Pokud to se zálohováním myslíte vážně, neukládejte zálohu na stejnou jednotku samotnou. Vždy používejte externí disk, sekundární disk, síťové sdílení a cloudové úložiště atd.
Pro účely předvedení budu používat 1 TB externí pevný disk v této příručce.
2.3. Zálohujte soubory pomocí Rsync
Obecná syntaxe Rsync pro kopírování dat z jednoho umístění do druhého je:
rsync [OPTION…] SRC… [DEST]
Tady,
OPTION
- seznam možností RsyncSRC
- Zdrojový soubor/adresářDEST
- Cíl
Zde je jednoduchý příkaz Rsync pro zálohování nebo kopírování souboru z jednoho umístění do druhého v samotném místním systému.
$ rsync src_file dest_file
Příklady:
$ rsync -auv ostechnix.txt ostechnix-bak.txt
Tady,
-a
- Režim archivace (zachování vlastností souboru a symbolických odkazů)-u
- Přeskočit soubory, které jsou na přijímající straně novější.-v
- Podrobný režim
Výše uvedený příkaz uloží záložní soubor ostechnix-bak.txt
soubor v aktuálním adresáři. Můžete také zadat jiný cílový adresář, jak je uvedeno níže:
$ rsync -auv ostechnix.txt Downloads/ostechnix-bak.txt
Pokud neurčíte cílový název souboru, Rsync použije stejný název zdrojového souboru jako cílový soubor.
Ukládání záložních souborů na stejný disk není ve skutečnosti záloha. Zálohovaná data musíte uložit na externí disk nebo sdílenou síť nebo alespoň do jiného oddílu.
Například následující příkaz zálohuje soubor na můj externí disk:
$ rsync -auv ostechnix.txt /media/karthick/"My Passport"/
Rsync má mnoho pokročilých možností. Podívejte se na následující příklad:
$ rsync -azvhP ostechnix.txt /media/karthick/"My Passport"/
Tento příkaz přenese soubor v archivním (pro zachování atributů) a komprimovaném (zazipovaném) režimu s podrobným a člověkem čitelným ukazatelem průběhu.
2.4. Zálohujte adresáře pomocí Rsync
Místo zálohování jednoho souboru můžete všechny soubory umístit do adresáře a zálohovat tento adresář pomocí Rsync. To se hodí při zrcadlení a synchronizaci dat.
Pro účely této příručky vám ukážu, jak zálohovat adresář HOME pomocí Rsync.
2.4.1. Zálohujte adresář HOME pomocí Rsync
Rsync je nástroj pro přírůstkové kopírování souborů. Význam – synchronizuje pouze nová nebo upravená data ve zdrojovém adresáři (tj. /home
v našem případě) namísto opětovné synchronizace všech dat od začátku.
Chcete-li zálohovat můj $HOME
adresář na můj externí disk, použil jsem následující příkaz:
$ rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/
Pojďme rozebrat výše uvedený příkaz a uvidíme, co jednotlivé možnosti dělají.
- Příznak
-a
je kombinací mnoha možností. Tento příznak se stará o rekurzivní kopírování a zachování atributů, jako je oprávnění k souboru/adresáři, vlastník atd. - Příznak
-v
povolí podrobný režim, který při spuštění příkazu rsync poskytne terminálu více protokolů. - Příznak
-x
omezí rsync na synchronizaci dat v rámci hranic systému souborů. Pokud jste do svého domovského adresáře připojili jakýkoli souborový systém, bude během operace synchronizace přeskočen. - Příznak
-P
je kombinací dvou vlajek. Zobrazí průběh každé synchronizace a ponechá částečně přenesené soubory. - Příznak
--delete
odstraní všechny adresáře a soubory, které nejsou dostupné ve zdroji, ale jsou dostupné v cíli. Musíte být velmi opatrní při používání vlajky. - Příznak
--exclude-from=File
přijímá soubor jako argument. Tento soubor obsahuje seznam souborů a adresářů, které budou rsync ignorovány.
Vytvořil jsem soubor s názvem ignore_list.txt
který obsahuje soubory a adresáře, které je třeba vyloučit.
Ve výše uvedeném příkazu tato část --exclude-from=/home/karthick/Work/Backup/ignore_list.txt
definuje seznam vyloučení.
Zde je obsah ignore_list.txt
soubor:
Seznam položek, které mají být vyloučeny z výše uvedeného obrázku, je můj osobní výběr a pro vás se může lišit. Upravte parametr podle svého prostředí.
Poslední dvě části výše uvedeného příkazu Rsync jsou zdrojové a cílové umístění. V mém případě je zdrojem můj adresář $HOME a cílem je můj externí disk. Nahraďte zdroj a cíl podle svého prostředí.
Pozor: Pokud chcete znát bod připojení pro váš externí disk, spusťte lsblk
příkaz.
$ lsblk sdb 8:16 0 931.5G 0 disk └─sdb1 8:17 0 931.5G 0 part /media/karthick/My Passport
Před spuštěním rsync
poprvé, vždy se doporučuje provést spuštění nasucho . Suchý běh bude simulovat, jaké změny budou provedeny. Použijte stejný příkaz, ale s -n
vlajka.
$ rsync -avxP -n --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/
Ukázkový výstup:
sending incremental file list karthick/ karthick/.bash_history 20,527 100% 0.00kB/s 0:00:00 (xfr#1, ir-chk=1056/1060) karthick/.shutter/ karthick/.shutter/drawingtool.xml 228 100% 4.54kB/s 0:00:00 (xfr#2, ir-chk=1037/1060) karthick/.shutter/profiles/ karthick/Pictures/ karthick/Pictures/Selection_001.png 37,626 100% 349.94kB/s 0:00:00 (xfr#3, to-chk=47/3001) karthick/Pictures/Selection_002.png 25,815 100% 227.12kB/s 0:00:00 (xfr#4, to-chk=46/3001) karthick/Pictures/Selection_003.png 63,275 100% 532.69kB/s 0:00:00 (xfr#5, to-chk=45/3001) karthick/Pictures/Selection_004.png 77,965 100% 581.20kB/s 0:00:00 (xfr#6, to-chk=44/3001) karthick/Pictures/Selection_005.png 75,863 100% 532.99kB/s 0:00:00 (xfr#7, to-chk=43/3001) karthick/Pictures/Selection_006.png 11,628 100% 75.20kB/s 0:00:00 (xfr#8, to-chk=42/3001) karthick/Pictures/Selection_007.png 24,311 100% 150.26kB/s 0:00:00 (xfr#9, to-chk=41/3001) karthick/Work/Backup/ karthick/Work/Backup/home_dir_backup.sh 764 100% 4.34kB/s 0:00:00 (xfr#10, to-chk=20/3001) karthick/Work/Backup/home_dir_backup.sh~ 796 100% 4.37kB/s 0:00:00 (xfr#11, to-chk=19/3001) karthick/Work/Backup/ignore_list.txt 182 100% 1.00kB/s 0:00:00 (xfr#12, to-chk=18/3001) karthick/Work/Backup/ignore_list.txt~ 182 100% 1.00kB/s 0:00:00 (xfr#13, to-chk=17/3001) ... ... ... sent 88,424 bytes received 9,459 bytes 195,766.00 bytes/sectotal size is 3,028,935,519 speedup is 30,944.45 (DRY RUN)
Pokud vše proběhne tak, jak má, odeberte -n
flag a spusťte příkaz k zálohování dat.
$ rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/
V závislosti na velikosti bude první spuštění nějakou dobu trvat.
sending incremental file list karthick/ karthick/.bash_history 20,527 100% 0.00kB/s 0:00:00 (xfr#1, ir-chk=1056/1060) karthick/.shutter/ karthick/.shutter/drawingtool.xml 228 100% 4.54kB/s 0:00:00 (xfr#2, ir-chk=1037/1060) karthick/.shutter/profiles/ karthick/Pictures/ karthick/Pictures/Selection_001.png 37,626 100% 349.94kB/s 0:00:00 (xfr#3, to-chk=47/3001) karthick/Pictures/Selection_002.png 25,815 100% 227.12kB/s 0:00:00 (xfr#4, to-chk=46/3001) karthick/Pictures/Selection_003.png 63,275 100% 532.69kB/s 0:00:00 (xfr#5, to-chk=45/3001) karthick/Pictures/Selection_004.png 77,965 100% 581.20kB/s 0:00:00 (xfr#6, to-chk=44/3001) karthick/Pictures/Selection_005.png 75,863 100% 532.99kB/s 0:00:00 (xfr#7, to-chk=43/3001) karthick/Pictures/Selection_006.png 11,628 100% 75.20kB/s 0:00:00 (xfr#8, to-chk=42/3001) karthick/Pictures/Selection_007.png 24,311 100% 150.26kB/s 0:00:00 (xfr#9, to-chk=41/3001) karthick/Work/Backup/ karthick/Work/Backup/home_dir_backup.sh 764 100% 4.34kB/s 0:00:00 (xfr#10, to-chk=20/3001) karthick/Work/Backup/home_dir_backup.sh~ 796 100% 4.37kB/s 0:00:00 (xfr#11, to-chk=19/3001) karthick/Work/Backup/ignore_list.txt 182 100% 1.00kB/s 0:00:00 (xfr#12, to-chk=18/3001) karthick/Work/Backup/ignore_list.txt~ 182 100% 1.00kB/s 0:00:00 (xfr#13, to-chk=17/3001)… … … sent 3,029,863,865 bytes received 51,335 bytes 53,626,817.70 bytes/sec total size is 3,028,934,994 speedup is 1.00
2.4.2. Vytvořte zálohovací skript
Zapamatovat si dlouhý příkaz může být těžké. Chcete-li se vyhnout psaní dlouhého rsync
příkazu v terminálu, můžete vytvořit jednoduchý BASH skript a zavolat jej, kdykoli budete chtít spustit zálohování.
Vytvořte skript s názvem home_dir_backup.sh
:
$ nano home_dir_backup.sh
Přidejte následující řádky:
#!/usr/bin/env bash # PURPOSE : RSYNC COMMAND TO BACKUP MY HOME DIRECTORY TO EXTERNAL DEVICE.. # REPLACE SOURCE, DESTINATION AND EXCLUDE ACCORDING TO YOUR ENVIRONMENT. rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/
Přidejte, odeberte nebo změňte možnosti Rsync podle vašich požadavků. Změňte také zdrojovou a cílovou cestu za vlastní. Uložte a zavřete soubor.
Udělejte skript spustitelným:
$ chmod +x <path-to-home_dir_backup.sh>
Nyní spusťte skript kdykoli a spusťte zálohu adresáře $HOME:
$ ./path-to-home_dir_backup.sh
Pro snadné zapamatování použijte kratší název skriptu.
Můžete také vytvořit měkký odkaz pro soubor skriptu v /usr/bin
nebo libovolné adresáře specifické pro uživatele, které jsou dostupné v $PATH
proměnná.
2.4.3. Vytvořit alias
Dalším způsobem, jak se vyhnout psaní dlouhých příkazů, je použití aliasů .
Upravte svůj ~/.bashrc
soubor a na konec přidejte následující řádek:
alias backup="rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick / media/karthick/"My Passport"/"
Zdroj bashrc
souboru, aby se změny projevily okamžitě:
$ source ~/.bashrc
Nyní jednoduše spusťte následující příkaz k zálohování adresáře $HOME:
$ backup
Je na vás, abyste se rozhodli, co chcete používat. Buď můžete vytvořit alias, nebo vytvořit skript a spustit rsync spuštěním skriptu. V mém případě jsem vytvořil skript a poté vytvořil alias pro tento skript.
3. Naplánujte zálohování
Můžete použít cron
plánovač pro plánování úloh zálohování tak, aby se spouštěly v určitou dobu v určitý den.
Upravte úlohy cronu aktuálního uživatele pomocí příkazu
$ crontab -e
Definujte plán zálohování. Řekněme například, že chcete spustit zálohování každý den ve 3:00 , použijte následující řádek:
0 3 * * * <rsync-command-to-execute>
V závislosti na vašich požadavcích můžete plánovat denní, týdenní nebo měsíční úlohy.
Pokud jste v Cron Jobs noví, sestavili jsme seznam užitečných příkladů úloh cron pro plánování úloh v Linuxu. Další podrobnosti o použití cronu naleznete v následující příručce.
- Příručka Cron Jobs pro začátečníky
4. Grafická rozhraní Rsync
Pokud jste v Linuxu nováčkem, může být pro vás obtížné porozumět všem možnostem a příznakům Rsync. Bez obav! Pro Rsync je k dispozici několik grafických frontendových nástrojů. Jedním z takových nástrojů je Grsync .
Grsync je jednoduché grafické uživatelské rozhraní pro Rsync. Nemusíte si pamatovat žádné příkazy Rsync a jeho možnosti. Vše můžete dělat pomocí snadno použitelného GUI.
Další podrobnosti naleznete v následující příručce:
- Grsync – jednoduché grafické rozhraní pro Rsync
5. Závěr
V této příručce jsme se podívali na to, jak zálohovat soubory a adresáře pomocí Rsync v Linuxu. Jak můžete vidět, kopírování souborů a adresářů pomocí Rsync je velmi snadné!
Také jsme vám ukázali, jak vytvořit zálohu vašeho domovského adresáře pomocí příkazu rsync a některé způsoby, jak to spustit a naplánovat.
Tuto metodu lze také použít pro libovolnou adresářovou nebo souborovou strukturu v Linuxu pro zálohování dat. Pokud si myslíte, že máte lepší řešení zálohování, rádi bychom to od vás slyšeli prostřednictvím sekce komentářů níže.
Související čtení:
- Obnovit částečně přenesené soubory přes SSH pomocí Rsync
- Jak zálohovat a obnovovat soubory pomocí Deja Dup v Linuxu
- Jak nastavit záložní server pomocí Rsnapshot
- Jak synchronizovat soubory s Unison v systému Linux
- Jak synchronizovat místní a vzdálené adresáře v systému Linux
- Jak synchronizovat soubory a adresáře pomocí Zaloha.sh
- CYA – Nástroj Snímek a obnovení systému pro Linux
- Restic – rychlá, bezpečná a efektivní zálohovací aplikace