GNU/Linux >> Tutoriels Linux >  >> Linux

Comment sauvegarder NextCloud et les déplacer vers un autre serveur

Si vous exécutez une instance du célèbre Data Cloud NextCloud, vous souhaitez probablement également un moyen de sauvegarder vos données. Aujourd'hui, je vous montre comment sauvegarder NextCloud et comment déplacer vos fichiers vers un autre serveur. Nous le ferons de la manière la plus simple possible, pas de déduplication de données, pas de sauvegarde incrémentielle, il suffit de créer un fichier tar.gz de nos données les plus importantes et de le déplacer vers le serveur de sauvegarde, en écrasant celui existant, en utilisant Cron. Je vais vous donner une option qui n'écrase pas la sauvegarde existante mais crée également chaque sauvegarde individuellement avec des dates.

Regardons d'abord notre scénario.

Le scénario

NextCloudServer =Notre serveur NextCloud, évidemment..

BackupServer =Notre serveur de sauvegarde.

Qu'est-ce que nous voulons accomplir? Nous voulons créer des sauvegardes sur NextCloudServer et les déplacer vers notre BackupServer. Pour les deux serveurs, nous utilisons Ubuntu 16.04 LTS dans cet exemple.

Alors par où commencer ? Nous devons d'abord monter notre dossier BackupServer sur notre serveur NextCloud.

Supposons que notre serveur de sauvegarde ait un dossier appelé "sauvegardes", que vous devez bien sûr créer sur votre BackupServer.

Supposons donc que le chemin vers notre BackupServer, y compris le dossier de sauvegarde, est :

//BackupServer.com/backups

Étape 1 - Configuration de NextCloud en mode maintenance

Pour assurer l'intégrité des données, nous allons d'abord mettre NextCloud en mode maintenance. Cela garantit que personne ne travaille activement sur NextCloud et réduit le risque de sauvegardes corrompues.

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

Étape 2 - Monter le serveur de sauvegarde

Sur votre NextCloudServer, créez un nouveau répertoire. Vous pouvez le créer où vous voulez, pour cet exemple, nous utilisons ce qui suit :

mkdir /mnt/cifs/backups/nextcloud

Pour pouvoir monter des partages CIFS, vous devez avoir installé cifs-utils, nous le faisons donc en premier.

apt-get update
apt-get install cifs-utils

Montage manuel du lecteur

Tout d'abord, nous allons créer un fichier dans lequel nous stockons les informations d'identification sur notre serveur de sauvegarde, nous n'avons donc pas besoin de les utiliser en texte clair dans notre script.

nano /etc/backup-credentials.txt

Et saisissez vos identifiants comme dans l'exemple ci-dessous :

Appuyez sur CTRL+O pour enregistrer et CTRL+X pour quitter.

Nous devons maintenant ajuster les autorisations :

chmod 600 /etc/backup-credentials.txt

Après cela, nous allons monter manuellement notre BackupServer.

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

Cela devrait avoir monté votre dossier //BackupServer.com/backups sur /mnt/cifs/backups/nextcloud.

Vous pouvez le vérifier en utilisant la commande suivante :

df -h

Si vous redémarriez votre NextCloudServer maintenant, le montage aurait disparu, car nous venons de l'ajouter manuellement. Vous pouvez mapper automatiquement le lecteur en modifiant le fichier /etc/fstab ou simplement inclure la commande de montage d'en haut dans votre cronjob, qui est l'option que nous choisirons.

Je choisis spécifiquement cette option pour éviter les erreurs lors du redémarrage. Si le lecteur n'est pas disponible pendant le redémarrage du serveur, il peut passer en mode d'urgence et ne s'affichera pas. Il existe des moyens de contourner cela en utilisant l'option nofail ou noauto dans le fichier fstab, mais je n'aborderai pas cela et choisirai plutôt le moyen sûr et facile. Si vous souhaitez monter automatiquement votre lecteur en modifiant votre fichier fstab, faites une recherche Google sur la façon de le faire, mais soyez intelligent en modifiant votre fichier fstab car cela peut empêcher votre serveur de démarrer.

Le choix vous appartient.

Étape 3 - Création des sauvegardes

Très bien, maintenant que nous avons le montage en place, nous devons déterminer quels fichiers nous devons sauvegarder.

Nous devons sauvegarder :

  • Le répertoire principal, situé à /var/www/nextcloud
  • Le répertoire de données, situé par défaut dans /var/www/nextcloud/data mais il est recommandé de le déplacer vers un autre emplacement pas à l'intérieur du dossier /www/, mais je vais vous montrer comment le trouver.
  • La base de données SQL

Sauvegarder le répertoire principal

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

Attention au . à la fin, il appartient à la commande. Voilà pour ça.

Sauvegarde du répertoire de données

Ainsi, si votre répertoire de données ne se trouve pas à son emplacement par défaut, vous pouvez le retrouver en ouvrant le fichier de configuration nextcloud :

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

Vous pouvez quitter le fichier en appuyant sur CTRL+X.

Comme vous pouvez le voir, il vous indique où se trouve votre répertoire de données. Utilisez donc ce chemin pour le sauvegarder. Notez également qu'il est écrit quel type de base de données votre NextCloud utilise, ce qui est pertinent pour l'étape suivante.

D'accord, pour sauvegarder votre répertoire de données, exécutez :

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

Ajustez le chemin d'accès /var/lib/nextcloud/data à votre propre chemin ! Attention au . à la fin, il appartient à la commande. Cela peut prendre beaucoup de temps.

Sauvegarder la base de données

