Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
backuppc [Le 20/05/2012, 12:23]
82.67.94.143 [Manipulations sur les postes clients]
backuppc [Le 26/10/2017, 14:24]
0ol [Ajouter la machine à sauvegarder à la liste.]
Ligne 1: Ligne 1:
-{{tag>Lucid Natty Oneiric ​réseau serveur sécurité sauvegarde }}+{{tag>Trusty Xenial ​réseau serveur sécurité sauvegarde }}
 ---- ----
 +{{ :​image:​backuppc-logo.gif?​80|}}
 ====== Serveur de sauvegarde automatique : BackupPC ====== ====== Serveur de sauvegarde automatique : BackupPC ======
-{{ :​image:​backuppc-logo.gif?​150 |}} 
 **BackupPC** est un logiciel libre de [[:​sauvegarde|sauvegardes]] de données informatiques,​ publié sous licence GPL.\\ **BackupPC** est un logiciel libre de [[:​sauvegarde|sauvegardes]] de données informatiques,​ publié sous licence GPL.\\
 Il permet d'​assurer une politique de sauvegardes "​versionnées"​ pour des clients de différents types (Unix, GNU/Linux, Windows, Mac) Il permet d'​assurer une politique de sauvegardes "​versionnées"​ pour des clients de différents types (Unix, GNU/Linux, Windows, Mac)
