#Ce script PowerShell permet d'effectuer une sauvegarde de fichier et dossier d'un serveur NextCloud sur une machine Windows ; il faut également penser à utiliser crontab pour lancer le script automatiquement ; script à exécuter sur le servuer NextCloud, obligatoirement débian12 ; bien penser à créer et configure un dossier partagé sur la machine Windows. #!/bin/bash # Installation de smbclient si nécessaire apt install smbclient -y # Demande à l'utilisateur de saisir les variables à personnaliser read -p "Entrez le chemin du répertoire Nextcloud (par défaut: /var/www/html/nextcloud/data): " NEXTCLOUD_DIR NEXTCLOUD_DIR=${NEXTCLOUD_DIR:-"/var/www/html/nextcloud/data"} # Utilise la valeur par défaut si rien n'est saisi read -p "Entrez le chemin du partage réseau SMB (par défaut: //SRV_WONKA/Sauvegarde): " AD_SHARE AD_SHARE=${AD_SHARE:-"//SRV_WONKA/Sauvegarde"} # Utilise la valeur par défaut si rien n'est saisi read -p "Entrez le nom d'utilisateur AD (par défaut: Administrateur): " AD_USER AD_USER=${AD_USER:-"Administrateur"} # Utilise la valeur par défaut si rien n'est saisi read -s -p "Entrez le mot de passe AD (par défaut: Toto64@): " AD_PASS echo AD_PASS=${AD_PASS:-"Toto64@"} # Utilise la valeur par défaut si rien n'est saisi # Vérification que le répertoire Nextcloud existe if [ ! -d "$NEXTCLOUD_DIR" ]; then echo "Erreur : Le répertoire Nextcloud '$NEXTCLOUD_DIR' n'existe pas." exit 1 fi # Vérification de l'accès au partage SMB smbclient "$AD_SHARE" -U "$AD_USER%$AD_PASS" -c "ls" > /dev/null 2>&1 if [ $? -ne 0 ]; then echo "Erreur : Impossible d'accéder au partage SMB '$AD_SHARE'. Vérifiez les identifiants ou l'état du partage." exit 1 fi # Création d'un dossier de sauvegarde avec horodatage TIMESTAMP=$(date +"%Y%m%d_%H%M%S") BACKUP_DIR="sauvegarde_$TIMESTAMP" # Création du répertoire de sauvegarde sur le partage SMB smbclient "$AD_SHARE" -U "$AD_USER%$AD_PASS" -c "mkdir $BACKUP_DIR" if [ $? -ne 0 ]; then echo "Erreur : Impossible de créer le répertoire de sauvegarde '$BACKUP_DIR' sur le partage '$AD_SHARE'." exit 1 fi # Utilisation de smbclient pour copier les fichiers et dossiers du répertoire Nextcloud vers le dossier de sauvegarde smbclient "$AD_SHARE" -U "$AD_USER%$AD_PASS" << EOF prompt # Désactive la demande de confirmation pour chaque fichier lcd "$NEXTCLOUD_DIR" # Change le répertoire local vers le répertoire Nextcloud recurse # Active la récursion dans les sous-dossiers cd $BACKUP_DIR # Change le répertoire distant vers le dossier de sauvegarde mput * # Copie tous les fichiers et sous-dossiers du répertoire Nextcloud vers le dossier de sauvegarde EOF # Vérification de la réussite de la commande if [ $? -eq 0 ]; then echo "Tous les fichiers et dossiers ont été copiés avec succès vers le partage '$AD_SHARE/$BACKUP_DIR'." else echo "Erreur lors de la copie des fichiers et dossiers vers le partage '$AD_SHARE/$BACKUP_DIR'." fi