Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| backuppc [Le 18/01/2015, 10:48] – [Configuration de backuppc pour utiliser les scripts] gfontaniere | backuppc [Le 02/11/2025, 21:53] (Version actuelle) – samba -> smb krodelabestiole | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag>Lucid Precise Trusty | + | {{tag>bionic focal réseau serveur sécurité sauvegarde }} |
| - | ---- | + | |
| + | {{ : | ||
| ====== Serveur de sauvegarde automatique : BackupPC ====== | ====== Serveur de sauvegarde automatique : BackupPC ====== | ||
| - | {{ : | ||
| **BackupPC** est un logiciel libre de [[: | **BackupPC** est un logiciel libre de [[: | ||
| Il permet d' | Il permet d' | ||
| - | |||
| - | ===== Présentation ====== | ||
| **BackupPC** est utilisé pour sauvegarder un ensemble de postes. Il possède une interface Web pour configurer, lancer des sauvegardes ou restaurer des fichiers. Il est également possible de sauvegarder des bases de données. | **BackupPC** est utilisé pour sauvegarder un ensemble de postes. Il possède une interface Web pour configurer, lancer des sauvegardes ou restaurer des fichiers. Il est également possible de sauvegarder des bases de données. | ||
| Ligne 13: | Ligne 10: | ||
| BackupPC permet de sauvegarder automatiquement à des intervalles de temps réguliers des répertoires situés sur des machines du réseau. | BackupPC permet de sauvegarder automatiquement à des intervalles de temps réguliers des répertoires situés sur des machines du réseau. | ||
| - | [[http:// | + | [[http:// |
| BackupPC peut utiliser plusieurs protocoles pour les sauvegardes : | BackupPC peut utiliser plusieurs protocoles pour les sauvegardes : | ||
| - | * [[:Samba]] : Utilise le logiciel | + | * [[:SMB]] : Utilise le logiciel |
| - | * [[:rSync]] : Utilise le logiciel | + | * [[:rSync]] : Utilise le logiciel |
| - | * [[http:// | + | * [[https:// |
| * [[:Tar]] : Utilise le logiciel Tar. C'est un bon choix pour sauvegarder des machines sous Linux. | * [[:Tar]] : Utilise le logiciel Tar. C'est un bon choix pour sauvegarder des machines sous Linux. | ||
| - | Sauf pour [[:Samba]], Backuppc utilise [[:SSH]] pour faire les transferts. | + | Sauf pour [[:SMB]], Backuppc utilise [[:SSH]] pour faire les transferts. |
| ==== Politique de sauvegarde par défaut ==== | ==== Politique de sauvegarde par défaut ==== | ||
| Ligne 27: | Ligne 24: | ||
| Le logiciel se réveille toutes les heures pour sonder l' | Le logiciel se réveille toutes les heures pour sonder l' | ||
| Puis, pour chaque poste allumé, il fonctionne ainsi : | Puis, pour chaque poste allumé, il fonctionne ainsi : | ||
| - | * Interrogation de la période du Blackout: si l' | + | * Interrogation de la période du Blackout: si l' |
| * Sinon, il étudie la machine hôte. | * Sinon, il étudie la machine hôte. | ||
| Ligne 38: | Ligne 35: | ||
| ===== Installation ===== | ===== Installation ===== | ||
| - | |||
| - | ==== Version des dépôts ==== | ||
| Backuppc est [[http:// | Backuppc est [[http:// | ||
| - | Étant disponible dans les [[: | + | Étant disponible dans les [[: |
| - | === Backuppc sous Ubuntu utilisera par défaut: === | + | === Backuppc sous Ubuntu utilisera par défaut: === |
| * [[: | * [[: | ||
| * [[: | * [[: | ||
| Ligne 59: | Ligne 54: | ||
| === Ajout de l' | === Ajout de l' | ||
| - | Pour démarrer backuppc, il faut ajouter l' | + | Pour démarrer backuppc, il faut ajouter l' |
| - | + | ||
| - | < | + | |
| === Ajout du fichier apache.conf === | === Ajout du fichier apache.conf === | ||
| - | Comme l' | + | Comme l' |
| - | * Copie du fichier .conf dans / | + | Puis activez le site : < |
| - | < | + | |
| - | * Activation du site | + | |
| - | | + | |
| | | ||
| < | < | ||
| Ligne 76: | Ligne 66: | ||
| < | < | ||
| - | + | < | |
| - | ==== Version des backports ==== | + | Si vous avez une page d'erreur du type **Forbidden - You don't have permission to access this resource**, il faut ajouter dans le fichier |
| - | Vous pouvez choisir | + | < |
| + | </ | ||
| ===== Utilisation ===== | ===== Utilisation ===== | ||
| Ligne 104: | Ligne 95: | ||
| [[: | [[: | ||
| <file perl / | <file perl / | ||
| - | | + | |
| </ | </ | ||
| pour obtenir | pour obtenir | ||
| <file perl / | <file perl / | ||
| - | | + | |
| </ | </ | ||
| Ligne 119: | Ligne 110: | ||
| ==== Où sont sauvegardées les données ? ==== | ==== Où sont sauvegardées les données ? ==== | ||
| === Par défaut === | === Par défaut === | ||
| - | Les données sont sauvegardées dans des sous-répertoires de **/ | + | Les données sont sauvegardées dans des sous-répertoires de **/ |
| === Changer le lieu de stockage === | === Changer le lieu de stockage === | ||
| Cela n'est bien sûr pas obligatoire, | Cela n'est bien sûr pas obligatoire, | ||
| - | == Avec un lien symbolique == | + | == Avec un lien symbolique == |
| <note tips> | <note tips> | ||
| En utilisant un [[wpfr> | En utilisant un [[wpfr> | ||
| Ligne 130: | Ligne 121: | ||
| * stopper le [[: | * stopper le [[: | ||
| * créer votre répertoire de destination au préalable: < | * créer votre répertoire de destination au préalable: < | ||
| - | * copiez-y ce qui se trouve dans **/ | + | * copiez-y ce qui se trouve dans **/ |
| * assurer vous que les [[:droits]] sur les fichiers et répertoires sont les mêmes. | * assurer vous que les [[:droits]] sur les fichiers et répertoires sont les mêmes. | ||
| * supprimer ou déplacer (au cas où) le répertoire **/ | * supprimer ou déplacer (au cas où) le répertoire **/ | ||
| Ligne 138: | Ligne 129: | ||
| ===== Configurer les sauvegardes ===== | ===== Configurer les sauvegardes ===== | ||
| - | Vous trouverez dans cette sections | + | Vous trouverez dans cette section |
| * [[# | * [[# | ||
| * [[# | * [[# | ||
| Ligne 201: | Ligne 192: | ||
| * Ajouter dans le fichier, la clef publique de l' | * Ajouter dans le fichier, la clef publique de l' | ||
| * Pour plus de sécurité, rajouter au début du fichier la directive < | * Pour plus de sécurité, rajouter au début du fichier la directive < | ||
| - | * Vous devriez désormais avoir: | + | * Vous devriez désormais avoir: |
| * Sous le compte root | * Sous le compte root | ||
| < | < | ||
| Ligne 243: | Ligne 234: | ||
| * Ajouter dans le fichier, la clef publique de l' | * Ajouter dans le fichier, la clef publique de l' | ||
| * Pour plus de sécurité, rajouter au début du fichier la directive < | * Pour plus de sécurité, rajouter au début du fichier la directive < | ||
| - | * Vous devriez désormais avoir: | + | * Vous devriez désormais avoir: |
| * Sous le compte backup | * Sous le compte backup | ||
| < | < | ||
| Ligne 289: | Ligne 280: | ||
| En cas de blocage suite à la réinstallation du poste à sauvegarder, | En cas de blocage suite à la réinstallation du poste à sauvegarder, | ||
| </ | </ | ||
| + | < | ||
| + | Si l' | ||
| + | </ | ||
| === Paramétrer l' | === Paramétrer l' | ||
| Ligne 295: | Ligne 288: | ||
| //onglet **Xfert** -> pour **rsync** -> chapitre **Chemins/ | //onglet **Xfert** -> pour **rsync** -> chapitre **Chemins/ | ||
| * ** RsyncClientCmd ** < | * ** RsyncClientCmd ** < | ||
| - | * ** RsyncClientRestoreCmd ** < | + | * ** RsyncClientRestoreCmd ** < |
| == Depuis le fichier « / | == Depuis le fichier « / | ||
| Ligne 336: | Ligne 329: | ||
| Il suffira ensuite de suivre les instructions du fichier « README.TXT » de ce paquet. | Il suffira ensuite de suivre les instructions du fichier « README.TXT » de ce paquet. | ||
| - | Il sera donc considéré pour la suite de cet article que vous avez : | + | Il sera donc considéré pour la suite de cet article que vous avez : |
| * un module « docs » partagé par //rsyncd// ; | * un module « docs » partagé par //rsyncd// ; | ||
| * ce module doit permettre l' | * ce module doit permettre l' | ||
| Ligne 351: | Ligne 344: | ||
| $Conf{RsyncShareName} | $Conf{RsyncShareName} | ||
| </ | </ | ||
| - | Sauvegarder le fichier et recharger la configuration depuis [[# | + | Sauvegarder le fichier et recharger la configuration depuis [[# |
| ===== Sauvegarder des postes Windows via « smb » ===== | ===== Sauvegarder des postes Windows via « smb » ===== | ||
| Ligne 361: | Ligne 354: | ||
| - Effectuez les changements depuis [[# | - Effectuez les changements depuis [[# | ||
| - | Pour l' | + | Pour l' |
| - | * nom d' | + | * nom d' |
| * mot de pase -> //mdpbupc// | * mot de pase -> //mdpbupc// | ||
| * dossier de partage -> //docs$// | * dossier de partage -> //docs$// | ||
| Ligne 376: | Ligne 369: | ||
| $Conf{SmbShareName} = ' | $Conf{SmbShareName} = ' | ||
| </ | </ | ||
| - | Sauvegarder le fichier et recharger la configuration depuis [[# | + | Sauvegarder le fichier et recharger la configuration depuis [[# |
| == Configuration du fichier « hosts » == | == Configuration du fichier « hosts » == | ||
| Ligne 382: | Ligne 375: | ||
| [[: | [[: | ||
| < | < | ||
| - | Sauvegarder le fichier et recharger la configuration depuis [[# | + | Sauvegarder le fichier et recharger la configuration depuis [[# |
| ===== Sauvegarder des PC éteints ===== | ===== Sauvegarder des PC éteints ===== | ||
| Ligne 390: | Ligne 383: | ||
| ==== Configuration du WOL sur le serveur ==== | ==== Configuration du WOL sur le serveur ==== | ||
| - | L' | + | L' |
| < | < | ||
| Il va sans dire que le nom de la machine doit être déclaré comme dans le fichier ** / | Il va sans dire que le nom de la machine doit être déclaré comme dans le fichier ** / | ||
| Ligne 429: | Ligne 422: | ||
| __**Explication: | __**Explication: | ||
| * il y a une pause d'une minute pour laisser le temps au pc de démarrer. | * il y a une pause d'une minute pour laisser le temps au pc de démarrer. | ||
| - | * Puis, la boucle while teste si le partage est actif. | + | * Puis, la boucle while teste si le partage est actif. |
| * Après 15 essais sans résultat la boucle s' | * Après 15 essais sans résultat la boucle s' | ||
| Ligne 452: | Ligne 445: | ||
| Pour parer à cela, vous êtes invité à lire le dernier message de [[http:// | Pour parer à cela, vous êtes invité à lire le dernier message de [[http:// | ||
| - | == autre exemple de fichier | + | == autre exemple de fichiers |
| + | Pour utiliser ces scripts, veuillez mettre le paramètre **UserCmdCheckStatus** à **1** dans la configuration, | ||
| + | < | ||
| + | ceci permet de dire à Backuppc de prendre en compte le code d' | ||
| <file bash wol.sh> | <file bash wol.sh> | ||
| #!/bin/bash | #!/bin/bash | ||
| + | |||
| declare -i z | declare -i z | ||
| z=0 | z=0 | ||
| i=0 | i=0 | ||
| filename=/ | filename=/ | ||
| + | echo " | ||
| echo " | echo " | ||
| cnt=$(ping -c 1 $1 | awk -F, '/ | cnt=$(ping -c 1 $1 | awk -F, '/ | ||
| + | |||
| echo "Count ping to host $1 = $cnt" | echo "Count ping to host $1 = $cnt" | ||
| + | |||
| if [ $cnt -eq 0 ]; then | if [ $cnt -eq 0 ]; then | ||
| - | echo $cnt > $filename | + | |
| - | echo "Send WOL to $1 and wait 1 minutes" | + | |
| - | sudo /usr/bin/etherwake -i em1 $1 | + | # Time to wait for machine to boot in minutes |
| - | sleep | + | # Use value given as argument |
| - | while [ $i = 0 -a $z -lt 15 ] | + | if [ -n " |
| - | do | + | min=$2 |
| - | count=$(ping -c 5 $1 | awk -F, '/ | + | else |
| - | if [ $count -eq 0 ]; then | + | echo " |
| - | echo "$1 is down" | + | echo " |
| - | else | + | min=2 |
| - | i=1 | + | fi |
| - | fi | + | m=$min" |
| - | sleep 10s | + | |
| - | z=z+1 | + | |
| - | done | + | sudo /usr/sbin/etherwake -i enp5s0 |
| + | sleep $m | ||
| + | while [ $i = 0 -a $z -lt 18 ] | ||
| + | do | ||
| + | count=$(ping -c 5 $1 | awk -F, '/ | ||
| + | if [ $count -eq 0 ]; then | ||
| + | | ||
| + | if [ $z -eq 17 ]; then | ||
| + | echo "$1 not up after `expr $min + 3` minutes... exiting" | ||
| + | exit 1 | ||
| + | fi | ||
| + | else | ||
| + | | ||
| + | echo "$1 is up" | ||
| + | exit 0 | ||
| + | | ||
| + | sleep 10s | ||
| + | z=z+1 | ||
| + | done | ||
| else | else | ||
| - | echo $cnt > $filename | + | |
| + | exit 0 | ||
| fi</ | fi</ | ||
| + | __**Explication: | ||
| + | * le script exécute la commande etherwake sur la machine spécifiée | ||
| + | * puis, la boucle while teste si la machine répond au ping | ||
| + | * après le nombre de minutes spécifiées en second argument, si la machine est en ligne, la sauvegarde est effectuée. Si la machine ne répond pas, le script attend encore 3 minutes supplémentaires | ||
| + | * si après les 3 minutes supplémentaires la machine ne répond toujours pas, le script s' | ||
| - | == et le fichier **shutdown.sh** qui prend en compte | + | < |
| + | Ici ' | ||
| + | </ | ||
| + | |||
| + | Ainsi pour utiliser ce script il faut ajouter ce paramètre à la configuration: | ||
| + | < | ||
| + | Cette commande envoi le paquet magique et attend ensuite 3 minutes (à adapter selon vos besoins) le réveil de la machine (si rien n'est donné en second argument, le script utilise la valeur de 2 minutes par défaut). | ||
| <file bash shutdown.sh> | <file bash shutdown.sh> | ||
| #!/bin/bash | #!/bin/bash | ||
| - | filename=/var/lib/backuppc/$1.laststate | + | # Backuppc user script |
| - | echo "Filename=$filename" | + | |
| - | declare -i laststate | + | if [ " |
| - | read laststate < $filename | + | echo |
| - | echo "Last State Host $1 = $laststate" | + | echo "The BackupPC user script takes two arguments:" |
| - | if [ $(date +%k) -lt 07 -o $(date +%k ) -gt 22 ] | + | echo " First: a host name ( with a corresponding |
| + | echo " Second: - either a number corresponding to the output of the backup process (0 = failed | ||
| + | echo " | ||
| + | echo | ||
| + | exit 1 | ||
| + | fi | ||
| + | |||
| + | # Array of computers, in the form: [hostname]=' | ||
| + | # these must be Administrator' | ||
| + | # Modify these according to your needs | ||
| + | declare -A names | ||
| + | names=( | ||
| + | | ||
| + | [hostname2]=' | ||
| + | [hostname3]=' | ||
| + | ) | ||
| + | |||
| + | for i in "${!names[@]}" | ||
| + | do | ||
| + | if [ $i = $1 ]; then | ||
| + | host_name=$i | ||
| + | upwd=${names[$i]} | ||
| + | fi | ||
| + | done | ||
| + | |||
| + | # Exit if no corresponding host name found | ||
| + | [ "$host_name" | ||
| + | |||
| + | # To stop a pc, if -f argument given ( wol script wasn't used and there is no host file ) | ||
| + | if [ " | ||
| then | then | ||
| - | if [ $2 != 1 ] | + | |
| - | then | + | exit 0 |
| - | if [ $laststate | + | fi |
| - | then | + | |
| - | echo "Sent SHUTDOWN to host $1" | + | # File to record the host status |
| - | / | + | filename=/ |
| - | else | + | if [ -f $filename ] |
| - | echo "SHUTDOWN not sent to $1 cause Host already UP before" | + | then |
| - | #echo sauvegarde terminé avec succès. | smbclient | + | |
| - | fi | + | |
| - | fi | + | read laststate < $filename |
| + | echo "Last State Host $host_name = $laststate" | ||
| else | else | ||
| - | if [ $2 = 1 ] | + | |
| - | then | + | |
| - | echo "Sauvegarde $1 OK" | + | |
| - | #echo sauvegarde terminé avec succès. | smbclient -M $1 -U ' | + | |
| - | fi | + | |
| - | if [ $laststate = 0 ] | + | |
| - | | + | |
| - | echo "Sent SHUTDOWN to host $1" | + | |
| - | / | + | |
| - | fi | + | |
| fi | fi | ||
| - | echo " | ||
| - | unlink $filename</ | ||
| + | # Actions after backup | ||
| + | if [ $2 = 1 ] # Successfull backup | ||
| + | then | ||
| + | echo " | ||
| + | if [ $laststate = 0 ] | ||
| + | then | ||
| + | # Last state off, send shutdown | ||
| + | echo "Sent SHUTDOWN to host $host_name" | ||
| + | / | ||
| + | else | ||
| + | # Last state : up | ||
| + | echo " | ||
| + | fi | ||
| + | elif [ $2 = 0 ] # backup error | ||
| + | then | ||
| + | echo " | ||
| + | # Only shutdown after unsuccesfull backup during out of office hours | ||
| + | #if [ $(date +%k) -lt 07 -o $(date +%k ) -gt 22 ] | ||
| + | #then | ||
| + | #/ | ||
| + | #fi | ||
| + | fi | ||
| + | |||
| + | if [ -f $filename ] | ||
| + | then | ||
| + | echo " | ||
| + | unlink $filename | ||
| + | fi</ | ||
| + | |||
| + | __**Explication: | ||
| + | * si le backup est réussi: si la machine était précédemment éteinte, le script exécute la commande d' | ||
| + | * si la machine était allumée avant, la commande d' | ||
| + | * si le second argument est ' | ||
| + | |||
| + | Ainsi pour utiliser ce script il faut ajouter ce paramètre à la configuration: | ||
| + | < | ||
| + | |||
| + | < | ||
| ==== Configuration de backuppc pour utiliser les scripts ==== | ==== Configuration de backuppc pour utiliser les scripts ==== | ||
| Ligne 527: | Ligne 615: | ||
| par | par | ||
| < | < | ||
| + | FIXME dans ce cas le backup pourrait essayer de se lancer alors que la machine n'est pas accessible. | ||
| + | < | ||
| et ajouter les chemins des scripts comme suit : | et ajouter les chemins des scripts comme suit : | ||
| Ligne 533: | Ligne 622: | ||
| $Conf{DumpPostUserCmd} | $Conf{DumpPostUserCmd} | ||
| - | Sauvegardez le fichier et recharger la configuration via l' | + | Sauvegardez le fichier et recharger la configuration via l' |
| Il ne vous reste plus qu'à activer le [[: | Il ne vous reste plus qu'à activer le [[: | ||
| Ligne 539: | Ligne 628: | ||
| ===== Faire une copie des sauvegardes sur un support externe avec RSYNC ===== | ===== Faire une copie des sauvegardes sur un support externe avec RSYNC ===== | ||
| - | **Backuppc** gère **la déduplication des données**. C'est à dire qu'il ne copie q'une seule fois un même fichier, et si ce fichier apparaît plusieurs fois, il crée des **liens matériels** (**hardlinks**) vers le fichier d' | + | **Backuppc** gère **la déduplication des données**. C'est à dire qu'après la copie des fichiers, si un fichier apparaît plusieurs fois, il n'en gardera qu'un seul exemplaire, en créant |
| Lorsqu' | Lorsqu' | ||
| Ligne 563: | Ligne 652: | ||
| ==== Erreur NT_STATUS... ==== | ==== Erreur NT_STATUS... ==== | ||
| - | Pour se connecter aux partages SMB, backuppc utilise smbclient et lui passe par défaut l' | + | Pour se connecter aux partages SMB, backuppc utilise |
| - | Apparament dans une version antérieure de smbclient, même si -N était spécifié, le mot de passe était quand même demandé. Ainsi même si le partage avait un mot de passe, smbclient pouvait s'y connecter.\\ | + | Apparament dans une version antérieure de **[[:smb#smbclient]]**, même si '' |
| - | Toutefois, ceci a été corrigé dans la nouvelle version de smbclient mais backuppc utilise toujours le -N. C'est pourquoi, cette option empêche de prendre en compte votre mot de passe et provoquera une erreur. | + | Toutefois, ceci a été corrigé dans la nouvelle version de smbclient mais backuppc utilise toujours le '' |
| - | Pour corriger ceci, sur [[# | + | Pour corriger ceci, sur [[# |
| ===== Liens utiles ===== | ===== Liens utiles ===== | ||
| - | * | + | |
| + | * [[http:// | ||
| * [[http:// | * [[http:// | ||
| - | * [[http://www.klipz.fr/tutoriel_backuppc.html]] **[fr]** | + | * [[https://backuppc.github.io/backuppc/|Le " |
| - | * [[http://www.aboutmyip.com/ | + | |
| - | * [[http:// | + | |
| - | * [[http:// | + | |
| ----- | ----- | ||
| - | // Contributeurs : [[: | + | // Contributeurs : [[: |
