GNU/Linux >> Linux Esercitazione >  >> Linux

Come eseguire il backup di NextCloud e spostarli su un altro server

Se esegui un'istanza del popolare Data Cloud NextCloud, probabilmente vorrai anche un modo per eseguire il backup dei tuoi dati. Oggi ti mostro come eseguire il backup di NextCloud e come spostare i tuoi file su un altro server. Lo faremo nel modo più semplice possibile, nessuna deduplicazione dei dati, nessun backup incrementale, semplicemente creando un file tar.gz dei nostri dati più importanti e spostandolo sul server di backup, sovrascrivendo quello esistente, utilizzando Cron. Ti darò un'opzione che non sovrascrive il backup esistente ma crea anche ogni backup individualmente con le date.

Diamo prima un'occhiata al nostro scenario.

Lo scenario

NextCloudServer =Il nostro server NextCloud, ovviamente..

BackupServer =Il nostro server di backup.

Cosa vogliamo ottenere? Vogliamo creare backup su NextCloudServer e spostarli sul nostro BackupServer. Per entrambi i server, in questo esempio utilizziamo Ubuntu 16.04 LTS.

Allora da dove cominciare? Per prima cosa dobbiamo montare la nostra cartella BackupServer sul nostro server NextCloud.

Supponiamo che il nostro server di backup abbia una cartella chiamata "backup", che ovviamente devi creare sul tuo BackupServer.

Quindi supponiamo che il percorso del nostro BackupServer inclusa la cartella di backup sia:

//BackupServer.com/backups

Passaggio 1:impostazione di NextCloud in modalità di manutenzione

Per garantire l'integrità dei dati, imposteremo prima NextCloud in modalità di manutenzione. Ciò garantisce che nessuno stia lavorando attivamente su NextCloud e riduce il rischio di backup corrotti.

cd /var/www/nextcloud
sudo -u www-data php occ maintenance:mode – on

Fase 2:montaggio del server di backup

Sul tuo NextCloudServer crea una nuova directory. Puoi crearlo dove vuoi, per questo esempio utilizziamo quanto segue:

mkdir /mnt/cifs/backups/nextcloud

Per poter montare condivisioni CIFS, devi avere installato cifs-utils, quindi lo facciamo prima.

apt-get update
apt-get install cifs-utils

Montaggio manuale dell'unità

Innanzitutto, creeremo un file in cui memorizziamo le credenziali sul nostro server di backup, quindi non è necessario utilizzarle come testo non crittografato nel nostro script.

nano /etc/backup-credentials.txt

E inserisci le tue credenziali come nell'esempio seguente:

Premi CTRL+O per salvare e CTRL+X per uscire.

Ora dobbiamo modificare i permessi:

chmod 600 /etc/backup-credentials.txt

Successivamente, monteremo manualmente il nostro BackupServer.

mount -t cifs -o credentials=/etc/backup-crendetials.txt //BackupServer.com/backups /mnt/cifs/backups/nextcloud

Questo dovrebbe aver montato la tua cartella //BackupServer.com/backups su /mnt/cifs/backups/nextcloud.

Puoi verificarlo usando il seguente comando:

df -h

Se dovessi riavviare il tuo NextCloudServer ora, il supporto sarebbe sparito, perché l'abbiamo appena aggiunto manualmente. Puoi mappare automaticamente l'unità modificando il file /etc/fstab o semplicemente includendo il comando mount dall'alto nel tuo cronjob, che è l'opzione che sceglieremo.

Scelgo specificamente questa opzione per evitare errori durante il riavvio. Se l'unità non è disponibile durante il riavvio del server, potrebbe entrare in modalità di emergenza e non si aprirà. Ci sono modi per aggirare ciò usando l'opzione nofail o noauto all'interno del file fstab, ma non andrò oltre e sceglierò invece il modo semplice e sicuro. Se vuoi montare automaticamente il tuo disco modificando il tuo file fstab, fai una ricerca su Google su come farlo, ma sii intelligente nel modificare il tuo file fstab in quanto può impedire l'avvio del tuo server.

A te la scelta.

Fase 3:creazione dei backup

Bene, ora che abbiamo installato il supporto, dobbiamo capire di quali file è necessario eseguire il backup.

Dobbiamo eseguire il backup:

  • La directory principale, situata in /var/www/nextcloud
  • La directory dei dati, per impostazione predefinita si trova in /var/www/nextcloud/data ma si consiglia di spostarla in una posizione diversa non all'interno della cartella /www/, ma ti mostrerò come trovarla.
  • Il database SQL

Backup della directory principale

tar -cpzf /mnt/cifs/backups/nextcloud/NextcloudBackup_FileDir.tar.gz -C /var/www/nextcloud .

Attento al . alla fine, appartiene al comando. Questo è tutto.

Backup della directory dei dati

Quindi, se la tua directory dei dati non si trova nella sua posizione predefinita, puoi trovarla aprendo il file di configurazione di nextcloud:

nano /var/www/nextcloud/config/config.php

Puoi uscire dal file premendo CTRL+X.

Come puoi vedere, ti mostra dove si trova la tua directory di dati. Quindi usa questo percorso per il backup. Nota anche che c'è scritto che tipo di database utilizza il tuo NextCloud, che è rilevante per il passaggio successivo.

Va bene, per eseguire il backup della directory dei dati, esegui:

tar -cpzf /mnt/cifs/backups/nextcloud/NextcloudBackup_DataDir.tar.gz -C /var/lib/nextcloud/data .

Adatta il percorso /var/lib/nextcloud/data al tuo percorso! Attento al . alla fine, appartiene al comando. Il completamento dell'operazione può richiedere molto tempo.

