
Dans la suite des tutoriels sur backuppc, voici le billet sur le paramétrage d’un client sous linux et plus précisément uniquement pour le dossier home de l’utilisateur. Car en effet un simple utilisateur n’aura pas les droits nécessaires pour faire des sauvegardes et des restaurations dans des dossiers comme /boot, /var, etc. On va donc commencer par voir le principe de fonctionnement de backuppc pour se connecter à votre ordinateur client. En fait c’est très simple il s’agit d’une connexion via ssh en utilisant une paire de clé qui permettra de s’affranchir de rentrer un login et un mot de passe au serveur backuppc, et donc que tout puisse être automatiser. Si vous désirez en savoir plus sur ssh, j’avais fais précédemment deux articles sur le sujet, allez voir cette page.
Pour illustrer le tutoriel je vais prendre l’exemple suivant :
Sur backuppc serveur :
adresse ip : 192.168.0.20
compte utilisateur : nierdz
Sur backuppc client :
adresse ip : 192.168.0.30
compte utilisateur : bobby
dossiers à sauvegarder : /home/bobby/temp1 et /home/bobby/temp2
On va donc commencer par la création des clés coté serveur pour l’utilisateur backuppc, car c’est lui qui devra pouvoir se connecter automatiquement a votre client.
Sur le serveur :
passage en root :
$ suou pour les ubunteros
$ sudo su
puis on passe sur l’utilisateur backuppc :
# su backuppcensuite on genère les clés :
$ ssh-keygen -t rsa
Vous tapez sur la touche entré pour chaque question et ne rentrez surtout pas de passphrase. Si tous c’est bien déroulé vous devriez avoir vos clés dans /var/lib/backuppc/.ssh
On va ensuite copié la clé publique dans un dossier qui sera accessible depuis le pc client. Pour cela vous devez donc avoir un utilisateur sur votre serveur sur lequel on pourra accéder via ssh depuis le client. Pour l’exemple on va dire que l’utilisateur sur le serveur se nomme nierdz. On va donc coller la clé publique dans son dossier home pour pouvoir y avoir accès via le pc client en ssh. (vous suivez?
)
Mais pour pouvoir coller la clé dans le dossier de notre ami nierdz il faut être root car backuppc n’a pas les droits en écriture dans le dossier /home/nierdz. On repasse donc en root :
$ suou pour les ubuntu users
$ sudo su
Puis on copie la clé :
# cp /var/lib/backuppc/.ssh/id_rsa.pub /home/nierdzEt pour finir on va donner les droits à nierdz sur cette clé :
# chmod 777 /home/nierdz/id_rsa.pubEnsuite on va passer sur le pc client pour récupérer la clé publique. Mais avant tout il faut bien penser à être loguer avec le compte utilisateur qui correspond au dossier que l’on veut sauvegarder. Dans notre exemple on va dire que le dossier en question est /home/bobby et que l’utilisateur est donc bobby. Et il faut également penser à installer ssh (client et serveur) (le client sert durant l’installation et le serveur sert pour backuppc) :
$ suou pour les ubunteros toujours :
$ sudo su
et on installe ssh :
# apt-get install sshEnsuite se logue sur bobby :
# su bobbyet on se met dans son dossier tant qu’a faire :
$ cd ~Et on va chercher la clé que l’on a copié sur le dossier home sur le serveur :
$ scp nierdz@192.168.0.20:/home/nierdz/id_rsa.pub .
Attention il ne faut surtout pas oublier le point à la fin de la ligne de commande qui est précédé d’un espace. Le serveur est à remplacer par l’adresse ip du serveur. Et si vous ne vous êtes jamais connecté sur le serveur en ssh il va vous être demander de taper yes (ou oui selon la localisation de votre OS) pour authentifier le serveur. Puis vous devez simplement entrer le password de nierdz (votre utilisateur sur le serveur) pour télécharger la clé publique.
Ensuite on va copier la clé dans authorized_keys pour que la connexion de backuppc soit automatisée.
$ cat id_rsa.pub >> ~/.ssh/authorized_keys
Ensuite on va aller sur le serveur pour effectuer une première connexion afin de ne pas avoir à remplir le fichier /etc/backuppc/.ssh/know_hosts à la main. Laissons debian le faire pour nous. Pour cela il faut effectuer un première connexion avec l’utilisateur backuppc sur le pc client et accepter d’authentifier le serveur ssh (dans notre cas il s’agit donc du client backuppc, et oui c’est tordu
).
Sur le serveur on commence par passer en root :
$ suou toujours pour les mêmes
:
$ sudo su
Puis on se connecte avec backuppc :
# su backuppcEt là une étape primordiale car si cela ne fonctionne pas il est inutile d’aller plus loin, c’est que vous avez déconné quelques part…
$ ssh bobby@192.168.0.30
Il faut remplacer 192.168.0.30 par l’adresse ip du pc client backuppc et bobby par le compte utilisateur du pc client. Et tapez yes ou oui pour authentifier le serveur.
Il ne vous reste plus qu’a créer un fichier de config du nom de votre host client que vous placerez dans le dossier /etc/backuppc.
Voici un exemple de fichier de configuration :
$Conf{XferMethod} = 'rsync'; $Conf{RsyncShareName} = [ '/home/nierdz/temp1', '/home/nierdz/temp2' ];
On appellera ce fichier du nom du hostname du client. Par exemple si le client a un hostname qui est linuxhost vous devrez appeler ce fichier linuxhost.pl
Si vous ne savez pas quel est le hostname de votre pc client essayer la commande « hostname » dans un terminal, tout simplement.
Ensuite toujours sur le serveur on va éditer le fichier /etc/backuppc/hosts pour y ajouter notre nouveau client.
# nano /etc/backuppc/hostsà la fin du fichier on ajoute
linuxhost 0 backuppc,bobby
Petite explication :
- linuxhost correspond au hostname de votre pc client
- 0 signifie qu’il a une adresse fixe (que l’on déclarera par la suite dans le fichier /etc/hosts du serveur)
- backuppc signifie que l’utilisateur backuppc peut effectuer des opérations sur linuxhost via l’interface web de backuppc
- bobby est l’utilisateur à qui vous donnez les droits de faire des sauvegardes et restaurations sur le client linuxhost. Il est à noter qu’il n’y a aucun rapport avec le nom de l’user sur le client. On aurait très bien pu utiliser bob au lieu de bobby. Mais à ce moment il aurait fallu se connecter en tant que bob sur l’interface web de backuppc. (j’espère que vous suivez toujours
)
On va d’ailleurs créer le user bobby sur le serveur si ce n’est pas déjà fait (car si vous avez suivi un minimum vous auriez déjà du faire cette manipulation durant l’installation de backuppc sur le serveur).
Création de bobby pour backuppc :
# htpasswd /etc/backuppc/htpasswd bobbyEnsuite on va indiquer l’adresse ip de notre client backuppc dans /etc/hosts
# nano /etc/hostset on ajoute en fin de fichier
192.168.0.30 linuxhost
Ensuite on relance backuppc :
/etc/init.d.backuppc restart
Étant donné que backuppc doit se connecter avec un compte utilisateur on va devoir lui spécifier dans l’interface. Rendez vous donc sur http://192.168.0.20/backuppc. Puis Sélectionner votre client>Modifier la configuration>Xfer. Et là vous allez changer les valeurs de RsyncClientCmd et RsyncClientRestoreCmd. Remplacez tous simplement root par le nom du compte de votre client. Dans mon exemple je remplace donc root par bobby dans les deux valeurs.
Il ne vous reste plus qu’a relancer votre serveur backuppc :
/etc/init.d/backuppc restart
Et vous pouvez faire un test pour voir si tout fonctionne. Si vous rencontrez des difficultés ou que vous voulez corriger ou compléter mon billet, n’hésitez pas à laisser un commentaire.
Mots-clefs : backup, backuppc, linux, restauration, rsync, sauvegarde
Bonjour,
J’ai fais toutes les manip expliquée et je ne parviens toujours pas à lancer la sauvegarde sur mon client.
Monserveur est sous ubuntu mon client aussi le ssh fonctionne entre les deux machines, le retour d’erreur est :
full backup started for directory /home/laurent/
Running: /usr/bin/ssh -q -x -l root 192.168.0.5 /usr/bin/rsync –server –sender –numeric-ids –perms –owner –group -D –links –hard-links –times –block-size=2048 –recursive –ignore-times . /home/laurent/
Xfer PIDs are now 6760
Read EOF: Connection reset by peer
Tried again: got 0 bytes
Done: 0 files, 0 bytes
Got fatal error during xfer (Unable to read 4 bytes)
Backup aborted (Unable to read 4 bytes)
Not saving this as a partial backup since it has fewer files than the prior one (got 0 and 0 files versus 0)
Mes deux machines ont la même architecture …
Une aide serait la bienvenue !
La sauvegarde locale fonctionne sur le serveur.
Merci
Bonjour Laurent,
J’ai eu le même problème que toi, en fait il semblerait que backuppc essai de se connecter en root sur le pc client, il faudrait que tu te connectes sur le pc client et que tu récupéres la clef comme indiquée plus haut:
scp user@192.168.0.20:/home/user/id_rsa.pub .
tu es connecté en tant que root:
cat id_rsa.pub > ~/.ssh/authorized_keys
tu auras la clef plublique aussi pour l’utilisateur root.
relance le backup depuis le cgi backuppc
Ca a marché pour moi
Salut,
je confirme la soluce d’adrien.
Il m’était arrivé exactement la même chose la première fois que j’ai voulu mettre en place backuppc.
Bonjour,
Pour ma part ça ne fonctionne pas.
J’essaie de mettre en place un backuppc qui devra faire une savegarde d’un autre serveur
Les 2 serveurs utilisés sont des Debian Lenny
sur mon backuppc j’ai effectué :
su – backuppc
ssh-keygen -t rsa
Copierl a clé sur mon serveur à sauvergarder ; j’arrive à me connecter en ssh dessus…
Ensuite j’ai ajouté sur le serveur à sauvegarder dans le fichier /etc/hosts
@IP_du_serveur_backuppc hostname
Idem sur le serveur de backup ; les ping passent bien entre les 2 serveurs
Sur l’interface web backuppc j’ai ajouté mon serveur et passé dans la configuration :
XferMethod : rsync
Et quand je lance une sauvegarde j’ai ceci :
2009-11-10 14:28:21 Got fatal error during xfer (Unable to read 4 bytes)
Dernière information j’ai modifié le fichier de configuration et changer cette variable comme suit :
/etc/backuppc/config.pl
$Conf{TopDir} = ‘/data/backuppc’;
Puis j’ai effectué un :
# chown -R backuppc:backuppc /data/backuppc/
Merci pour votre aide
Et je reconfirme la soluce d’adrien.
Quand tu as ce message d’erreur c’est que backuppc n’arrive pas à se connecter en SSH au serveur.
Pour vérifier que le ssh fonctionne, il faut que tu passe en user backuppc et que tu tentes de te connecter à ton client. Et dans ta situation je pense que ça ne passe pas.
PS : pour passer en user backuppc il faut d’abord faire su puis su backuppc.
euh moi le probleme est un peu diferent quand je lance un backup via rsync le backup se lance consomme tout le cpu du serveur on voit bien la commande tourne sur le serveur comme client mais rien d autre ne se passe des jour durant !
@harry réponse très tardive, mais réponse quand même
. bon j’espère que tu as résolu ton problème, mais sinon je te conseillerai de tout simplement réinstaller backuppc sur le serveur et si ça ne fonctionne pas de changer de version et si ça ne fonctionne toujours pas de le compiler à la mano.
Bonjour,
Un grand merci pour ce tuto sur lequel je me suis appuyé afin de configurer backuppc. Malheureusement, j’ai un soucis dont je n’arrive pas à bout.
Après avoir configuré mon serveur (Debian Lenny) et mon client (Ubuntu Koala), quand je lance la sauvegarde via l’interface html de backuppc, j’obtiens cette erreur :
full backup started for directory /tmp
Aborting backup up after signal PIPE
Got fatal error during xfer (No files dumped for share /tmp)
Je ne comprend pas d’où vient le problème, par vance merci de votre aide.
Bonjour,
J’ai déjà mis en place BackupPC grâce à ce tuto, j’avais réussi. Mais hier, j’ai réessayé et impossible : je n’arrive pas à sauvegarder le client !
J’arrive bien à me connecter en ssh sur le client à partir du serveur.
J’ai bien réussi à récupérer la clé avec la commande scp nierdz@192.168.0.20:/home/nierdz/id_rsa.pub .
Par contre, je n’arrive à copier le contenu d’id_rsa.pub dans le fichier authorized_keys. En effet, ce fichier authorized_keys, je ne l’ai pas ! Pouvez-vous me dire s’il faut le créer ce fichier ou bien s’il devrait déjà être créé ? Et où faut-il qu’il soit ?
Sinon, en lançant la sauvegarde par l’interface web de BackupPC, j’ai cette erreur:
« Xfer PIDs are now 23942
Got remote protocol 1881173838
Fatal error (bad version): No protocol specified
Read EOF:
Tried again: got 0 bytes
fileListReceive () failed
Done: 0 files, 0 bytes
Got fatal error during xfer (fileListReceive failed)
Backup aborted (fileListReceive failed)
Not saving this a partial backup since it has fewer files than the prior one »
Je vous remercie beaucoup d’avance pour votre aide, vraiment.
C’est important pour moi.
++
J’ai un autre message d’erreur:
« full backup started for directory /home/clientssh/test
Running: /usr/bin/ssh -q -x -l clientssh 192.168.1.1 /usr/bin/rsync –server –sender –numeric-ids –perms –owner –group -D
Xfer PIDs are now 23981
Got remote protocol 1881173838
Fatal error (bad version): No protocol specified
(ssh-askpass:23982): Gtk-WARNING **: cannot open display: :0.0
Read EOF:
Tried again: got 0 bytes
fileListReceive () failed
Done: 0 files, 0 bytes
Got fatal error during xfer (fileListReceive failed)
Backup aborted (fileListReceive failed)
Not saving this a partial backup since it has fewer files than the prior one »
C’est donc cette ligne « (ssh-askpass:23982): Gtk-WARNING **: cannot open display: :0.0″ qui s’est rajoutée … Que puis-je faire svp ?
Merci.
En fait, ce message (ssh-askpass:23982): Gtk-WARNING **: cannot open display: :0.0, c’est parce que j’ai fait un test en mettant l’utilisateur « backuppc » au lieu de mettre l’utilisateur « accesssh », je comprends pas tout …
Pouvez-vous m’aider svp ?
Désolé pour le dérangement mais j’ai réussi !!
Je me suis connecté sur le client à partir du serveur en ssh. Ensuite, j’ai fait cette commande:
cat id_rsa.pub > ~/home/clientssh/.ssh/authorized_keys
Dans l’interface web, dans le menu xfer de ma machine, j’ai remplacé root par clientssh, j’ai relancé BackupPC, j’ai relancé la sauvegarde et … miracle !
Ca fonctionne !
Pouvez-vous quand même me dire si cette commande cat id_rsa.pub > ~/home/clientssh/.ssh/authorized_keys doit être faite comme je l’ai fais, c’est à dire : se connecter en ssh à partir du serveur vers le client et exécuter cette commande qui va créer le fichier authorized_keys dans le /home/clientssh/.ssh/ du client ? Est-ce bien cela ?
Car moi je comprenais qu’il fallait se connecter en ssh à partir du client vers le serveur, exécuter la commande scp … et exécuter la commande cat id_rsa.pub > ~/home/clientssh/.ssh/authorized_keys toujours à partir du client! Mais apparemment ce n’est pas ça ?
Merci pour vous éclaircissements. J’aimerai savoir pour que ce soit clair dans ma tête.
++