Už jste se někdy obávali ztráty dat nebo jste unaveni každodenním nebo týdenním ručním zálohováním? Použijte rsync
a automaticky synchronizujte vaše místní soubory se vzdáleným serverem tak často, jak je potřeba, bez ručního zásahu. Upozorňujeme, že tato příručka vyžaduje přístup ke vzdálenému serveru Linux (např. AWS) a je napsán pod Ubuntu 20.04, ačkoli jakákoli distribuce Linuxu by měla fungovat dobře.
Nainstalujte rsync
Před čímkoli zkontrolujte, zda rsync
je nainstalován. Na místním počítači i na webovém serveru spusťte tento příkaz:
rsync --verze
Pokud na oplátku získáte aktuální verzi rsync, pak jste připraveni na další sekci. V opačném případě, pokud obdržíte a příkaz nenalezen chyba, můžete nainstalovat rsync
s tímto příkazem:
sudo apt-get -y install rsync
Vygenerujte klíč SSH
Použijeme a SSH klíč k ověření spojení mezi naším lokálním PC a vzdáleným serverem. Chcete-li vygenerovat nový klíč SSH na místním počítači v terminálu, spusťte příkaz:
Potřebujete vzdálený přístup k počítači nebo serveru se systémem Linux? Zde je návod, jak nastavit a nakonfigurovat SSH na Linuxu, Windows a mobilu.
ssh-keygen -t rsa -b 4096 -f ~/.ssh/rsync.key
Až budete vyzváni k zadání hesla, ponechte jej prázdné a dvakrát stiskněte klávesu Enter. Tím se vygenerují dva nové soubory ve vašem ~/.ssh/
adresář pojmenovaný rsync.key
což je soukromý klíč a rsync.key.pub
, veřejný klíč.
Nastavení vzdáleného serveru
Ačkoli to není povinné, pro tuto příručku vytvoříme a nový uživatel na vzdáleném serveru pro připojení rsync a pro uložení všech záložních souborů. Přihlaste se ke vzdálenému serveru přes SSH a spusťte tento příkaz:
sudo useradd -m rsync
Výše uvedený příklad používá uživatelské jméno rsync, ale můžete jej změnit na cokoliv chcete. The -m
volba jednoduše říká Linuxu, aby vytvořil domovský adresář pro našeho nového uživatele.
Aby se váš místní počítač mohl autentizovat, je třeba zkopírovat veřejný klíč SSH, který byl vygenerován v předchozí části, na vzdálený server. Otevři /~.ssh/rsync.key.pub
soubor v a textový editor a uvidíte jednu velkou čáru, která vypadá nějak podobně.
ssh-rsa uživatel@hostitel
Tato dlouhá řada je veřejný klíč SSH. Zkopírujte jej do schránky a na vzdáleném serveru spusťte tyto příkazy:
sudo s rsync
mkdir -m 0700 $ HOME/.ssh
echo "ssh-rsa AAAAB... uživatel@hostitel" > $HOME/.ssh/authorized_keys
chmod 0644 $HOME/.ssh/authorized_keys
V předposledním příkazu nahraďte text mezi uvozovkami tímto dlouhým řádkem veřejného klíče SSH. To je vše, váš místní počítač se nyní bude moci ověřit pomocí vzdáleného serveru.
Nakonfigurujte konfigurační soubor ssh
Pro zjednodušení přidejte položku do ~/.ssh/config
na místním počítači, abyste se mohli snadno připojit ke vzdálenému serveru. Otevřete soubor na místním počítači pomocí příkazu.
nano $HOME/.ssh/config
Do souboru přidejte položku pro vzdálený server, například:
hostitelský záložní_server
název hostitele 192.168.0.24
uživatel rsync
IdentityFile ~/.ssh/rsync
Změňte název hostitele na IP adresu vašeho vzdáleného serveru a pokud jste použili jiné uživatelské jméno než „rsync“, změňte jej také. Pro hostitele můžete použít cokoli, ale pro tento příklad byl použit "záložní_server". Uložte a zavřete soubor stisknutím Ctrl+X a následně kláves "Y" a Enter.
Otestujte své připojení SSH ke vzdálenému serveru pomocí příkazu.
ssh backup_server
Za předpokladu, že je vše správně nastaveno, měli byste být nyní přihlášeni ke vzdálenému serveru přes SSH. Uzavřete spojení pomocí příkazu.
výstup
Synchronizujte své soubory
Nyní otestujte rsync
funkce a například pro synchronizaci adresáře Dokumenty na místním počítači spusťte příkaz:
rsync -avz --progress ~/Documents/ backup_server:~/Documents
První výskyt ~/Dokumenty/
určuje místní soubor nebo adresář k synchronizaci, záložní_server
odpovídá záznamu přidanému do ~/.ssh/config
soubor a konec :~/Dokumenty
jednoduše určuje, že se má vše nahrát do adresáře /Documents vzdáleného serveru vzhledem k domovskému adresáři.
Přihlaste se ke vzdálenému serveru a měli byste vidět nový adresář Dokumenty, který je synchronizován s adresářem vašeho místního počítače. Pokaždé, když spustíte výše uvedený příkaz, budou nahrány pouze soubory, které byly od poslední doby změněny, takže nenahráváte neustále celý obsah adresáře.
Automatizujte přes Crontab
Nyní, když je vše otestováno a funguje správně, můžeme celý proces snadno automatizovat přidáním úlohy crontab do našeho místního počítače. Chcete-li automaticky synchronizovat místní složku se vzdáleným serverem každých 15 minut, spusťte v terminálu příkaz.
(crontab -l; echo "*/15 * * * * rsync -avz --progress ~/Documents/ backup_server:~/Documents > /dev/null 2>&1";) | crontab
Může se vám zobrazit zpráva „žádný crontab pro uživatele“ a můžete ji prostě ignorovat. Změň dokumenty
adresář do čehokoli, co chcete zálohovat, ale ujistěte se, že u adresářů ponechte koncové lomítko, jinak nebudou správně zálohovány.
Zkontrolujte, zda byla úloha crontab úspěšně přidána pomocí příkazu.
crontab -l
Pokud vidíte úlohu crontab, která byla právě přidána, pak je vše na svém místě. Počkejte 15 minut, zkontrolujte vzdálený server a měly by tam být všechny potřebné soubory. Od této chvíle budou všechny změny provedené ve vašich souborech automaticky nahrány na vzdálený server každých 15 minut.
Stáhnout ze vzdáleného serveru
Můžete také použít rsync
stáhnout soubory ze vzdáleného serveru a synchronizovat je s místním počítačem. Pomocí výše uvedeného příkladu adresáře /Documents spusťte v terminálu příkaz:
rsync -chavzP backup_server:~/Documents/ ~/Documents
The ~./Dokumenty
adresář na vašem místním počítači by nyní měl být zrcadlovým obrazem vzdáleného serveru.
Zahrnout a vyloučit vzory
Pokud někdy potřebujete synchronizovat pouze soubory, které odpovídají určitému vzoru, například end with .html
můžete použít --zahrnout
vzor. V terminálu spusťte příkaz.
rsync -avz --include "*.html" --progress ~/mysite/ backup_server:~/public_html
Zkontrolujte vzdálený server a uvidíte, že do vzdáleného adresáře /public_html/ byly nahrány pouze soubory s příponou .html z místního adresáře /mysite/. Podobně můžete také synchronizovat vše kromě určitých souborů s --vyloučit
volba. Například následující příkaz synchronizuje všechny soubory kromě souborů s a .txt
rozšíření.
rsync -avz --exclude "*.txt" --progress ~/mysite/ backup_server:~/public_html
Synchronizujte dva místní adresáře
V případě potřeby můžete také pomocí příkazu synchronizovat dva místní adresáře.
rsync -zvr ~/zdroj/adresář ~/cíl/adresář
Tento příkaz funguje úplně stejně jako při synchronizaci se vzdáleným serverem, jediným rozdílem jsou dva lokální adresáře.
V klidu
Nyní si můžete vydechnout s vědomím, že vaše šance na ztrátu dat jsou nyní podstatně nižší. V tomto článku jste se dozvěděli co rsync
je, jak vygenerovat a nainstalovat klíč SSH, definovat server v rámci ~./.ssh/config
soubor, synchronizovat místní a vzdálený adresář a automatizovat celý proces prostřednictvím crontab. Do budoucna budou všechny potřebné soubory vždy synchronizovány s vaším vzdáleným serverem pouze s 15minutovým zpožděním.
Potřebujete naklonovat linuxový pevný disk nebo oddíl? Ke klonování disku se systémem Linux použijte jeden z těchto nástrojů pro klonování jednotky.
- Linux
- Zálohování dat
- Linux
- Cloudové zálohování
- Domácí síť
Přihlaste se k odběru našeho newsletteru
Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné e-knihy a exkluzivní nabídky!
Ještě jeden krok…!
Potvrďte prosím svou e-mailovou adresu v e-mailu, který jsme vám právě zaslali.