Backup del database

Ok, quindi ci sono diversi database che NextCloud può usare, in questo esempio supponiamo di usare MySQL. Se la tua installazione utilizza un database diverso, devi cercare su Google il comando appropriato per il tuo.

Per eseguire questo dump del database in modo sicuro senza una richiesta di password in un processo Cron, dobbiamo prima creare / o modificare il file .my.cnf che si trova nella directory ~/.

nano ~/.my.cnf

È possibile che il file esista già e abbia una voce, a seconda della configurazione del tuo server, non preoccuparti, aggiungi solo le righe sotto il testo esistente.

[mysqldump]
user = yourDBusername
password = yourDBpassword

Premi CTRL+O per salvare e CTRL+X per uscire.

Se non conosci il nome utente o la password del tuo DB, è scritto all'interno del tuo config.php che abbiamo visto in precedenza.

Successivamente, dobbiamo regolare i permessi del file:

chmod 600 ~/.my.cnf

Ora sei pronto per eseguire un dump del tuo database senza inserire una password.

Puoi eseguire SQL Dump digitando:

mysqldump – single-transaction -h localhost -u nextcloud > /mnt/cifs/backups/nextcloud/NextcloudBackup_DB.sql

Bene, ora abbiamo creato un backup dei 3 file più importanti. Verifichiamo se c'è tutto.

Abbiamo un CD nella nostra directory di backup e inoltre eseguiremo di nuovo df -h per verificare che lo spazio sia effettivamente riempito.

cd /mnt/cifs/backups/nextcloud
df -h

E abbastanza sicuro, lo ha fatto:

Possiamo anche eseguire ls all'interno della nostra directory di backup per verificare che i file siano presenti:

ls

E questo è tutto per il processo di backup. Ora sappiamo che tutto funziona e ora possiamo automatizzare l'intero processo utilizzando Cron. Ma prima, dobbiamo disattivare nuovamente la modalità di manutenzione.

Fase 4 - Disattivazione della modalità di manutenzione

Facile e veloce:

cd /var/www/nextcloud 
sudo -u www-data php occ maintenance:mode – off

Fase 5:creazione di un processo Cron

Ora fondamentalmente creiamo un lavoro Cron che esegue tutti i comandi che eseguiamo manualmente in una data specifica che abbiamo impostato. Dovresti imparare almeno le basi del lavoro di Cron prima di tentare ciecamente. Ho un tutorial breve e informativo l su quello, incluso un video .

Voglio che il mio job Cron venga eseguito ogni domenica, a partire dalle 20:59.

Creiamo un Cron modificando il file crontab:

crontab -e

Ora sappiamo che il backup della nostra directory dei dati richiederà di gran lunga il più lungo, quindi eseguiremo questo come ultimo comando.

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

Esaminiamo rapidamente ogni riga per eliminare la confusione.

  • Ogni domenica 20:59: Attiva la modalità Manutenzione
  • Ogni domenica alle 21:00: Assicurati che il nostro BackupServer sia montato/rimontato
  • Ogni domenica 21:05: Esegui il backup della nostra directory di file NextCloud
  • Ogni domenica 21:30: Eseguire il backup del nostro database SQL
  • Ogni domenica alle 22:00: Esegui il backup della nostra directory Big Data
  • Ogni lunedì 02:00: Disattiva la modalità di manutenzione

Ora puoi vedere che ho concesso allo script abbastanza tempo tra l'ultimo backup della directory dei dati e l'uscita dalla modalità di manutenzione.

CTRL+O per salvare e CTRL+X per uscire.

Se vuoi verificare che lo script fosse in esecuzione, vai alla cartella di backup lunedì ed eseguilo.

ls -la

Per verificare che i file abbiano le date corrette.

E questo è tutto. Come ho detto, questo è un modo semplice e facile per creare un backup. Se vuoi creare backup incrementali o implementare la deduplicazione dei dati, devi esaminare qualcosa come Rsync o Borgbackup.

Come promesso, l'opzione per creare singoli file senza sovrascriverli è di seguito.

Fase 6 (FACOLTATIVO) - Utilizzo di nomi di file individuali

È molto facile farlo, ma tieni presente che questo riempirà lo spazio sul disco rigido abbastanza velocemente a seconda della frequenza con cui esegui i backup. Creiamo semplicemente nomi di file individuali aggiungendo l'opzione data nel nostro comando di backup.

Quindi, invece di usare questo comando:

tar -cpzf /mnt/cifs/backups/nextcloud/NextcloudBackup_FileDir.tar.gz -C /var/www/nextcloud .

Dovresti usare questo:

tar -cpzf /mnt/cifs/backups/nextcloud/NextcloudBackup_FileDir_`date +"%Y%m%d"`.tar.gz -C /var/www/nextcloud .

Ciò aggiungerebbe la data al nome del file con la data specifica in cui è stato creato.

Ripeti semplicemente questo passaggio anche per tutti gli altri backup. Ti insegnerò come ripristinare i backup in un tutorial futuro.


Linux
  1. Come creare un backup

  2. Come eseguire Ssh su un server utilizzando un altro server??

  3. Come eseguire il backup e il ripristino del database in PostgreSQL

  4. Come spostare /usr e /var su un'altra partizione o disco

  5. Come spostare (e sovrascrivere) tutti i file da una directory all'altra?

Come spostare gli account da un server cPanel a un altro server cPanel?

Come installare Tomcat e Java su CentOS 8

Come installare e configurare Parse Server su Ubuntu 20.04

Come eseguire il backup e il ripristino di un sito Web WordPress

Come installare e configurare Nextcloud su Ubuntu 20.04

Come installare e configurare Sandstorm Server su CentOS 8