Vyhledávání na webu

Rsnapshot (Rsync Based) – Místní/vzdálený nástroj pro zálohování souborového systému pro Linux


rsnapshot je open source místní/vzdálený nástroj pro zálohování souborového systému byl napsán v jazyce Perl, který využívá sílu < ProgramRsync a SSH pro vytváření plánovaných přírůstkových záloh souborových systémů Linux/Unix, přičemž zabírají pouze prostor jedna úplná záloha plus rozdíly a tyto zálohy uchovávejte na místním disku na jiném pevném disku, externím USB klíčence , disk připojený přes NFS nebo jednoduše přes síť do jiného počítače přes SSH.

Tento článek ukáže, jak nainstalovat, nastavit a používat rsnapshot k vytváření přírůstkových hodinových, denních, týdenních a měsíční místní zálohy i vzdálené zálohy. Chcete-li provést všechny kroky v tomto článku, musíte být root.

Krok 1: Instalace Rsnapshot Backup v Linuxu

Instalace rsnapshot pomocí Yum a APT se může mírně lišit, pokud používáte Red Hat a Distribuce založené na Debianu.

Na RHEL/CentOS

Nejprve budete muset nainstalovat a povolit úložiště třetí strany s názvem EPEL. Chcete-li nainstalovat a povolit ve svých systémech RHEL/CentOS, postupujte podle níže uvedeného odkazu. Uživatelé Fedory nevyžadují žádné speciální konfigurace úložiště.

  1. Nainstalujte a povolte úložiště EPEL v RHEL/CentOS 6/5/4

Jakmile budete mít věci nastavené, nainstalujte rsnapshot z příkazového řádku, jak je znázorněno.

yum install rsnapshot
Na Debian/Ubuntu/Linux Mint

Ve výchozím nastavení je rsnapshot součástí repozitářů Ubuntu, takže jej můžete nainstalovat pomocí příkazu apt-get, jak je znázorněno.

apt-get install rsnapshot

Krok 2: Nastavení přihlášení SSH bez hesla

Chcete-li zálohovat vzdálené servery Linux, váš zálohovací server rsnapshot se bude moci připojit přes SSH bez hesla. Chcete-li toho dosáhnout, budete muset vytvořit veřejný a soukromý klíč SSH k ověření na serveru rsnapshot. Pomocí níže uvedeného odkazu vygenerujte veřejný a soukromý klíč na vašem záložním serveru rsnapshot.

  1. Vytvořte přihlášení SSH bez hesla pomocí SSH Keygen

Krok 3: Konfigurace Rsnapshot

Nyní budete muset upravit a přidat některé parametry do konfiguračního souboru rsnapshot. Otevřete soubor rsnapshot.conf pomocí editoru vi nebo nano.

vi /etc/rsnapshot.conf

Dále vytvořte záložní adresář, kam chcete ukládat všechny své zálohy. V mém případě je umístění mého záložního adresáře „/data/backup/ “. Chcete-li nastavit umístění zálohy, vyhledejte a upravte následující parametr.

snapshot_root			 /data/backup/

Odkomentujte také řádek „cmd_ssh“, aby bylo možné provádět vzdálené zálohy přes SSH. Chcete-li řádek odkomentovat, odstraňte „#“ před následujícím řádkem, aby rsnapshot mohl bezpečně přenést vaše data na záložní server.

cmd_ssh			/usr/bin/ssh

Dále se musíte rozhodnout, kolik starých záloh si chcete ponechat, protože rsnapshot netušil, jak často chcete snímky pořizovat. Musíte určit, kolik dat se má uložit, přidat intervaly, které se mají uchovávat, a kolik z nich.

Výchozí nastavení je dost dobré, ale přesto bych chtěl, abyste povolili „měsíční“ interval, abyste mohli mít i dlouhodobější zálohy. Upravte prosím tuto sekci tak, aby vypadala podobně jako níže uvedená nastavení.

#########################################
          BACKUP INTERVALS            #
Must be unique and in ascending order #
i.e. hourly, daily, weekly, etc.      #
#########################################

interval        hourly  6
interval        daily   7
interval        weekly  4
interval        monthly 3

Další věc, kterou musíte upravit, je proměnná „ssh_args“. Pokud jste změnili výchozí port SSH (22) na něco jiného, musíte zadat číslo portu vašeho vzdáleného zálohovacího serveru.

ssh_args		-p 7851

Nakonec přidejte místní a vzdálené záložní adresáře, které chcete zálohovat.

Zálohujte místní adresáře

Pokud jste se rozhodli zálohovat své adresáře lokálně na stejný počítač, bude záznam zálohy vypadat takto. Například zálohuji své adresáře /tecmint a /etc.

backup		/tecmint/		localhost/
backup		/etc/			localhost/
Zálohování vzdálených adresářů

Pokud byste chtěli zálohovat adresáře vzdáleného serveru, musíte rsnapshotu sdělit, kde je server a které adresáře chcete zálohovat. Zde dělám zálohu adresáře mého vzdáleného serveru „/home“ v adresáři „/data/backup“ na serveru rsnapshot.