Ok, il existe donc plusieurs bases de données que NextCloud peut utiliser, dans cet exemple, nous supposons que nous utilisons MySQL. Si votre installation utilise une base de données différente, vous devez chercher sur Google la commande appropriée pour la vôtre.

Pour effectuer ce vidage de base de données de manière sécurisée sans invite de mot de passe dans une tâche Cron, nous devons d'abord créer / ou modifier le fichier .my.cnf situé dans le répertoire ~/.

nano ~/.my.cnf

Il est possible que le fichier existe déjà et ait une entrée, selon la configuration de votre serveur, ne vous inquiétez pas, ajoutez simplement les lignes sous le texte existant.

[mysqldump]
user = yourDBusername
password = yourDBpassword

Appuyez sur CTRL+O pour enregistrer et CTRL+X pour quitter.

Si vous ne connaissez pas votre nom d'utilisateur ou votre mot de passe de base de données, il est écrit dans votre fichier config.php que nous avons examiné précédemment.

Ensuite, nous devons ajuster les permissions du fichier :

chmod 600 ~/.my.cnf

Vous êtes maintenant prêt à exécuter un vidage de votre base de données sans entrer de mot de passe.

Vous pouvez exécuter le vidage SQL en tapant :

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

Très bien, maintenant nous avons créé une sauvegarde des 3 fichiers les plus importants. Vérifions si tout est là.

Nous CD dans notre répertoire de sauvegarde et exécuterons également df -h à nouveau pour vérifier que l'espace est réellement rempli.

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

Et bien sûr, c'est le cas :

Nous pouvons également exécuter ls dans notre répertoire de sauvegardes pour vérifier que les fichiers s'y trouvent :

ls

Et c'est tout pour le processus de sauvegarde. Maintenant, nous savons que tout fonctionne et nous pouvons maintenant automatiser l'ensemble du processus à l'aide de Cron. Mais d'abord, nous devons à nouveau désactiver le mode Maintenance.

Étape 4 - Désactivation du mode Maintenance

Rapide et facile :

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

Étape 5 - Création d'une tâche Cron

Maintenant, nous créons essentiellement une tâche Cron qui exécute toutes les commandes que nous venons d'exécuter manuellement à une date spécifique que nous avons définie. Vous devriez apprendre au moins les bases du travail Cron avant de tenter cela aveuglément. J'ai un tutoriel court et informatif l à ce sujet, y compris une vidéo .

Je veux que ma tâche Cron s'exécute tous les dimanches, à partir de 20h59.

Nous créons un Cron en modifiant le fichier crontab :

crontab -e

Nous savons maintenant que la sauvegarde de notre répertoire de données prendra de loin le plus de temps, nous allons donc l'exécuter comme dernière commande.

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

Parcourons rapidement chaque ligne pour éliminer toute confusion.

  • Tous les dimanches à 20h59 : Activer le mode maintenance
  • Tous les dimanches à 21h : Assurez-vous que notre BackupServer est monté/remontez-le
  • Tous les dimanches à 21h05 : Sauvegardez notre répertoire de fichiers NextCloud
  • Tous les dimanches à 21h30 : Sauvegardez notre base de données SQL
  • Tous les dimanches à 22h : Sauvegardez notre répertoire Big Data
  • Tous les lundis à 02h00 : Désactiver le mode maintenance

Vous pouvez maintenant voir que j'ai donné suffisamment de temps au script entre la dernière sauvegarde du répertoire de données et la sortie du mode Maintenance.

CTRL+O pour enregistrer et CTRL+X pour quitter.

Si vous souhaitez valider que le script était en cours d'exécution, accédez simplement au dossier de sauvegarde lundi et exécutez-le.

ls -la

Pour vérifier que les fichiers ont les bonnes dates.

Et c'est tout. Comme je l'ai dit, c'est un moyen simple et facile de créer une sauvegarde. Si vous souhaitez créer des sauvegardes incrémentielles ou implémenter la déduplication des données, vous devez vous pencher sur quelque chose comme Rsync ou Borgbackup.

Comme promis, l'option permettant de créer des fichiers individuels sans les écraser est ci-dessous.

Étape 6 (FACULTATIF) - Utiliser des noms de fichiers individuels

C'est très facile à faire, mais gardez à l'esprit que cela remplira assez rapidement l'espace de votre disque dur en fonction de la fréquence à laquelle vous exécutez des sauvegardes. Nous créons simplement des noms de fichiers individuels en ajoutant l'option de date dans notre commande de sauvegarde.

Donc au lieu d'utiliser cette commande :

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

Vous utiliserez ceci :

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

Cela ajouterait la date au nom du fichier avec la date spécifique à laquelle il a été créé.

Vous répétez simplement cette étape pour toutes les autres sauvegardes également. Je vous apprendrai comment restaurer des sauvegardes dans un prochain tutoriel.


Linux
  1. Comment créer une sauvegarde

  2. Qu'est-ce qu'un serveur Web et comment fonctionne un serveur Web ?

  3. Comment sauvegarder et restaurer le référentiel SVN sous Linux

  4. Comment sauvegarder et restaurer la base de données Postgres

  5. Comment Ssh vers un serveur en utilisant un autre serveur ? ?

Comment déplacer des comptes d'un serveur cPanel vers un autre serveur cPanel ?

Comment installer Tomcat et Java sur CentOS 8

Comment installer et configurer Parse Server sur Ubuntu 20.04

Comment sauvegarder et restaurer un site Web WordPress

Comment installer et configurer Nextcloud sur Ubuntu 20.04

Comment installer et configurer le serveur Sandstorm sur CentOS 8