Zálohování Složky /home v Linuxu: Efektivní Přístup

V předchozím článku jsem se podrobněji zaměřil na zálohování systémového souborového systému v Linuxu. Dnes se stručně podíváme na to, jak jednoduše zálohovat složku /home.

Program TimeShift, který byl zmíněn dříve, automaticky nezálohuje složku /home. Tento program se soustředí na systémové části souborového systému a záměrně tuto uživatelskou složku vynechává. Samozřejmě, je možné toto chování změnit v nastavení filtrů, avšak dnes se zaměříme na individuální zálohování složky /home, které může být pro mnoho uživatelů vhodnější.

Složka /home v Linuxu obsahuje vše, co souvisí s individuálním nastavením uživatele. Zde se ukládají dokumenty, videa, obrázky a hudba, stejně jako specifická nastavení aplikací, přístupové klíče a další důležitá data. Zálohování této složky může být prováděno individuálně a častěji než samotného systému, například každý večer.

Pro zálohování složky /home na mém produkčním zařízení používám následující jednoduchý shellový skript, který si podrobněji vysvětlíme.

#!/bin/bash

echo ",./"
echo "Zálohování zahájeno: $(date)"

rsync -a \
--exclude '.cache/*' \
--exclude 'Cache/*' \
--exclude 'cache/*' \
--exclude 'Android/Sdk/*' \
--exclude 'GPUCache/*' \
--exclude 'GrShaderCache/*' \
--exclude 'GraphiteDawnCache/*' \
--exclude 'DawnGraphiteCache/*' \
--exclude 'ShaderCache/*' \
--exclude 'component_crx_cache/*' \
--exclude 'Stažené' \
--exclude 'temp' \
-e 'ssh -p 7922' \
/home/ \
backupagent@192.168.79.11:/volume1/NetBackup/kubuntu/home/
echo
echo "Velikost zálohy:"
ssh -p 7922 backupagent@192.168.79.11 "du -sh /volume1/NetBackup/kubuntu/home/"
echo
echo "Dostupné místo na NAS:"
ssh -p 7922 backupagent@192.168.79.11 "df -h"
echo
echo "Zálohování dokončeno: $(date)"
echo "/.,"

Tento skript pomocí příkazu rsync -a synchronizuje složku /home do vzdáleného cílového umístění /volume1/NetBackup/kubuntu/home/, přičemž v cílovém umístění nikdy nemaže soubory, které byly odstraněny v lokálním umístění.

To znamená, že v cílovém umístění se neustále "hromadí" nové soubory a stávající soubory se přepisují v případě, že došlo ke změně atributů souboru. V podstatě se jedná o jednosměrnou synchronizaci, která uchovává odstraněné soubory v cílovém úložišti, což je právě to, co od tohoto řešení očekáváme.

Pokud byste preferovali přesnou 1:1 synchronizaci, můžete jednoduše přidat přepínač --delete k příkazu rsync. Tím by skript vypadal takto: rsync -a --delete ... pokračování skriptu ...

Při archivaci pomocí rsync se kontroluje existence souborů a jejich změny tak, že se porovnávají atributy souborů mezi zdrojovým a cílovým umístěním. Existují tři hlavní způsoby, jak rsync zjistí, zda je soubor změněn nebo již existuje:

  1. Podle času poslední modifikace a velikosti (výchozí chování): rsync zkontroluje, zda se čas poslední změny a velikost souboru na zdrojovém a cílovém umístění shodují. Pokud jsou stejné, předpokládá se, že soubor se nezměnil, a není přepsán.
  2. Pomocí kontrolního součtu (--checksum): Pokud použijete přepínač --checksum, rsync bude vypočítávat kontrolní součet pro každý soubor na obou stranách a porovnávat je. Tento přístup je přesnější, ale výrazně pomalejší, protože kontrolní součet se musí počítat pro každý soubor.
  3. Kombinace času a velikosti s kontrolním součtem: V některých případech můžete použít rsync tak, aby nejprve porovnával čas a velikost (rychlejší kontrola), a pak jen pro podezřelé soubory přidal kontrolu součtem, což je méně výpočetně náročné.

Pro archivaci se typicky používá první varianta, jelikož je rychlá a poskytuje dostatečnou přesnost pro většinu případů.

Automatizace Zálohování

Jak spouštět tento skript pravidelně, například každé pondělí a středu?

Spusťte příkaz:

sudo crontab -e

A přidejte následující řádek:

5 0 * * 1,3 /home/tomas/projects/bash/rsync_backups/home_backup.sh >> /var/log/rsync_backups.log 2>&1

Co je Cron Démon?

Cron démon je služba, která automaticky spouští naplánované úlohy v určený čas. Časová specifikace se udává pomocí řetězce na začátku příkazu, který si můžete ověřit na různých online nástrojích.

Příkaz sudo crontab -e otevře editor pro definici úloh pro systémového uživatele root. V tomto případě jsem naplánoval spuštění skriptu home_backup.sh, jehož výstup je přesměrován do logovacího souboru pro pozdější kontrolu.

Tato definice zajistí, že skript bude spuštěn každý den, pět minut po půlnoci v pondělí a ve středu. To umožňuje pravidelné zálohování, pokud je zařízení připojeno k síti. V případě potřeby zálohování mimo kancelář může být užitečná firemní VPN, která zajistí trvalou dostupnost interní sítě.

Doufám, že tento článek přispěje k lepšímu pochopení procesu individuálního zálohování složek v Linuxu.

Líbil se vám obsah?

Klikněte na hvězdičky pro hodnocení!

Průměrné hodnocení: 5 / 5. Počet hodnocení: 1

Zatím nehodnoceno! Buďte první!

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *