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 25/10/2017, 15:39] – [Méthode avec sudo] 193.51.46.10 | backuppc [Le 02/11/2025, 21:53] (Version actuelle) – samba -> smb krodelabestiole | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag>Trusty Xenial | + | {{tag>bionic focal réseau serveur sécurité sauvegarde }} |
| - | ---- | + | |
| {{ : | {{ : | ||
| ====== Serveur de sauvegarde automatique : BackupPC ====== | ====== Serveur de sauvegarde automatique : BackupPC ====== | ||
| Ligne 10: | 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 36: | Ligne 36: | ||
| ===== Installation ===== | ===== Installation ===== | ||
| 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 54: | 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 70: | Ligne 65: | ||
| * Un redémarrage du serveur web est nécessaire pour prendre en compte les modifications. | * Un redémarrage du serveur web est nécessaire pour prendre en compte les modifications. | ||
| < | < | ||
| + | |||
| + | < | ||
| + | Si vous avez une page d' | ||
| + | < | ||
| + | </ | ||
| ===== Utilisation ===== | ===== Utilisation ===== | ||
| Ligne 95: | Ligne 95: | ||
| [[: | [[: | ||
| <file perl / | <file perl / | ||
| - | | + | |
| </ | </ | ||
| pour obtenir | pour obtenir | ||
| <file perl / | <file perl / | ||
| - | | + | |
| </ | </ | ||
| Ligne 110: | 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 192: | 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 234: | 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 287: | Ligne 287: | ||
| == Par l' | == Par l' | ||
| //onglet **Xfert** -> pour **rsync** -> chapitre **Chemins/ | //onglet **Xfert** -> pour **rsync** -> chapitre **Chemins/ | ||
| - | * ** RsyncClientCmd ** < | + | * ** RsyncClientCmd ** < |
| - | * ** RsyncClientRestoreCmd ** < | + | * ** RsyncClientRestoreCmd ** < |
| == Depuis le fichier « / | == Depuis le fichier « / | ||
| Ligne 329: | 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 344: | 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 354: | 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 369: | 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 375: | 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 422: | 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 445: | 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 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 557: | 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 : [[: |
