Pokud spouštíte instanci oblíbeného Data Cloud NextCloud, pravděpodobně budete chtít také způsob zálohování dat. Dnes vám ukážu, jak zálohovat NextCloud a jak přesunout soubory na jiný server. Uděláme to nejjednodušším možným způsobem, žádná deduplikace dat, žádné přírůstkové zálohování, jednoduše vytvoříme soubor tar.gz s našimi nejdůležitějšími daty a přesuneme je přepsat na záložní server, přepsat stávající pomocí Cronu. Dám vám možnost, která nepřepíše stávající zálohu, ale vytvoří každou zálohu samostatně s daty.
Nejprve se podívejme na náš scénář.
Scénář
NextCloudServer =Náš server NextCloud, samozřejmě..
BackupServer =Náš záložní server.
Čeho chceme dosáhnout? Chceme vytvořit zálohy na NextCloudServer a přesunout je na náš BackupServer. Pro oba servery v tomto příkladu používáme Ubuntu 16.04 LTS.
Kde tedy začít? Nejprve musíme připojit naši složku BackupServer na náš server NextCloud.
Předpokládejme, že náš záložní server má složku nazvanou „backups“, kterou samozřejmě musíte vytvořit na vašem BackupServer.
Předpokládejme tedy, že cesta k našemu BackupServeru včetně záložní složky je:
//BackupServer.com/backups
Krok 1 – Nastavení NextCloud do režimu údržby
Abychom zajistili integritu dat, nejprve nastavíme NextCloud do režimu údržby. To zajišťuje, že nikdo aktivně nepracuje na NextCloud a snižuje riziko poškození záloh.
cd /var/www/nextcloud sudo -u www-data php occ maintenance:mode – on
Krok 2 – Připojení serveru zálohování
Na vašem NextCloudServer vytvořte nový adresář. Můžete jej vytvořit kdekoli, pro tento příklad používáme následující:
mkdir /mnt/cifs/backups/nextcloud
Abyste mohli připojit sdílené složky CIFS, musíte mít nainstalovaný cifs-utils, takže to uděláme jako první.
apt-get update apt-get install cifs-utils
Ruční montáž disku
Nejprve vytvoříme soubor, do kterého uložíme přihlašovací údaje na náš záložní server, takže je nemusíme používat jako prostý text v našem skriptu.
nano /etc/backup-credentials.txt
A zadejte své přihlašovací údaje jako v příkladu níže:
Stiskněte CTRL+O pro uložení a CTRL+X pro ukončení.
Nyní musíme upravit oprávnění:
chmod 600 /etc/backup-credentials.txt
Poté se chystáme ručně připojit náš BackupServer.
mount -t cifs -o credentials=/etc/backup-crendetials.txt //BackupServer.com/backups /mnt/cifs/backups/nextcloud
Tím byste měli připojit vaši složku //BackupServer.com/backups do /mnt/cifs/backups/nextcloud.
Můžete to ověřit pomocí následujícího příkazu:
df -h
Pokud byste nyní restartovali svůj NextCloudServer, připojení by bylo pryč, protože jsme jej právě přidali ručně. Jednotku můžete automaticky namapovat úpravou souboru /etc/fstab nebo jednoduše zahrnout příkaz mount shora do vašeho cronjob, což je možnost, kterou zvolíme.
Tuto možnost jsem konkrétně zvolil, abych se vyhnul chybám při restartování. Pokud je disk během restartování serveru nedostupný, může vstoupit do nouzového režimu a neobjeví se. Existují způsoby, jak to obejít pomocí možnosti nofail nebo noauto v souboru fstab, ale nebudu se tím zabývat a místo toho zvolím bezpečný a snadný způsob. Pokud chcete automaticky připojit svůj disk úpravou souboru fstab, vyhledejte na Googlu, jak to udělat, ale buďte chytří při úpravě souboru fstab, protože může zabránit spuštění serveru.
Volba je na vás.
Krok 3 – Vytvoření záloh
Dobře, teď, když máme připojení na místě, musíme zjistit, které soubory musíme zálohovat.
Potřebujeme zálohovat:
- Hlavní adresář na adrese /var/www/nextcloud
- Datový adresář je ve výchozím nastavení umístěn na /var/www/nextcloud/data, ale doporučuje se přesunout jej na jiné místo, nikoli do složky /www/, ale ukážu vám, jak jej najít.
- Databáze SQL
Zálohování hlavního adresáře
tar -cpzf /mnt/cifs/backups/nextcloud/NextcloudBackup_FileDir.tar.gz -C /var/www/nextcloud .
Myslete na . nakonec patří k příkazu. To je vše.
Zálohování datového adresáře
Pokud se tedy váš datový adresář nenachází ve výchozím umístění, můžete jej najít otevřením konfiguračního souboru nextcloud:
nano /var/www/nextcloud/config/config.php
Soubor můžete opustit stisknutím CTRL+X.
Jak vidíte, ukazuje vám, kde se nachází váš datový adresář. Použijte tedy tuto cestu pro její zálohování. Všimněte si také, že je tam napsáno, jaký druh databáze váš NextCloud používá, což je relevantní pro další krok.
Dobře, pro zálohování datového adresáře spusťte:
tar -cpzf /mnt/cifs/backups/nextcloud/NextcloudBackup_DataDir.tar.gz -C /var/lib/nextcloud/data .
Upravte cestu /var/lib/nextcloud/data na svou vlastní cestu! Myslete na . nakonec patří k příkazu. Dokončení může trvat dlouho.
Zálohování databáze
Dobře, takže existuje několik databází, které může NextCloud používat, v tomto příkladu předpokládáme, že používáme MySQL. Pokud vaše instalace používá jinou databázi, musíte vygooglovat příslušný příkaz pro tu vaši.
Chcete-li provést tento výpis databáze bezpečným způsobem bez výzvy k zadání hesla v úloze Cron, musíme nejprve vytvořit / nebo upravit soubor .my.cnf umístěný v adresáři ~/.
nano ~/.my.cnf
Je možné, že soubor již existuje a má záznam, v závislosti na konfiguraci vašeho serveru, nedělejte si s tím starosti, jen přidejte řádky pod stávající text.
[mysqldump] user = yourDBusername password = yourDBpassword
Stiskněte CTRL+O pro uložení a CTRL+X pro ukončení.
Pokud neznáte své uživatelské jméno nebo heslo DB – je napsáno uvnitř vašeho souboru config.php, na který jsme se podívali dříve.
Dále musíme upravit oprávnění souboru:
chmod 600 ~/.my.cnf
Nyní jste připraveni spustit výpis databáze bez zadání hesla.
SQL Dump můžete spustit zadáním:
mysqldump – single-transaction -h localhost -u nextcloud > /mnt/cifs/backups/nextcloud/NextcloudBackup_DB.sql
Dobře, nyní jsme vytvořili zálohu 3 nejdůležitějších souborů. Pojďme ověřit, zda je tam vše.
My CD v našem záložním adresáři a také znovu spustíme df -h, abychom ověřili, že se místo skutečně zaplnilo.
cd /mnt/cifs/backups/nextcloud df -h
A opravdu se to stalo:
Můžeme také spustit ls uvnitř našeho adresáře záloh, abychom ověřili, že tam soubory jsou:
ls
A to je vše pro proces zálohování. Nyní víme, že vše funguje, a nyní můžeme celý proces automatizovat pomocí Cronu. Nejprve však musíme znovu deaktivovat režim údržby.
Krok 4 – Deaktivace režimu údržby
Rychlé a snadné:
cd /var/www/nextcloud sudo -u www-data php occ maintenance:mode – off
Krok 5 – Vytvoření úlohy Cron
Nyní v podstatě vytvoříme úlohu Cron, která spouští všechny příkazy, které právě spouštíme ručně, v určité datum, které jsme nastavili. Než se o to pokusíte naslepo, měli byste se naučit alespoň základy práce Cron. Mám krátký a informativní návod l na tom, včetně videa .
Chci, aby moje úloha Cron běžela každou neděli od 20:59.
Cron vytvoříme úpravou souboru crontab:
crontab -e
Nyní víme, že zálohování našeho Data Directory bude trvat zdaleka nejdéle, takže tento příkaz spustíme jako poslední.
59 20 * * 7 cd /var/www/nextcloud; sudo -u www-data php occ maintenance:mode – on 0 21 * * 7 mount -t cifs -o credentials=/etc/backup-credentials.txt //BackupServer/backup /mnt/cifs/backups/nextcloud 05 21 * * 7 tar -cpzf /mnt/cifs/backups/nextcloud/NextcloudBackup_FileDir.tar.gz -C /var/www/nextcloud . 30 21 * * 7 mysqldump – single-transaction -h localhost -u nextcloud > /mnt/cifs/backups/nextcloud/NextcloudBackup_DB.sql 00 22 * * 7 tar -cpzf /mnt/cifs/backups/nextcloud/NextcloudBackup_DataDir.tar.gz -C /var/lib/nextcloud/data . 00 02 * * 1 cd /var/www/nextcloud; sudo -u www-data php occ maintenance:mode – off
Pojďme rychle projít každý řádek, abychom odstranili zmatek.
- Každou neděli 20:59: Aktivujte režim údržby
- Každou neděli 21:00: Ujistěte se, že je náš BackupServer připojen/znovu namontován
- Každou neděli 21:05: Zálohujte náš adresář souborů NextCloud
- Každou neděli 21:30: Zálohujte naši databázi SQL
- Každou neděli ve 22:00: Zálohujte náš velký datový adresář
- Každé pondělí 02:00: Zakázat režim údržby
Nyní můžete vidět, že jsem dal skriptu dostatek času mezi poslední zálohou datového adresáře a opuštěním režimu údržby.
CTRL+O pro uložení a CTRL+X pro ukončení.
Pokud chcete ověřit, že skript běžel, přejděte v pondělí do složky zálohy a spusťte.
ls -la
Chcete-li ověřit, že soubory mají správná data.
A to je vše. Jak jsem řekl, toto je jednoduchý a snadný způsob, jak vytvořit zálohu. Pokud chcete vytvářet přírůstkové zálohy nebo implementovat deduplikaci dat, musíte se podívat na něco jako Rsync nebo Borgbackup.
Jak jsme slíbili, níže je možnost vytvářet jednotlivé soubory bez jejich přepisování.
Krok 6 (VOLITELNÉ) – Použití jednotlivých názvů souborů
Je to velmi snadné, ale mějte na paměti, že to zaplní místo na pevném disku velmi rychle v závislosti na tom, jak často zálohujete. Jednoduše vytvoříme jednotlivé názvy souborů přidáním možnosti data do našeho příkazu pro zálohování.
Takže místo použití tohoto příkazu:
tar -cpzf /mnt/cifs/backups/nextcloud/NextcloudBackup_FileDir.tar.gz -C /var/www/nextcloud .
Použili byste toto:
tar -cpzf /mnt/cifs/backups/nextcloud/NextcloudBackup_FileDir_`date +"%Y%m%d"`.tar.gz -C /var/www/nextcloud .
To by přidalo datum k názvu souboru s konkrétním datem, kdy byl vytvořen.
Tento krok jednoduše zopakujete i pro všechny ostatní zálohy. V budoucím tutoriálu vás naučím, jak obnovit zálohy.