Tato příručka vysvětluje, co je Rsnapshot, jak nainstalovat Rsnapshot v Linuxu a jak nastavit záložní server pomocí Rsnapshot v Linuxu.
1. Úvod
Rsnapshot je nástroj pro snímky souborového systému založený na rsync pro Linux a operační systémy podobné Unixu. Umožňuje vám snadno vytvářet pravidelné snímky místních počítačů a vzdálených počítačů přes ssh.
Dobrá věc na rsnapshot je, že široce využívá pevné odkazy kdykoli je to možné, výrazně snížit požadované místo na disku.
Vzhledem k tomu, že rsnapshot uchovává pouze pevný počet snímků, nebude se množství použitého místa na disku neustále zvětšovat.
Rnapshot je bezplatná a open source zálohovací aplikace, která podporuje přírůstkové zálohování. Je celý napsaný v perlu a měl by fungovat na většině systémů podobných Unixu.
Bez dalších okolků pojďme dál a podívejme se, jak nainstalovat, nakonfigurovat a nastavit záložní server pomocí Rsnapshot v Linuxu.
2. Nainstalujte Rsnapshot v Linuxu
Rsnapshot je zabalen pro mnoho distribucí Linuxu.
Nainstalujte Rsnaphot v Alpine Linux:
$ sudo apk add rsnapshot rsync
Nainstalujte Rsnapshot je Arch Linux, EndeavourOS a Manjaro Linux:
$ sudo pacman -S rsnapshot rsync
Nainstalujte Rsnapshot v Debianu, Ubuntu, Linux Mint, Pop_OS!:
$ sudo apt install rsnapshot rsync
Nainstalujte Rsnapshot v CentOS, Fedora, RHEL, AlmaLinux, Rocky Linux:
Rsnapshot není k dispozici ve výchozích úložištích podnikových operačních systémů, jako jsou CentOS, RHEL, AlmaLinux a Rocky Linux. Musíte povolit [EPEL] úložiště, aby bylo možné nainstalovat Rsnapshot.
$ sudo dnf install epel-release
Poté nainstalujte Rsnapshot pomocí příkazu:
$ sudo dnf install rsnapshot rsync
Nainstalujte Rsnapshot do openSUSE:
$ sudo zypper install rsnapshot rsync
3. Nastavte záložní server pomocí Rsnapshot v Linuxu
Pro účely této příručky budu používat dva testovací systémy.
Jeden je záložní server běžící s AlmaLinux 8 a druhý funguje jako klientský systém. Klient běží s desktopem Fedory 34.
Podrobnosti o záložním serveru a klientovi jsou uvedeny níže.
Záložní server:
- OS :AlmaLinux 8 64bitový minimální systém
- IP adresa :192.168.122.25/24
- Kořenový adresář Rsnapshot :/rsnapbackup
- Adresář k zálohování :/home/ostechnix/data/
Klient:
- OS :Fedora Workstation 34
- IP adresa :192.168.225.37/24
- Adresář k zálohování :/home/sk/data/
3.1. Nastavení ověřování SSH bez hesla na záložním serveru
Chcete-li zálohovat soubory vzdáleného klientského systému přes SSH, musíte nastavit ověřování SSH bez hesla pro vzdálené klientské systémy, takže zálohování se automaticky připojí ke klientskému systému bez hesla a zazálohuje klientská data.
Přihlaste se jako root
a vytvořte pár klíčů SSH v našem systému záložního serveru.
# ssh-keygen
Nezadávejte žádné přístupové heslo , protože chceme, aby se tyto systémy mohly vzájemně propojit bez jakéhokoli zásahu uživatele:
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:k/yIpwuk2lqEVxW4O0/6evTjquxCcGffQU0Kgm1ZvPk [email protected] The key's randomart image is: +---[RSA 3072]----+ | o.==. o. | | . =o..... | | ... +. | |....+ o... | |.ooo.o oS. | | o.oo +.E+ | | .o .*..o . | | +....ooo | |o..o===+.. | +----[SHA256]-----+