backup		 [email :/home/ 		/data/backup/

Čtěte také:

  1. Jak zálohovat/synchronizovat adresáře pomocí nástroje Rsync (Remote Sync).
  2. Jak přenášet soubory/složky pomocí příkazu SCP
Vyloučit soubory a adresáře

Zde vyloučím vše a pak teprve konkrétně definuji, co chci zálohovat. Chcete-li to provést, musíte vytvořit soubor vyloučení.

vi /data/backup/tecmint.exclude

Nejprve získejte seznam adresářů, které chcete zálohovat, a přidejte ( – * ), abyste vyloučili vše ostatní. Tím se zálohuje pouze to, co jste uvedli v souboru. Můj soubor vyloučení vypadá podobně jako níže.

+ /boot
+ /data
+ /tecmint
+ /etc
+ /home
+ /opt
+ /root
+ /usr
- /usr/*
- /var/cache
+ /var
- /*

Použití možnosti vyloučit soubor může být velmi složité kvůli použití rekurze rsync. Takže můj výše uvedený příklad nemusí být to, co hledáte. Dále přidejte soubor vyloučení do souboru rsnapshot.conf.

exclude_file    /data/backup/tecmint.exclude

Konečně jste téměř hotovi s počáteční konfigurací. Než budete pokračovat, uložte konfigurační soubor „/etc/rsnapshot.conf“. Existuje mnoho možností k vysvětlení, ale zde je můj vzorový konfigurační soubor.

config_version  1.2
snapshot_root   /data/backup/
cmd_cp  /bin/cp
cmd_rm  /bin/rm
cmd_rsync       /usr/bin/rsync
cmd_ssh /usr/bin/ssh
cmd_logger      /usr/bin/logger
cmd_du  /usr/bin/du
interval        hourly  6
interval        daily   7
interval        weekly  4
interval        monthly 3
ssh_args	-p 25000
verbose 	2
loglevel        4
logfile /var/log/rsnapshot/
exclude_file    /data/backup/tecmint.exclude
rsync_long_args --delete        --numeric-ids   --delete-excluded
lockfile        /var/run/rsnapshot.pid
backup		/tecmint/		localhost/
backup		/etc/			localhost/
backup		[email :/home/ 		/data/backup/

Všechny výše uvedené možnosti a vysvětlení argumentů jsou následující:

  1. config_version 1.2=Verze konfiguračního souboru
  2. snapshot_root=Cíl zálohy pro ukládání snímků
  3. cmd_cp=Cesta ke kopírování příkazu
  4. cmd_rm=Cesta k odstranění příkazu
  5. cmd_rsync=Cesta k rsync
  6. cmd_ssh=Cesta k SSH
  7. cmd_logger=Cesta k rozhraní příkazů shellu k syslogu
  8. cmd_du=Cesta k příkazu využití disku
  9. interval za hodinu=Kolik hodinových záloh se má uchovávat.
  10. interval denně=Kolik denních záloh se má uchovávat.
  11. interval týdně=Kolik týdenních záloh se má uchovávat.
  12. interval měsíčně=Kolik měsíčních záloh se má uchovávat.
  13. ssh_args=volitelné argumenty SSH, jako je jiný port (-p )
  14. verbose=samovysvětlující
  15. loglevel=Samovysvětlující
  16. soubor protokolu=Cesta k souboru protokolu
  17. exclude_file=cesta k vyloučenému souboru (bude vysvětleno podrobněji)
  18. rsync_long_args=Dlouhé argumenty k předání rsync
  19. lockfile=Samovysvětlující
  20. záloha=úplná cesta k tomu, co se má zálohovat, následovaná relativní cestou umístění.

Krok 4: Ověřte konfiguraci Rsnapshot

Jakmile dokončíte veškerou konfiguraci, je čas ověřit, zda vše funguje podle očekávání. Spuštěním následujícího příkazu ověřte, zda má vaše konfigurace správnou syntaxi.

rsnapshot configtest

Syntax OK

Pokud je vše správně nakonfigurováno, obdržíte zprávu „Syntaxe OK “. Pokud se zobrazí nějaké chybové zprávy, znamená to, že je před spuštěním rsnapshot musíte opravit.

Dále proveďte zkušební provoz na jednom ze snímků, abyste se ujistili, že generujeme správné výsledky. Použijeme parametr „hourly“ k provedení testovacího běhu pomocí argumentu -t (test). Tento níže uvedený příkaz zobrazí podrobný seznam věcí, které provede, aniž by je skutečně provedl.

rsnapshot -t hourly
Ukázkový výstup
echo 2028 > /var/run/rsnapshot.pid 
mkdir -m 0700 -p /data/backup/ 
mkdir -m 0755 -p /data/backup/hourly.0/ 
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded /home \
    /backup/hourly.0/localhost/ 
mkdir -m 0755 -p /backup/hourly.0/ 
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded /etc \
    /backup/hourly.0/localhost/ 
mkdir -m 0755 -p /data/backup/hourly.0/ 
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
    /usr/local /data/backup/hourly.0/localhost/ 
touch /data/backup/hourly.0/

Poznámka: Výše uvedený příkaz říká rsnapshot, aby vytvořil „hodinovou“ zálohu. Ve skutečnosti vytiskne příkazy, které provede, když jej skutečně provedeme.

Krok 5: Ruční spuštění Rsnapshot

Po ověření vašich výsledků můžete odstranit možnost „-t “, aby se příkaz skutečně spustil.

rsnapshot hourly

Výše uvedený příkaz spustí zálohovací skript s veškerou konfigurací, kterou jsme přidali do souboru rsnapshot.conf a vytvoří adresář „backup“ a poté pod ním vytvoří adresářovou strukturu který organizuje naše soubory. Po spuštění výše uvedeného příkazu můžete ověřit výsledky tak, že přejdete do záložního adresáře a vypíšete adresářovou strukturu pomocí příkazu ls -l, jak je znázorněno.

cd /data/backup
ls -l

total 4
drwxr-xr-x 3 root root 4096 Oct 28 09:11 hourly.0

Krok 6: Automatizace procesu

Chcete-li tento proces zautomatizovat, musíte naplánovat spouštění rsnapshot v určitých intervalech z Cron. Ve výchozím nastavení je rsnapshot dodáván se souborem cron pod „/etc/cron.d/rsnapshot“, pokud neexistuje, vytvořte jej a přidejte k tomu následující řádky.

Ve výchozím nastavení jsou pravidla komentována, takže pro aktivaci těchto hodnot musíte odstranit „# “ před sekcí plánování.

This is a sample cron file for rsnapshot.
The values used correspond to the examples in /etc/rsnapshot.conf.
There you can also set the backup points and many other things.
#
To activate this cron file you have to uncomment the lines below.
Feel free to adapt it to your needs.

0     */4    * * *    root    /usr/bin/rsnapshot hourly
30     3     * * *    root    /usr/bin/rsnapshot daily
0      3     * * 1    root    /usr/bin/rsnapshot weekly
30     2     1 * *    root    /usr/bin/rsnapshot monthly

Dovolte mi přesně vysvětlit, co výše uvedená pravidla cron dělají:

  1. Spouští se každé 4 hodiny a vytváří hodinový adresář v adresáři /backup.
  2. Spouští se denně v 3:30 a vytváří denní adresář v adresáři /backup.
  3. Spouští se týdně každé pondělí v 3:00 a vytvoří týdenní adresář pod /backup adresář.
  4. Spouští se každý měsíčně v 2:30 a vytvoří měsíční adresář v adresáři /backup.

Chcete-li lépe porozumět tomu, jak fungují pravidla cron, doporučuji vám přečíst si náš článek, který to popisuje.

  1. 11 Příklady plánování programu Cron

Krok 7: Zprávy Rsnapshot

rsnapshot poskytuje šikovný malý reportovací perl skript, který vám pošle e-mailové upozornění se všemi podrobnostmi o tom, co se stalo během zálohování dat. Chcete-li nastavit tento skript, musíte skript zkopírovat někam pod „/usr/local/bin“ a nastavit jej jako spustitelný.

cp /usr/share/doc/rsnapshot-1.3.1/utils/rsnapreport.pl /usr/local/bin
chmod +x /usr/local/bin/rsnapreport.pl

Dále přidejte parametr „–stats“ do souboru „rsnapshot.conf“ do sekce dlouhých argumentů rsync.

vi /etc/rsnapshot.conf
rsync_long_args --stats	--delete        --numeric-ids   --delete-excluded

Nyní upravte pravidla crontab, která byla přidána dříve, a zavolejte skript rsnapreport.pl k předání zpráv na zadanou e-mailovou adresu.

This is a sample cron file for rsnapshot.
The values used correspond to the examples in /etc/rsnapshot.conf.
There you can also set the backup points and many other things.
#
To activate this cron file you have to uncomment the lines below.
Feel free to adapt it to your needs.

0     */4    * * *    root    /usr/bin/rsnapshot hourly 2>&1  | \/usr/local/bin/rsnapreport.pl | mail -s "Hourly Backup" [email 
30     3     * * *    root    /usr/bin/rsnapshot daily 2>&1  | \/usr/local/bin/rsnapreport.pl | mail -s "Daily Backup" [email 
0      3     * * 1    root    /usr/bin/rsnapshot weekly 2>&1  | \/usr/local/bin/rsnapreport.pl | mail -s "Weekly Backup" [email 
30     2     1 * *    root    /usr/bin/rsnapshot monthly 2>&1  | \/usr/local/bin/rsnapreport.pl | mail -s "Montly Backup" [email 

Jakmile správně přidáte výše uvedené položky, obdržíte zprávu na vaši e-mailovou adresu podobnou té níže.

SOURCE           TOTAL FILES	FILES TRANS	TOTAL MB    MB TRANS   LIST GEN TIME  FILE XFER TIME
--------------------------------------------------------------------------------------------------------
localhost/          185734	   11853   	 2889.45    6179.18    40.661 second   0.000 seconds

Referenční odkazy

  1. domovská stránka rsnapshot

To je prozatím vše, pokud se během instalace vyskytnou nějaké problémy, napište mi komentář. Do té doby sledujte TecMint, kde najdete další zajímavé články ze světa Open source.