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žeme 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ě obsahu. V podstatě se jedná o jednosměrnou synchronizaci, která uchovává odstraněné soubory ve vzdáleném 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 ...

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.

Napsat komentář

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