GNU/Linux >> Znalost Linux >  >> Linux

Jak zálohovat NextCloud a přesunout je na jiný server

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.


Linux
  1. Jak vytvořit zálohu

  2. Jak zálohovat a obnovit úložiště SVN v Linuxu

  3. Jak SSH na server pomocí jiného serveru?

  1. Co je webový server a jak webový server funguje?

  2. Jak zálohovat a obnovit databázi Postgres

  3. Naučte se kopírovat soubory a složky z/na jiný server

  1. Jak zálohovat a obnovovat databázi v PostgreSQL

  2. Jak přesunout /usr a /var do jiného oddílu nebo disku

  3. Jak přesunout (a přepsat) všechny soubory z jednoho adresáře do druhého?