Article

Un serveur Ubutnu transfert des dossiers Nextcloud vers un NAS Asustor

Sauvegarde Nextcloud Sur Serveur Ubuntu Vers Asustor Nas

Technique
2.11min to read
10-01-2026

Réalisation d'un script de sauvegarde pour Nextcloud vers un NAS Asustor sous ADM 5.0

Étape 1 : Configuration sur l'Asustor (ADM 5)

NFS permet à votre serveur Ubuntu de voir un dossier du NAS comme s'il s'agissait d'un disque dur interne.

  1. Activer le service : Allez dans Services > NFS et cochez "Activer le service NFS".

  2. Préparer le dossier : Allez dans Contrôle d'accès > Dossiers partagés. Créez un dossier nommé backup_nextcloud.

  3. Régler les droits (Le plus important) : Cliquez sur le dossier backup_nextcloud > Privilèges NFS > Ajouter :

  • IP : 192.168.1.## (L'IP de votre Ubuntu).

  • Privilège : Lecture / Écriture.

  • Squash : Map root to admin (Cela permet à l'utilisateur root d'Ubuntu d'écrire sur le NAS).


Étape 2 : Préparation sur le serveur Ubuntu

Il faut installer les outils nécessaires et configurer l'accès automatique à la base de données.

  • Installer le client NFS :
sudo apt update && sudo apt install nfs-common -y
  • Automatiser le mot de passe SQL* :

    Pour que le script puisse sauvegarder la base de données sans vous demander de mot de passe, créez ce fichier :

sudo nano /root/.my.cnf

Collez ceci (en remplaçant par vos vrais identifiants Nextcloud) :

[mysqldump]
user=votre_utilisateur_db
password=votre_mot_de_passe_db

Sécurisez le fichier : sudo chmod 600 /root/.my.cnf

Étape 3 : Le Script de Sauvegarde Final

Créez le fichier :

 `sudo nano /usr/local/bin/backup_nextcloud.sh`

et collez le code ci-dessous.

#!/bin/bash

# --- CONFIGURATION ---
NEXTCLOUD_DIR="/var/www/nextcloud"
DOCS_DIR="/home/master/documents"
MOUNT_POINT="/mnt/asustor_backup"
NAS_IP="192.168.1.##"
NAS_EXPORT="/volume1/backup_nextcloud"
DB_NAME="nextcloud_db"
TIMESTAMP=$(date +"%Y-%m-%d")

# 1. Vérification du Montage
if ! mountpoint -q $MOUNT_POINT; then
    mkdir -p $MOUNT_POINT
    mount -t nfs $NAS_IP:$NAS_EXPORT $MOUNT_POINT
    if [ $? -ne 0 ]; then echo "Erreur Montage NAS"; exit 1; fi
fi

# 2. Nettoyage / Création des dossiers sur le NAS
mkdir -p $MOUNT_POINT/nextcloud_data $MOUNT_POINT/db $MOUNT_POINT/personal_docs

# 3. Sauvegarde Nextcloud
echo "Mode maintenance ON..."
sudo -u www-data php $NEXTCLOUD_DIR/occ maintenance:mode --on

echo "Sauvegarde Base de données..."
mysqldump --single-transaction $DB_NAME > $MOUNT_POINT/db/db_$TIMESTAMP.sql

echo "Synchronisation Nextcloud..."
# Options -rlptD pour éviter les erreurs de permissions ADM 5
rsync -rlptD --delete --no-perms --no-owner --no-group $NEXTCLOUD_DIR/ $MOUNT_POINT/nextcloud_data/

sudo -u www-data php $NEXTCLOUD_DIR/occ maintenance:mode --off
echo "Mode maintenance OFF."

# 4. Sauvegarde Documents
echo "Sauvegarde Documents personnels..."
rsync -rlptD --delete --no-perms --no-owner --no-group $DOCS_DIR/ $MOUNT_POINT/personal_docs/

# 5. Nettoyage des vieux SQL (15 jours)
find $MOUNT_POINT/db/ -name "*.sql" -mtime +15 -delete

echo "Sauvegarde terminée !"

Rendez le script exécutable :

sudo chmod +x /usr/local/bin/backup_nextcloud.sh

Étape 4 : Automatisation (Crontab)

Pour que la sauvegarde se lance toute seule chaque nuit à 3h00 du matin :

  1. Ouvrez le planificateur : sudo crontab -e

  2. Ajoutez cette ligne tout en bas :

00 03 * * * /usr/local/bin/backup_nextcloud.sh >> /var/log/nextcloud_backup.log 2>&1

Comment vérifier que tout va bien ?

  • Demain matin : Tapez
cat /var/log/nextcloud_backup.log

pour voir le rapport de la nuit.

  • Sur le NAS : Connectez-vous à l'interface Asustor et vérifiez que les dossiers db, nextcloud_data et personal_docs contiennent bien vos fichiers.

liste des articles