Dále zkopírujte veřejný klíč SSH do všech vzdálených klientských systémů.
# ssh-copy-id [email protected]
Nahraďte sk
a 192.168.225.37
ve výše uvedeném příkazu s uživatelským jménem a IP adresou vašeho vzdáleného systému. Chcete-li zkopírovat soubor veřejného klíče, zadejte heslo uživatele systému klienta:
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub" /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys [email protected]'s password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh '[email protected]'" and check to make sure that only the key(s) you wanted were added.
Zde 192.168.225.37 je IP adresa mého vzdáleného klientského systému (tj. Fedora Desktop).
Nyní můžete ssh do klientského systému bez jakéhokoli hesla.
Opakováním výše uvedeného příkazu zkopírujte veřejný klíč ssh do všech vašich klientských systémů a nastavte autentizaci bez hesla.
Dále musíme nakonfigurovat Backup server.
3.2. Konfigurace záložního serveru Rsnapshot
Vytvořte kořenový adresář zálohy pro uložení všech záloh vašeho serveru a klientských systémů.
Pro účely této příručky používám /rsnapbackup/
jako kořenový adresář zálohy. Je to adresář, kam budu ukládat všechny zálohy.
Můžete definovat své vlastní umístění pro ukládání záloh.
Vytvořme kořenový záložní adresář na našem záložním serveru příkazem:
# mkdir /rsnapbackup
Dále musíme upravit a aktualizovat kořenový adresář záloh, adresáře, které chcete zálohovat, a intervaly zálohování ve výchozím konfiguračním souboru Rsnapshot /etc/rsnapshot.conf
.
Před úpravou konfigurace se vždy doporučuje vytvořit zálohu výchozího konfiguračního souboru pro případ, že byste potřebovali znovu nakonfigurovat rsnapshot.
# cp /etc/rsnapshot.conf /etc/rsnapshot.conf.bak
Nyní upravte konfigurační soubor rsnapshot pomocí příkazu:
# nano /etc/rsnapshot.conf
Výchozí konfigurace by měla fungovat dobře. Vše, co musíte udělat, je pouze definovat záložní adresáře a intervaly zálohování.
Pozor: Upozorňujeme, že byste měli zadat koncové lomítko na konci názvů adresářů v /etc/rsnapshot.conf
soubor. Řekněme například, že musíte zadat název adresáře jako /rsnapbackup/
, ale ne /rsnapbackup
. Také je třeba mezi prvky/polemi používat tabulátory (nikoli mezery) .
Nejprve nastavíme kořenový adresář záloh, tj. definujeme adresář, kam chceme ukládat zálohy souborového systému. V našem případě budu zálohy ukládat do /rsnapbackup/
adresář.
# All snapshots will be stored under this root directory. # snapshot_root /rsnapbackup/

Opět byste měli použít klávesu TAB mezi snapshot_root prvek a váš záložní adresář.
Poznámka: Rsnapshot není podpora vzdáleného kořenového adresáře snímku přes SSH.
Přejděte trochu dolů a ujistěte se, že následující řádky (označené tučně) jsou bez komentáře:
[...] ################################# # EXTERNAL PROGRAM DEPENDENCIES # ################################# # LINUX USERS: Be sure to uncomment "cmd_cp". This gives you extra features. # EVERYONE ELSE: Leave "cmd_cp" commented out for compatibility. # # See the README file or the man page for more details. # cmd_cp /usr/bin/cp # uncomment this to use the rm program instead of the built-in perl routine. # cmd_rm /usr/bin/rm # rsync must be enabled for anything to work. This is the only command that # must be enabled. # cmd_rsync /usr/bin/rsync # Uncomment this to enable remote ssh backups over rsync. # cmd_ssh /usr/bin/ssh # Comment this out to disable syslog support. # cmd_logger /usr/bin/logger # Uncomment this to specify the path to "du" for disk usage checks. # If you have an older version of "du", you may also want to check the # "du_args" parameter below. # cmd_du /usr/bin/du [...]

Dále musíme definovat intervaly zálohování:
######################################### # BACKUP LEVELS / INTERVALS # # Must be unique and in ascending order # # e.g. alpha, beta, gamma, etc. # ######################################### retain alpha 6 retain beta 7 retain gamma 4 #retain delta 3

Zde zachovejte alfa 6 znamená, že pokaždé rsnapshot alpha spustí, vytvoří nový snímek, otočí staré a zachová posledních šest záloh v adresářích s názvem alpha.0
, alpha.1
,... alpha.5
v kořenovém adresáři Rsnapshot. Potom při příštím spuštění příkazu alpha.5
adresář bude smazán.
Podobně, když nazýváme rsnapshot beta
pokaždé vytvoří nový snímek, otočí staré a zachová posledních 7 záloh (delta.0 - delta.6)
Upozorňujeme, že alpha
, beta
, gamma
a delta
jsou pouze názvy pro definování intervalů zálohování. Můžete také definovat své vlastní intervaly.
Můžete například nahradit výchozí úrovně zálohování některými smysluplnými názvy dle vašeho výběru, jako je níže:
retain hourly 24 retain daily 7 retain weekly 4 retain monthly 12
Když nazýváme rnsapshot hourly
, vytvoří novou zálohu v <rsnapshot-root>/hourly.0/
adresář. Když tento příkaz spustíte pokaždé, bude vytvářet nové adresáře až do <rsnapshot-root>/hourly.23/
.
To je stejné pro denní, týdenní a měsíční zálohy.
Dále odkomentujte následující řádek, pokud chcete nastavit soubor protokolu pro Rsnapshot:
logfile /var/log/rsnapshot
Pokud jste změnili výchozí port SSH , musíte odkomentovat tento řádek a uvést zde platné číslo portu:
ssh_args -p 2222
Nakonec musíte definovat adresáře, které chcete zálohovat. V konfiguračním souboru rsnapshot vyhledejte následující direktivy a nastavte umístění adresáře zálohy.
############################### ### BACKUP POINTS / SCRIPTS ### ############################### # LOCALHOST backup /home/ostechnix/data/ myserverbackup/
Zde budu zálohovat obsah /home/ostechnix/data/
adresář a uložte je do /rsnapbackup/myserverbackup/
adresář.
Pozor: Upozorňujeme, že jsem neuvedl úplnou cestu (tj. /rsnapbackup/myserverbackup/
) ve výše uvedené konfiguraci. Protože jsme již dříve zmínili kořenový adresář zálohy. Takže zde nemusíme specifikovat kořenový adresář Rsnapshot.
Podobně definujte umístění záloh vašich vzdálených klientských systémů.
# REMOTEHOST backup [email protected]:/home/sk/data/ myclientbackup/
Zde budu zálohovat obsah /home/sk/data/
mého vzdáleného klientského systému adresář a uložte je do /rsnapbackup/myclientbackup/
adresář na mém záložním serveru.
Znovu upozorňujeme, že jsem neuvedl úplnou cestu (/rsnapbackup/myclientbackup/
) ve výše uvedené konfiguraci. Protože jsme již definovali kořenový adresář zálohy.