- 
-===== 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 27: Ligne 24:
 Le logiciel se réveille toutes les heures pour sonder l'​ensemble des machines spécifiées dans le fichier **/​etc/​backuppc/​hosts**.\\ Le logiciel se réveille toutes les heures pour sonder l'​ensemble des machines spécifiées dans le fichier **/​etc/​backuppc/​hosts**.\\
 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'​hôte est dans sa période d'​exctinction,​ le serveur passe à la machine suivante. Ce qui peut-être bien pratique pour des machines nomades.+  * Interrogation de la période du Blackout: si l'​hôte est dans sa période d'​exctinction,​ le serveur passe à la machine suivante. Ce qui peut être bien pratique pour des machines nomades.
   * 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://​sourceforge.net/​apps/​mediawiki/​backuppc/​index.php?​title=Supporting_distros|supporté]] par un bon nombre de [[wpfr>​Linux#​Distributions|distributions linux]].\\ Backuppc est [[http://​sourceforge.net/​apps/​mediawiki/​backuppc/​index.php?​title=Supporting_distros|supporté]] par un bon nombre de [[wpfr>​Linux#​Distributions|distributions linux]].\\
 Étant disponible dans les [[:​dépôts]] de chaque [[:​versions|versions d'​Ubuntu]],​ il suffira d'​[[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] **[[apt>​backuppc|backuppc]]** [[http://​packages.ubuntu.com/​search?​keywords=backuppc&​searchon=names&​suite=all&​section=all|correspondant]] sur votre serveur de sauvegarde, puis de vous laissez guider. Étant disponible dans les [[:​dépôts]] de chaque [[:​versions|versions d'​Ubuntu]],​ il suffira d'​[[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] **[[apt>​backuppc|backuppc]]** [[http://​packages.ubuntu.com/​search?​keywords=backuppc&​searchon=names&​suite=all&​section=all|correspondant]] sur votre serveur de sauvegarde, puis de vous laissez guider.
Ligne 58: Ligne 53:
 </​note>​ </​note>​
  
-==== Version des backports ​==== +=== Ajout de l'​utilisateur dans le groupe backuppc :==
-Vous pouvez choisir d'installer une  version ​de backuppc plus récente depuis ​les [[:​depots#​backports|dépôts backports]].+Pour démarrer backuppc, il faut ajouter l'​utilisateur de la session dans le groupe backuppc. Pour cela, il faut exécuter la ligne de commande suivante :  
 + 
 +<​code>​sudo adduser [MON_USER] backuppc</​code>​ 
 + 
 +=== Ajout du fichier apache.conf ​=== 
 +Comme l'installation ne copie pas le /​etc/​backuppc/​apache.conf sur le serveur apache2. Il faut le faire soit même en copiant le fichier dans le répertoire /​etc/​apache2/​conf-available/​ avant de rendre actif le site: 
 +  * Copie du fichier .conf dans /​etc/​apache2/​conf-available/​ 
 +<​code>​sudo cp /​etc/​backuppc/​apache.conf /​etc/​apache2/​conf-available/​backuppc.conf</​code>​ 
 +  * Activation du site 
 +  sudo a2ensite backuppc.conf 
 +   
 +<​note>​ 
 +Le fichier ​de configuration a été renommé en backuppc.conf, ce qui permet de l'​identifier ​plus facilement parmi les autres fichiers. 
 +</​note>​ 
 +  * Un redémarrage du serveur web est nécessaire pour prendre en compte les modifications. 
 +<​code>​sudo /​etc/​init.d/​apache2 restart</​code>​
  
 ===== Utilisation ===== ===== Utilisation =====
Ligne 79: Ligne 89:
 ==== Mettre l'​interface en français ==== ==== Mettre l'​interface en français ====
 === Par l'​interface web === === Par l'​interface web ===
-Depuis le menu //Serveur -> Modifier la configuration -> CGI -> Language //+Depuis le menu //Serveur -> Modifier la configuration ​-> CGI -> Language //\\ 
 +Depuis le menu //Server -> Edit config ​-> CGI -> Language //
  
 === En ligne de commandes === === En ligne de commandes ===
Ligne 108: Ligne 119:
 En utilisant un [[wpfr>​lien_symbolique|un lien symbolique]] vous ne risquerez pas de problème lié à l'​écrasement du fichier de configuration lors d'une mise à jour. En utilisant un [[wpfr>​lien_symbolique|un lien symbolique]] vous ne risquerez pas de problème lié à l'​écrasement du fichier de configuration lors d'une mise à jour.
 </​note>​ </​note>​
-  * stopper le [[:​services|service]] backuppc: <​code>​sudo ​invoke-rc.d ​backuppc stop</​code>​+  * stopper le [[:​services|service]] backuppc: <​code>​sudo ​service ​backuppc stop</​code>​
   * créer votre répertoire de destination au préalable: <​code>​sudo mkdir /<​le_chemin/​repertoire_destination>/​backuppc/</​code>​   * créer votre répertoire de destination au préalable: <​code>​sudo mkdir /<​le_chemin/​repertoire_destination>/​backuppc/</​code>​
-  * copiez-y ce qui se trouve dans **/​var/​lib/​backuppc**:<​code>​sudo rsync -va /​var/​lib/​backuppc /<​le_chemin/​repertoire_destination>/​backuppc</​code>​+  * copiez-y ce qui se trouve dans **/​var/​lib/​backuppc**:<​code>​sudo rsync -va /​var/​lib/​backuppc /<​le_chemin/​repertoire_destination>/</​code>​
   * 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 **/​var/​lib/​backuppc**   * supprimer ou déplacer (au cas où) le répertoire **/​var/​lib/​backuppc**
   * créer votre [[wpfr>​lien_symbolique|lien symbolique]]:​ <​code>​sudo ln -s /<​le_chemin/​repertoire_destination>/​backuppc /​var/​lib/​backuppc</​code>​   * créer votre [[wpfr>​lien_symbolique|lien symbolique]]:​ <​code>​sudo ln -s /<​le_chemin/​repertoire_destination>/​backuppc /​var/​lib/​backuppc</​code>​
-  * Il ne reste plus qu'a relancer backuppc: <​code>​sudo ​invoke-rc.d ​backuppc start</​code>​+  ​* corriger le propriétaire du lien: <​code>​sudo chown -h backuppc:​backuppc /​var/​lib/​backuppc</​code>​ 
 +  ​* Il ne reste plus qu'a relancer backuppc: <​code>​sudo ​service ​backuppc start</​code>​
  
 ===== Configurer les sauvegardes ===== ===== Configurer les sauvegardes =====
-Vous trouverez dans cette sections ​les différents types de sauvegardes testés par les contributeurs. N'​hésitez pas à y ajouter votre méthode s'il n'y est pas déjà listé.+Vous trouverez dans cette section ​les différents types de sauvegardes testés par les contributeurs. N'​hésitez pas à y ajouter votre méthode s'il n'y est pas déjà listé.
   * [[#​Sauvegarder un répertoire local via tar]]   * [[#​Sauvegarder un répertoire local via tar]]
   * [[#​Sauvegarde du poste local sur un disque dur externe USB]]   * [[#​Sauvegarde du poste local sur un disque dur externe USB]]
Ligne 135: Ligne 147:
  
 Par défaut cette sauvegarde sera dans **/​var/​lib/​backuppc/​pc/​localhost** Par défaut cette sauvegarde sera dans **/​var/​lib/​backuppc/​pc/​localhost**
 +<note important>​En faisant comme ça, je n'ai obtenu qu'une erreur Tar 512. Je crois qu'​elle est due aux droits d'​accès. Pour y remédier, j'ai donc ajouté<​code>​backuppc ALL=NOPASSWD:​ /​bin/​tar</​code>​ au fichier /​etc/​sudoers et mis /​usr/​bin/​sudo devant la commande Tar de backuppc (Modifier la configuration -> Xfer -> TarClientCmd. Ma commande complète est : <​code>/​usr/​bin/​sudo LC_ALL=C $tarPath -c -v -f - -C $shareName+ --totals</​code></​note>​
  
 ===== Sauvegarde du poste local sur un disque dur externe USB ===== ===== Sauvegarde du poste local sur un disque dur externe USB =====
  
   * Formater le disque dur USB  par exemple en EXT3 ou [[:EXT4]]. \\ Vous pouvez effectuer cette manipulation depuis le menu //Système -> Administration -> Éditeur de partitions//​ ou par exemple avec [[:​Gparted]].   * Formater le disque dur USB  par exemple en EXT3 ou [[:EXT4]]. \\ Vous pouvez effectuer cette manipulation depuis le menu //Système -> Administration -> Éditeur de partitions//​ ou par exemple avec [[:​Gparted]].
-  * Créer un répertoire pour la sauvegarde sur le disque USB <​code>​mkdir /​media/​disk/​sauvegardes/​backuppc/​localhost</​code>​ +  * Changer ​le lieu de stockage avec un lien symbolique ​comme indiqué au paragraphe [[backuppc#​ou_sont_sauvegardees_les_donnees|Où sont sauvegardées les données ?]], le répertoire ​de destination étant sur le disque dur externe (par exemple ​/​media/​disk/​sauvegardes/​backuppc/​).
-  * Copier la configuration sur le disque USB <​code>​sudo cp -r /​var/​lib/​backuppc/​pc/​localhost /​media/​disk/​sauvegardes/​backuppc/​localhost</​code>​ +
-  * Donner les droits pour backuppc à ce répertoire <​code>​sudo chown backuppc:​backuppc /​media/​disk/​sauvegardes/​backuppc -R</​code>​ +
-  * Renommer (ou supprimer) le répertoire ​de sauvegarde originel <​code>​sudo mv /​var/​lib/​backuppc/​pc/​localhost /​var/​lib/​backuppc/​pc/​localhost_ori</​code>​ +
-  * Créer ​un lien symbolique ​entre **/var/lib/backuppc** et le nouveau ​répertoire ​<​code>​sudo ln -s /​media/​disk/​sauvegardes/​backuppc/​localhost /​var/​lib/​backuppc/​pc/​localhost</​code>​+
   * Modifier les horaires de sauvegarde pour éviter qu'il ne sauvegarde automatiquement quand le disque est débranché\\ //localhost -> Modifier la configuration -> Horaires//   * Modifier les horaires de sauvegarde pour éviter qu'il ne sauvegarde automatiquement quand le disque est débranché\\ //localhost -> Modifier la configuration -> Horaires//
  
Ligne 151: Ligne 160:
  
 De plus, il est nécessaire que l'​utilisateur Backuppc puisse se connecter en SSH sur les postes clients.\\ De plus, il est nécessaire que l'​utilisateur Backuppc puisse se connecter en SSH sur les postes clients.\\
-Pour se faire, vous pouvez utiliser la méthode standard que vous trouverez ​[[http://​backuppc.sourceforge.net/​faq/​ssh.html|ici]] qui utilise le compte [[:root]] désactivé par défaut sur Ubuntu.\\ +Pour se faire, vous avez le choix entre 2 méthodes:​ 
-Cependant, __préférez la méthode ​suivante__, utilisable ​pour toute distribution ayant [[:​sudo|sudo]], qui vous permettra de ne pas avoir besoin d'​activer le compte root ni de lui autoriser des connexions via [[:SSH]].+  - La [[#​methode_standard|méthode standard]] qui utilise le compte [[:root]] désactivé par défaut sur Ubuntu.\\  
 +  - Une [[#​methode_avec_sudo|méthode ​alternative]],​ basé sur le compte backup et l'​usage de sudo, utilisable ​avec toute distribution ayant [[:​sudo|sudo]].
  
-{{ :image:backuppc_rsync.png?400nolink ​|}}+<​note>​ 
 +Si vous avez plusieurs clients vous pouvez utiliser le très pratique [[:cssh]] 
 +</​note>​ 
 + 
 +==== Méthode standard ==== 
 +Plus simple à mettre en place. (([[http://​backuppc.sourceforge.net/​faq/​ssh.html|la page ssh de la FAQ backuppc]])) 
 + 
 +{{:image:backuppc:​backuppc-rsync-root.png?nolink&​400|}}
  
-==== Manipulations sur le serveur de sauvegarde ​====+=== Manipulations sur le serveur de sauvegarde.===
   * Passer en utilisateur "​backuppc"​ <​code>​sudo -i -u backuppc</​code>​   * Passer en utilisateur "​backuppc"​ <​code>​sudo -i -u backuppc</​code>​
-  * Mettez en place un système de [[ssh#​authentification_par_un_systeme_de_cles_publiqueprivee|clé publique/​clé privée]] à savoir:+  * Mettez en place un système de [[:ssh#​authentification_par_un_systeme_de_cles_publiqueprivee|clé publique/​clé privée]] à savoir:
     * Générer le couple clef publique et clef privée sans mettre de mot de passe <​code>​ssh-keygen -t rsa -b 2048</​code>​     * Générer le couple clef publique et clef privée sans mettre de mot de passe <​code>​ssh-keygen -t rsa -b 2048</​code>​
     * Vérifier que la clé est bien générée <​code>​cat ~/​.ssh/​id_rsa.pub</​code>​     * Vérifier que la clé est bien générée <​code>​cat ~/​.ssh/​id_rsa.pub</​code>​
Ligne 167: Ligne 184:
 -rw-r--r-- 1 backuppc backuppc 4862 2011-07-17 19:58 known_hosts</​code>​ Si les [[:droits]] ne sont pas corrects, utiliser la commande **chmod** pour [[:​permissions#​en_ligne_de_commande|modifier les permissions]] -rw-r--r-- 1 backuppc backuppc 4862 2011-07-17 19:58 known_hosts</​code>​ Si les [[:droits]] ne sont pas corrects, utiliser la commande **chmod** pour [[:​permissions#​en_ligne_de_commande|modifier les permissions]]
  
-==== Manipulations sur les postes clients ==== 
-Nous allons utiliser le compte "​backup"​. Ce compte est pré-existant sous Ubuntu selon la norme [[wpfr>​Filesystem_Hierarchy_Standard|FHS ]]. Comme peut le voir dans ** /etc/passwd **, le répertoire personnel de cet "​utilisateur"​ est /​var/​backups. 
  
-<note+=== Manipulations sur les postes clients.=== 
-Si vous avez plusieurs clients vous pouvez ​utiliser ​le très pratique ​[[:cssh]] +== Placer la clef publique== 
-</note>+  * Créer le répertoire **/​root/​.ssh** si il n'​existe pas encore. 
 +  sudo mkdir /​root/​.ssh 
 +  * [[:​tutoriel:​comment_modifier_un_fichier|Editer le fichier]] **/​root/​.ssh/​authorized_keys** avec les droits d'​administration ​<code> sudo vim /​root/​.ssh/​authorized_keys </code
 +  * Ajouter dans le fichier, la clef publique de l'​utilisateur "​backuppc"​ [[#​Manipulations sur le serveur de sauvegarde|précédemment générée]] ((donc visible dans le fichier **id_rsa.pub** du [[:​fichier_caché|répertoire caché]] **.ssh** dans le __Dossier Personnel du **serveur** de backup__)). //​(Vous ​pouvez ​par exemple éditer les deux fichiers et  faire un simple copier/​coller.)//​ 
 +  * Pour plus de sécurité, rajouter au début du fichier la directive <​file>​from="​serveur"</​file>​ 
 +  * Vous devriez désormais avoir:  
 +  * Sous le compte root 
 +<​code>​ 
 +sudo -i 
 +cat ~/​.ssh/​authorized_keys 
 +from="​serveur"​ ssh-rsa AAAAB3N123456789xyz.......== backuppc@serveur 
 +</​code>​ 
 + 
 +== Configuration de sshd== 
 +[[:tutoriel:​comment_modifier_un_fichier|Modifier avec les droits d'​administration]] le fichier **/​etc/​ssh/​sshd_config** 
 +<file bash **/etc/​ssh/​sshd_config**> 
 +PermitRootLogin without-password 
 +</​file>​ 
 +Avec cette directive les connexions SSH de **root** ne seront pas possible avec un mot de passe (qui par défaut ​ n'est pas utilisé sous Ubuntu) 
 + 
 +Seul les connexions utilisant une authentification par clef seront possible, et uniquement de l'​adresse du serveur si la directive ''​from=''​ est utilisée dans le fichier ** authorized_keys**. 
 + 
 +Il sera donc possible de paramétrer indépendamment les possibilités d'​authentification via SSH des autres utilisateurs. Il ne faudra cependant pas oublier d'​ajouter **root** en cas d'​usage des directives ''​AllowUsers''​ ou ''​AllowGroups''​. 
 + 
 +=== Test de connexion SSH=== 
 +Depuis le __serveur__ de sauvegarde, tenter une première connexion ssh vers le poste à sauvegarder pour l'​utilisateur "​backuppc"​. 
 +<​code>​ 
 +sudo -i -u backuppc 
 +ssh root@client</​code>​ 
 +Répondre "​yes",​ ce qui ajoutera votre client à la liste des //known hosts//​((hôtes connus)). 
 + 
 +==== Méthode avec sudo ==== 
 + 
 +{{:​image:​backuppc_rsync.png?​400nolink|}} 
 + 
 +=== Manipulations sur le serveur de sauvegarde=== 
 +Cette partie est commune ​ à la [[#​Manipulations_sur_le_serveur_de_sauvegarde.|méthode standard]] 
 +=== Manipulations sur les postes clients=== 
 +Nous allons utiliser le compte "​backup"​. Ce compte est pré-existant sous Ubuntu selon la norme [[wpfr>​Filesystem_Hierarchy_Standard|FHS ]]. Comme on peut le voir dans ** /etc/passwd **, le répertoire personnel de cet "​utilisateur"​ est /​var/​backups. 
 + 
 + 
 +== Placer la clef publique.==
 Pour chacun des clients: Pour chacun des clients:
   * Créer le répertoire **.ssh** dans le Dossier Personnel <​code>​sudo mkdir /​var/​backups/​.ssh</​code>​   * Créer le répertoire **.ssh** dans le Dossier Personnel <​code>​sudo mkdir /​var/​backups/​.ssh</​code>​
-  * Créer le fichier authorized_keys <​code>​ sudo touch /​var/​backups/​.ssh/​authorized_keys </​code>​ 
   * [[:​tutoriel:​comment_modifier_un_fichier|Editer le fichier]] **/​var/​backups/​.ssh/​authorized_keys** avec les droits d'​administration <​code>​ sudo vim /​var/​backups/​.ssh/​authorized_keys </​code>​   * [[:​tutoriel:​comment_modifier_un_fichier|Editer le fichier]] **/​var/​backups/​.ssh/​authorized_keys** avec les droits d'​administration <​code>​ sudo vim /​var/​backups/​.ssh/​authorized_keys </​code>​
   * Ajouter dans le fichier, la clef publique de l'​utilisateur "​backuppc"​ [[#​Manipulations sur le serveur de sauvegarde|précédemment générée]] ((donc visible dans le fichier **id_rsa.pub** du [[:​fichier_caché|répertoire caché]] **.ssh** dans le __Dossier Personnel du **serveur**__)). //(Vous pouvez par exemple éditer les deux fichiers et  faire un simple copier/​coller.)//​   * Ajouter dans le fichier, la clef publique de l'​utilisateur "​backuppc"​ [[#​Manipulations sur le serveur de sauvegarde|précédemment générée]] ((donc visible dans le fichier **id_rsa.pub** du [[:​fichier_caché|répertoire caché]] **.ssh** dans le __Dossier Personnel du **serveur**__)). //(Vous pouvez par exemple éditer les deux fichiers et  faire un simple copier/​coller.)//​
-  * Pour plus de sécurité, rajouter au début du fichier la directive <​file>​from="​<serveur>"</​file>​+  * Pour plus de sécurité, rajouter au début du fichier la directive <​file>​from="​serveur"</​file>​
   * Vous devriez désormais avoir: ​   * Vous devriez désormais avoir: ​
   * Sous le compte backup   * Sous le compte backup
Ligne 184: Ligne 239:
 sudo -i -u backup ​ sudo -i -u backup ​
 cat ~/​.ssh/​authorized_keys cat ~/​.ssh/​authorized_keys
-from="<serveur>" ssh-rsa AAAAB3N123456789xyz.......== backuppc@<​serveur>​+from="​serveur"​ ssh-rsa AAAAB3N123456789xyz.......== backuppc@<​serveur>​
 </​code>​ </​code>​
  
-== Configuration de sshd ===+== Configuration de sshd.==
  
 [[:​tutoriel:​comment_modifier_un_fichier|Modifier avec les droits d'​administration]] le fichier **/​etc/​ssh/​sshd_config** pour indiquer qu'il n'y pas besoin d'​autoriser root, ni des connexions par mot de passe pour vos sauvegardes. [[:​tutoriel:​comment_modifier_un_fichier|Modifier avec les droits d'​administration]] le fichier **/​etc/​ssh/​sshd_config** pour indiquer qu'il n'y pas besoin d'​autoriser root, ni des connexions par mot de passe pour vos sauvegardes.
Ligne 194: Ligne 249:
 </​file>​ </​file>​
  
-== Configuration de sudo ===+== Configuration de sudo.==
  
 À l'aide de [[:​sudoers|visudo]] mettez dans le fichier sudoers : À l'aide de [[:​sudoers|visudo]] mettez dans le fichier sudoers :
Ligne 200: Ligne 255:
 backup ALL=NOPASSWD:​ /​usr/​bin/​rsync backup ALL=NOPASSWD:​ /​usr/​bin/​rsync
 </​file>​ </​file>​
 +
 +
 +Ceci donnera à l'​utilisateur "​backup"​ le droit [[:sudo]] pour lancer [[:rsync]] sans demande de mot de passe.
  
 Pour pouvoir mener à bien cette opération, il faut revenir à un utilisateur qui ait les droits sudo, en fait à l'​utilisateur que vous étiez avant de passer à l'​utilisateur backup. Pour pouvoir mener à bien cette opération, il faut revenir à un utilisateur qui ait les droits sudo, en fait à l'​utilisateur que vous étiez avant de passer à l'​utilisateur backup.
Ligne 207: Ligne 265:
 <​code>​sudo visudo</​code>​ <​code>​sudo visudo</​code>​
  
-Ceci donnera à l'​utilisateur "​backup"​ le droit [[:sudo]] pour lancer [[:rsync]] sans demande de mot de passe. 
  
-==== Test de connexion SSH====+=== Test de connexion SSH===
  
 Depuis le __serveur__ de sauvegarde, tenter une première connexion ssh vers le poste à sauvegarder pour l'​utilisateur "​backuppc"​. Depuis le __serveur__ de sauvegarde, tenter une première connexion ssh vers le poste à sauvegarder pour l'​utilisateur "​backuppc"​.
Ligne 215: Ligne 272:
 sudo -i -u backuppc sudo -i -u backuppc
 ssh backup@<​client></​code>​ ssh backup@<​client></​code>​
-Répondre "​yes",​ ce qui ajoutera votre client à la liste des //known hosts//​((hôtes connus))+Répondre "​yes",​ ce qui ajoutera votre client à la liste des //known hosts//​((hôtes connus)).
  
-==== Paramétrer l'​usage de ce compte par backuppc ​====+<​note>​ 
 +En cas d'​erreur SSH vous pouvez rendre la commande plus volubile avec l'​option -v de **ssh**. 
 +Regarder aussi ** /​var/​log/​syslog ** sur le poste à sauvegarder. 
 +Dans tous les cas jeter un œil sur la page consacrée à [[:ssh]]. 
 +En cas de blocage suite à la réinstallation du poste à sauvegarder,​ la partie traitant de la [[:​ssh#​Gestion_des_clés|gestion des clefs]] vous sera sûrement d'une grande aide. 
 +</​note>​ 
 +<​note>​ 
 +Si l'​erreur ssh est "This account is currently not available.",​ sur le client, éditer /​etc/​passwd,​ et pour le compte "​backup"​ remplacer "/​usr/​sbin/​nologin"​ par "/​bin/​sh"​ (rencontré sur ubuntu 14.10) 
 +</​note>​ 
 +=== Paramétrer l'​usage de ce compte par backuppc ===
  
 ==  Par l'​interface Web== ==  Par l'​interface Web==
 //onglet **Xfert** -> pour **rsync** -> chapitre **Chemins/​Commandes/​Args Rsync** // indiquer pour: //onglet **Xfert** -> pour **rsync** -> chapitre **Chemins/​Commandes/​Args Rsync** // indiquer pour:
-  * ** RsyncClientCmd ** <​file>​$sshPath -q -x -l backup $host /​usr/​bin/​sudo ​$rsyncPath $argList+</​file>​ +  * ** RsyncClientCmd ** <​file>​$sshPath -q -x -l backup $host $rsyncPath $argList+</​file>​ 
-  * ** RsyncClientRestoreCmd ** <​file>​$sshPath -q -x -l backup $host /​usr/​bin/​sudo ​$rsyncPath $argList+ </​file>​+  * ** RsyncClientRestoreCmd ** <​file>​$sshPath -q -x -l backup $host $rsyncPath $argList+</​file>​
  
 == Depuis le fichier « /​etc/​backuppc/​config.pl » == == Depuis le fichier « /​etc/​backuppc/​config.pl » ==
 [[:​tutoriel:​comment_modifier_un_fichier|Modifier avec les droits d'​administration]] le fichier ** /​etc/​backuppc/​config.pl/​** comme suit : [[:​tutoriel:​comment_modifier_un_fichier|Modifier avec les droits d'​administration]] le fichier ** /​etc/​backuppc/​config.pl/​** comme suit :
 <file perl  /​etc/​backuppc/​config.pl>​ <file perl  /​etc/​backuppc/​config.pl>​
-# $Conf{RsyncClientCmd} = '​$sshPath -q -x -l root $host $rsyncPath $argList+';​ +# $Conf{RsyncClientCmd} = '​$sshPath -q -x -l root $hostIP ​$rsyncPath $argList+';​ 
-$Conf{RsyncClientCmd} = '​$sshPath -q -x -l backup $host /​usr/​bin/​sudo $rsyncPath $argList+';​ +$Conf{RsyncClientCmd} = '​$sshPath -q -x -l backup $hostIP ​/​usr/​bin/​sudo $rsyncPath $argList+';​ 
-# $Conf{RsyncClientRestoreCmd} = '​$sshPath -q -x -l root $host $rsyncPath $argList+';​ +# $Conf{RsyncClientRestoreCmd} = '​$sshPath -q -x -l root $hostIP ​$rsyncPath $argList+';​ 
-$Conf{RsyncClientRestoreCmd} = '​$sshPath -q -x -l backup $host /​usr/​bin/​sudo $rsyncPath $argList+';​+$Conf{RsyncClientRestoreCmd} = '​$sshPath -q -x -l backup $hostIP ​/​usr/​bin/​sudo $rsyncPath $argList+';​
 </​file>​ </​file>​
  
Ligne 280: Ligne 346:
 Sauvegarder le fichier et recharger la configuration depuis [[#​Connexion à l'​interface Web|l'​interface Web]]. ​ Sauvegarder le fichier et recharger la configuration depuis [[#​Connexion à l'​interface Web|l'​interface Web]]. ​
  
-==== Sauvegarder des postes Windows via « smb » ====+===== Sauvegarder des postes Windows via « smb » =====
  
 === Configuration des postes Windows === === Configuration des postes Windows ===
Ligne 317: Ligne 383:
 ==== Configuration du WOL sur le serveur ==== ==== Configuration du WOL sur le serveur ====
  
-L'​outil [[:etherwake|etherwake]] est parfait pour démarrer une machine à distance. Pour pouvoir utiliser ce dernier avec le nom de la machine au lieu de son adresse MAC, il faut compléter le fichier **/​etc/​ethers** :+L'​outil [[:wakeonlan|etherwake]] est parfait pour démarrer une machine à distance. Pour pouvoir utiliser ce dernier avec le nom de la machine au lieu de son adresse MAC, il faut compléter le fichier **/​etc/​ethers** :
 <​file>​ adresse:​MAC nom_machine </​file>​ <​file>​ adresse:​MAC nom_machine </​file>​
 Il va sans dire que le nom de la machine doit être déclaré comme dans le fichier ** /​etc/​backuppc/​hosts**. Il va sans dire que le nom de la machine doit être déclaré comme dans le fichier ** /​etc/​backuppc/​hosts**.
Ligne 378: Ligne 444:
 <​note>​Cette commande :<​file>​net rpc SHUTDOWN -f -I $1 -U administrateur%mdpadministrateur -t 30</​file>​peut ne pas fonctionner si le pc sous Windows n'​accepte pas l'​exécution de la commande d'​extinction à distance.\\ <​note>​Cette commande :<​file>​net rpc SHUTDOWN -f -I $1 -U administrateur%mdpadministrateur -t 30</​file>​peut ne pas fonctionner si le pc sous Windows n'​accepte pas l'​exécution de la commande d'​extinction à distance.\\
 Pour parer à cela, vous êtes invité à lire le dernier message de [[http://​forum.ubuntu-fr.org/​viewtopic.php?​pid=2988204#​p2988204|cette discussion]]</​note>​ Pour parer à cela, vous êtes invité à lire le dernier message de [[http://​forum.ubuntu-fr.org/​viewtopic.php?​pid=2988204#​p2988204|cette discussion]]</​note>​
 +
 +== autre exemple de fichier **wol.sh** ​ qui conserve ​ l'​état précédent ==
 +
 +<file bash wol.sh>
 +#!/bin/bash
 +declare -i z
 +z=0
 +i=0
 +filename=/​var/​lib/​backuppc/​$1.laststate
 +echo "​Filename=$filename"​
 +cnt=$(ping -c 1 $1 | awk -F, '/​received/​{print $2*1}'​)
 +echo "Count ping to host $1 = $cnt"
 +if [ $cnt -eq 0 ]; then
 + echo $cnt > $filename
 + echo "Send WOL to $1 and wait 1 minutes"​
 + sudo /​usr/​bin/​etherwake -i em1 $1
 + sleep 1m
 + while [ $i = 0 -a $z -lt 15 ]
 + do
 + count=$(ping -c 5 $1 | awk -F, '/​received/​{print $2*1}'​)
 + if [ $count -eq 0 ]; then
 +       ​ echo "$1 is down"
 + else
 + i=1
 +        fi
 + sleep 10s
 + z=z+1
 + done
 +else
 + echo $cnt > $filename
 +fi</​file>​
 +
 +== et le fichier **shutdown.sh** ​ qui prend en compte ​ l'​état précédent ==
 +
 +<file bash shutdown.sh>​
 +#!/bin/bash
 +filename=/​var/​lib/​backuppc/​$1.laststate
 +echo "​Filename=$filename"​
 +declare -i laststate
 +read laststate < $filename
 +echo "Last State Host $1 = $laststate"​
 +if [ $(date +%k) -lt 07 -o $(date +%k ) -gt 22 ]
 +then
 + if [ $2 != 1 ]
 + then
 + if [ $laststate ​ != 1 ]
 + then
 + echo "Sent SHUTDOWN to host $1"
 + /​usr/​bin/​net rpc SHUTDOWN -f -I $1 -U '​Administrateur%motdepasse'​ -t 30
 + else
 + echo "​SHUTDOWN not sent to $1 cause Host already UP before"​
 + #echo sauvegarde terminé avec succès. | smbclient -M $1 -U '​Administrateur%motdepasse'​
 + fi
 + fi
 +else
 +        if [ $2 = 1 ]
 +        then
 + echo "​Sauvegarde $1 OK"
 +            #echo sauvegarde terminé avec succès. | smbclient -M $1 -U '​Administrateur%motdepasse'​
 +        fi
 +        if [ $laststate = 0 ]
 +        then
 + echo "Sent SHUTDOWN to host $1"
 + /​usr/​bin/​net rpc SHUTDOWN -f -I $1 -U '​Administrateur%motdepasse'​ -t 30
 +        fi
 +fi
 +echo "​Delete $filename"​
 +unlink $filename</​file>​
  
  
Ligne 386: Ligne 520:
 par par
 <​file>​$Conf{PingPath} = '/​bin/​echo';</​file>​ <​file>​$Conf{PingPath} = '/​bin/​echo';</​file>​
 +FIXME dans ce cas le backup pourrait essayer de se lancer alors que la machine n'est pas accessible. 
 +<​note>​**Pour faire encore mieux**, vous pouvez aussi réaliser un ping a travers le démon ssh en executant simplement la commande **cat** sur le fichier **/​dev/​null**. Ceci permettra de tester que le démon ssh est bien démarré et donc de tester que le serveur est accessible. Pour faire ceci, remplassez la configuration précédente par la ligne ci-contre: **$Conf{PingPath} = '/​usr/​bin/​ssh $host cat /​dev/​null';​** </​note>​
 et ajouter les chemins des scripts comme suit : et ajouter les chemins des scripts comme suit :
  
Ligne 395: Ligne 530:
  
 Il ne vous reste plus qu'à activer le [[:​wakeonlan|wol]] sur les postes clients... Il ne vous reste plus qu'à activer le [[:​wakeonlan|wol]] sur les postes clients...
 +
 +===== Faire une copie des sauvegardes sur un support externe avec RSYNC =====
 +
 +**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 des **liens matériels** (**hardlinks**) vers le fichier d'​origine.
 +
 +Lorsqu'​on sauvegarde avec un **rsync "​traditionnel"​** les sauvegardes de **Backuppc**,​ **rsync** ne gère pas les liens matériels, et recopie le fichier autant de fois qu'il y a de liens matériels. **Ce qui a pour effet de gonfler considérablement le volume des données**.
 +
 +Pour éviter cela, on indique à **rsync** qu'il doit gérer les liens matériels avec l'​option **-H**. Ce qui donne  :
 +
 +<​file>​rsync -rlptDvzH --delete-after /​chemin/​sauvegardes/​backuppc/​ /​chemin/​vers/​support/​externe/​sauvegardes/​backuppc</​file>​
 +
 +**ATTENTION !!! : cette opération entraîne une forte consommation en CPU et en RAM !!!**
  
 ===== Erreurs ===== ===== Erreurs =====
Ligne 411: Ligne 558:
  
 Pour se connecter aux partages SMB, backuppc utilise smbclient et lui passe par défaut l'​argument -N qui siginifie "no password"​((pas de mot de passe)).\\ Pour se connecter aux partages SMB, backuppc utilise smbclient et lui passe par défaut l'​argument -N qui siginifie "no password"​((pas de mot de passe)).\\
-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, ​smblient ​pouvait s'y connecter.\\+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.\\
 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 -N. C'est pourquoi, cette option empêche de prendre en compte votre mot de passe et provoquera une erreur.
  
Ligne 425: Ligne 572:
  
 ----- -----
-// Contributeurs : [[:​utilisateurs:​Cyprien]],​wouldsmina,​ [[:​utilisateurs:​naoli]],​ snoopysnoopy. // \\ +// Contributeurs : [[:​utilisateurs:​Cyprien]],​wouldsmina,​ [[:​utilisateurs:​naoli]],​ snoopysnoopy [[:​utilisateurs:​Ool]], gg [[:​utilisateurs:​gfontaniere]]  //
-// (partie ​[[#​sauvegarder_un_poste_linux_distant_via_rsync_ssh|rsync pour linux avec sudo]]) : [[:​utilisateurs:​Ool]] //+
  • backuppc.txt
  • Dernière modification: Le 13/05/2023, 17:08
  • par 79.80.66.205