Uložte a zavřete /etc/rsnapshot.conf
soubor.
Jakmile provedete všechny změny, spusťte následující příkaz a ověřte, zda je konfigurační soubor syntakticky platný.
$ rsnapshot configtest
Pokud je vše v pořádku, uvidíte následující výstup.
Syntax OK
3.3. Spustit zálohování
Spusťte následující příkaz pro ruční spuštění zálohování pomocí Rsnapshot.
# rsnapshot alpha
První záloha bude trvat několik minut až několik hodin v závislosti na velikosti záloh. Následné zálohování bude mnohem rychlejší, protože Rsnapshot zazálohuje pouze rozdíly.
Podobně můžete spustit další úrovně zálohování:
# rsnapshot beta
# rsnapshot gamma
# rsnapshot daily
3.4. Ověřování a prohlížení záloh
Pojďme zkontrolovat, zda jsou zálohy skutečně uloženy v kořenovém adresáři záloh na serveru záloh.
# ls /rsnapbackup/
Uvidíte následující výstup:
alpha.0
Zkontrolujte obsah alpha.0
adresář:
# ls /rsnapbackup/alpha.0/
Uvidíte, že jsou automaticky vytvořeny dva adresáře, jeden pro místní zálohování (myserverbackup) a druhý pro vzdálené systémy (myclientbackup).
myclientbackup myserverbackup
Chcete-li zkontrolovat zálohy klientského systému, spusťte:
# ls /rsnapbackup/alpha.0/myclientbackup/
Zkontrolujte zálohy serverového systému (místního systému):
# ls /rsnapbackup/alpha.0/myserverbackup/

Když spustíte Rnaspshot každý, vytvoří se nové adresáře, jako je alpha.0
, alpha.1
a tak dále, v závislosti na počtu úrovní zachování, které jste nakonfigurovali.
# ls /rsnapbackup/ alpha.0 alpha.1
alpha.0
adresář bude obsahovat nejnovější zálohu.
3.5. Naplánujte zálohování
Nemusíte spouštět příkaz rsnapshot k vytváření záloh pokaždé. Stačí definovat úlohu cron k automatizaci úloh zálohování v pravidelných intervalech.
Chcete-li tak učinit, vytvořte nový soubor úlohy cron pro rsnapshot:
# nano /etc/cron.d/rsnapshot
Přidejte následující řádky:
0 */4 * * * /usr/bin/rsnapshot alpha 50 23 * * * /usr/bin/rsnapshot beta 00 22 1 * * /usr/bin/rsnapshot delta
První řádek označuje, že bude šest alfa snímky pořízené každý den (v 0, 4, 8, 12, 16 a 20 hodinách), beta snímky pořízené každou noc ve 23:50 a delta snímky budou pořízeny ve 22:00 prvního dne každého měsíce. Načasování si můžete upravit dle vašeho přání. Uložte a zavřete soubor.
Hotovo! Od této chvíle bude Rsnapshot automaticky zálohovat vaše data v definovaný čas.
Další podrobnosti naleznete na manuálových stránkách.
# man rsnapshot
4. Obnovit soubory
Obnovení souborů je snadné! Pokud máte sudo
nebo root
přístup na záložní server, můžete jednoduše zkopírovat soubory z kořenového adresáře Rsnapshot, tj. /rsnapbackup/
.
5. Závěr
Nastavení záložního serveru pomocí Rsnapshot v Linuxu není tak obtížné. Počáteční konfigurace se může zdát obtížná a zabere trochu času. Jakmile však zálohovací server Rsnapshot správně nastavíte, bude po vybalení fungovat navždy, bez jakéhokoli zásahu uživatele.
Zdroje:
- Web Rsnapshot
- Rsnapshot GitHub úložiště
Související čtení:
- Jak zálohovat celý systém Linux pomocí Rsync
- Jak zálohovat soubory a adresáře pomocí Rsync v Linuxu
- Jak zálohovat a obnovovat soubory pomocí Deja Dup v Linuxu
- Jak zálohovat a obnovit systém Linux pomocí funkce Timeshift
- 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