« LINUX:BackupPC » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
(18 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
__FORCETOC__ | __FORCETOC__ | ||
---- | |||
''→ [[LINUX:Sauvegarde|retour à la Sauvegarde]]'' | |||
---- | |||
=But= | =But= | ||
BackupPC est un logiciel de sauvegarde puissant basé sur une interface WEB. Il est à installer sous Linux Il peut sauvegarder des espaces de fichiers se trouvant sur des machines distantes aussi bien Linux, sur base de "RSYNC, RSYNCD et d'autres, que Windows sur base de SMB et RSYNCD. | BackupPC est un logiciel de sauvegarde puissant basé sur une interface WEB. Il est à installer sous Linux Il peut sauvegarder des espaces de fichiers se trouvant sur des machines distantes aussi bien Linux, sur base de "RSYNC, RSYNCD et d'autres, que Windows sur base de SMB et RSYNCD. | ||
Ligne 5 : | Ligne 8 : | ||
=Principe= | =Principe= | ||
BackupPC permet d'effectuer des sauvegardes. Il sauvegarde des arborescences de fichiers désignées par configuration. Pour les sauvegardes de machines Windows distante, il utilise une connexion de type SMB ou RSYNCD; pour sauvegarder une machine Linux locale ou distante, il utilise une connexion de type RSYNC ou RSYNCD. Il peut utiliser d'autres méthodes comme FTP, TAR ou ARCHIVE. | |||
Une interface WEB permet de le configurer, d'initier des sauvegardes, de surveiller l'activité de sauvegarde et de récupérer les fichiers désirés. | |||
Les sauvegardes sont soit totales soit incrémentielles. | |||
* Une totale consiste à tout traiter. | |||
* Une incrémentielle consiste à ne traiter que ce qui a changé depuis la précédente sauvegarde. | |||
Le paramétrage permet de régler la fréquence des sauvegardes automatiques: les horaires de sauvegardes, le nombre de sauvegardes, l'alternance de sauvegardes totales et incrémentielles et bien d'autres fonctions. | |||
D'autre part un service spécifique effectue les sauvegardes, nettoie les anciennes sauvegardes périmées et consolide l'ensemble des fichiers sauvés. | |||
Pour la sauvegarde: | |||
* La première phase consiste à récupérer l'arborescence à sauver localement ou à distance. | |||
* Ensuite il vérifie que chaque fichier est strictement identique ou n'existe pas dans sa bibliothèque. | |||
* Si ce fichier n'existe pas ou n'est pas identique, il le compresse et le range dans sa bibliothèque. | |||
* Il met à jour sa liste des fichiers. | |||
* Enfin calcule quelques statistiques. | |||
Chaque nuit, une analyse de la bibliothèque est effectuée; les sauvegardes périmées sont supprimées ainsi que les fichiers qui ne sont plus concernés par les sauvegardes. | |||
=Bibliothèque= | |||
La bibliothèque consiste en un ensemble de fichiers concernés par la sauvegarde organisés en une arborescence basée sur le checksum du fichier concerné. Tout fichier strictement identique par son contenu n'est repris qu'une seule fois et donc deux fichiers ayant des noms différents ou sauvés à des dates différentes ou venant de machines différentes ou se trouvant dans des arborescences différentes ou à des ensembles différents de sauvegardes mais identiques, ne seront présents qu'une seule fois. | |||
<!-- | |||
Ceci est possible par une caractéristique des files system de Linux; chaque fichier est identifié par un n° unique dans son file system dénommé inode. Le fichier spécial que l'on nomme "répertoire" est une table de correspondance entre un nom de fichier et l'inode d'un fichier. La fonction "ln" (hard link) permet d'effectuer de multiples liaisons entre divers noms de fichier et un seul contenu. | |||
--> | |||
Cette bibliothèque, pour fonctionner, doit se situer sur un seul "'''file system'''" ayant une capacité suffisante. Notons que des systèmes de gestion de disques tels LVM ou RAID5 permettent de grouper plusieurs disques physiques en un seul "file system". Il faut donc, dès le départ, bien choisir cet emplacement. Lors de l'installation, cet emplacement est situé dans le répertoire "/var/lib/BackupPC" qui est rarement suffisant. Ce premier paramétrage est fondamental sous peine d'arriver rapidement à saturation et donc de devoir recommencer tout en perdant les sauvegardes existantes. | |||
Ligne 21 : | Ligne 51 : | ||
et lancé: | et lancé: | ||
systemctl start httpd.service | systemctl start httpd.service | ||
Il utilise aussi son propre service qui est chargé de gérer les sauvegardes | Il utilise aussi son propre service qui est chargé de gérer les sauvegardes. | ||
Il faut activer ce service: | Il faut activer ce service: | ||
Ligne 32 : | Ligne 61 : | ||
=Projet= | |||
Suite à mon expérience professionnelle, je trouve que le programme "rsync" en mode synchronisation comme présenté dans les articles précédents est le plus rapide et globalement le moins gourmand en ressources réseaux quand on a de nombreuses machines à sauver dans un WAN dispersé. Et donc j'en suis arrivé à rassembler sur une machine décentralisée et isolée, l'ensemble des données à sauver. Les machines Windows étaient récupérées via le protocole RSYND comme décrit dans l'article "[[LINUX:RSYNCD|RSYNCD]]" et les machines Linux comme décrit dans l'article "[[LINUX:RSYNC-Rassemblement sur une autre machine|RSYNC-Rassemblement sur une autre machine]]" évidemment sans devoir allumer ni éteindre cette machine. | |||
A partir de cette machine d'archivage, on utilise l'application BackupPC pour archiver cet ensemble de fichiers locaux en utilisant le protocole RSYNCD. | |||
Nous avons donc à configurer RSYNCD, HTTPD et BackupPC sur la machine rassemblant toutes les sauvegardes. | |||
On suppose que cette machine a l'adresse IP 192.168.1.2 et se nomme "serverbck.home.dom". | |||
En pratique, nous avons un premier répertoire "/disk2/backup/courant" géré par l'utilisateur "adebast" et le répertoire "/disk3/photo" géré par l'utilisateur "fbertrand". Ces deux répertoires sont mis à disposition de BackupPC par le service RSYNCD. La bibliothèque de BackupPC sera mise sur le File System "/disk4" dans le répertoire "/disk4/backuppc". | |||
=Configuration de RSYNCD= | |||
Pour la configuration du service RSYNCD, nous vous reportons à l'article "[[LINUX:RSYNCD|RSYNCD]]". Il n'y a que le fichier de configuration et le fichier du mot de passe à modifier. | |||
Le fichier "/etc/rsyncd.conf" contient: | |||
---- | |||
uid = root | |||
gid = root | |||
use chroot = yes | |||
max connections = 4 | |||
pid file = /run/rsyncd.pid | |||
dont compress = *.gz *.tgz *.zip *.ZIP *.z *.Z *.rpm *.deb *.bz2 *.jpg *.JPG *.jpeg *.JPEG | |||
[backup] | |||
path = /disk2/backup/courant | |||
comment = Backup | |||
strict modes = false | |||
auth users = backuppc | |||
secrets file = /etc/rsyncd.secrets | |||
hosts allow = 192.168.1.2 | |||
read only = true | |||
list = false | |||
charset=utf-8 | |||
[photo] | |||
path = /disk3/photo | |||
comment = Photo | |||
strict modes = false | |||
auth users = backuppc | |||
secrets file = /etc/rsyncd.secrets | |||
hosts allow = 192.168.1.2 | |||
read only = true | |||
list = false | |||
charset=utf-8 | |||
---- | |||
Les partages se nomment "backup" et "photo". On les retrouvera dans la configuration de BackupPC. | |||
On remarque qu'un certains nombre de fichiers ne seront pas compressés lors du transfert. C'est normal car ces fichiers sont déjà compressés. | |||
Le fichier "/etc/rsyncd.secrets" contient: | |||
---- | |||
backuppc:Faucon999Noir | |||
---- | |||
L'utilisateur de connexion au service RSYNCD est "backuppc". On le retrouvera dans la configuration de BackupPC. | |||
Il reste à redémarrer le service RSYNCD. | |||
=Configuration d'HTTPD= | |||
BackupPC présente une interface Web. Un fichier spécial est ajouté dans la configuration d'HTTPD: le fichier "'''/etc/httpd/conf.d/BackupPC.conf'''". Nous y faisons quelques modifications afin que seules les machines de notre LAN y accèdent. | |||
---- | |||
<DirectoryMatch /usr/(share|libexec)/BackupPC/> | |||
AuthType Basic | |||
AuthUserFile /etc/BackupPC/apache.users | |||
AuthName "BackupPC" | |||
<IfModule mod_authz_core.c> | |||
<RequireAll> | |||
Require valid-user | |||
<RequireAny> | |||
'''Require ip 192.168.1''' | |||
</RequireAny> | |||
</RequireAll> | |||
</IfModule> | |||
</DirectoryMatch> | |||
Alias /BackupPC/images /usr/share/BackupPC/html/ | |||
ScriptAlias /BackupPC /usr/libexec/BackupPC/BackupPC_Admin | |||
ScriptAlias /backuppc /usr/libexec/BackupPC/BackupPC_Admin | |||
---- | |||
Il faut ensuite redémarrer le service HTTPD. | |||
On remarque en début de ce fichier qu'une authentification sera demandée. Le fichier contenant le nécessaire à cette validation se trouve dans le fichier "'''/etc/BackupPC/apache.users'''". Il contient dans chaque ligne un couple "nom d'utilisateur" et son "mot de passe" crypté. Il faut donc créer ce fichier et y ajouter les utilisateurs voulant accéder à cet interface Web. | |||
Nous désirons ajouter les deux utilisateurs demandés par le projet: "adebast" et "fbertrand". | |||
Il faut aussi définir un utilisateur ayant tous les droits que nous nommerons "admin". | |||
La séquence de ces trois commandes y pourvoit; la première crée aussi le fichier. A chaque fois, un mot de passe sera demandé: | |||
htpasswd -c /etc/BackupPC/apache.users admin | |||
htpasswd -b /etc/BackupPC/apache.users adebast | |||
htpasswd -b /etc/BackupPC/apache.users fbertrand | |||
Ce fichier doit pouvoir être lu par l'utilisateur ou le groupe "apache" responsable du service HTTPD. | |||
Ne pas oublier d'ouvrir le pare feu pour ce service HTTPD. | |||
=Utilisateur Linux= | |||
Un utilisateur "backuppc" et un groupe "backuppc" ont été créés lors de l'installation. Le service "backuppc" est lancé par cet utilisateur. La bibliothèque et les fichiers de configurations doivent lui être accessibles en contrôle total. Le répertoire racine de l'utilisateur "backuppc" est le même que celui de la bibliothèque. Par soucis de cohérence, comme nous allons changer l'emplacement de la bibliothèque, nous allons adapter la racine de cet utilisateur. Grâce à un éditeur de texte, on modifie la ligne concernée dans le fichier "/etc/passwd". | |||
Si cette ligne est: | |||
---- | |||
backuppc:x:975:959::/var/lib/BackupPC:/sbin/nologin | |||
---- | |||
elle devient: | |||
---- | |||
backuppc:x:975:959::'''/disk4/backuppc''':/sbin/nologin | |||
---- | |||
=Configuration de la bibliothèque= | |||
Lors de l'installation, la bibliothèque se trouve dans le répertoire "/var/lib/BackupPC". On veut la placer dans le répertoire "/disk4/backuppc". Ce répertoire doit contenir trois sous-répertoires: "pool", "cpool" et "pc". Toute cette arborescence doit appartenir à l'utilisateur "backuppc" responsable du service "backuppc" en contrôle total car il doit y lire et écrire. | |||
Voici la séquence de commandes: | |||
mkdir /disk4/backuppc | |||
mkdir /disk4/backuppc/pc | |||
mkdir /disk4/backuppc/pool | |||
mkdir /disk4/backuppc/cpool | |||
chmod -R 750 /disk4/backuppc | |||
chown -R backuppc:backuppc /disk4/backuppc | |||
Le fichier "/etc/updatedb.conf" contient aussi une référence à ce répertoire "/var/lib/BackupPC"; adaptez le également avec un éditeur de texte. | |||
=Configuration principale de BackupPC= | |||
Les fichiers de configuration de BackupPC se trouvent dans le répertoire "/etc/BackupPC". ''Ce répertoire et son contenu doit être en accès complet à l'utilisateur "backuppc" et en accès pour la lecture au groupe "apache".'' Le premier doit pouvoir modifier la configuration et le second la lire pour l'affichage dans l'interface Web. | |||
Le fichier de la configuration par défaut se nomme "'''/etc/BackupPC/config.pl'''". Pour notre projet, nous devons en modifier quelque uns. | |||
Il est possible de modifier tous les paramètres de configuration via l'interface Web mais si possible, je préfère les modifier directement dans fichier grâce à un éditeur de texte; ceci me permet d'ajouter un commentaire juste au dessus de la modification et de laisser sous forme de commentaire la configuration originale. | |||
Voici les paramètres à modifier: | |||
---- | |||
$Conf{ServerHost} = 'localhost'; | |||
$Conf{TopDir} = '/var/lib/BackupPC/'; | |||
$Conf{XferMethod} = "rsync"; | |||
$Conf{RsyncdUserName} = ''; | |||
$Conf{RsyncdPasswd} = ''; | |||
$Conf{CgiAdminUsers} = ''; | |||
$Conf{CgiURL} = "<nowiki>http://localhost/BackupPC</nowiki>"; | |||
$Conf{Language} = 'en'; | |||
---- | |||
Voici ces mêmes paramètres modifiés: | |||
---- | |||
# nom du serveur | |||
$Conf{ServerHost} = 'serverbck.home.dom'; | |||
# emplacement de la bibliothèque | |||
$Conf{TopDir} = '/disk4/backuppc/'; | |||
# protocole de transfert utilisé: RSYNCD | |||
$Conf{XferMethod} = "rsyncd"; | |||
# nom de l'utilisateur RSYNCD | |||
$Conf{RsyncdUserName} = 'backuppc'; | |||
# mot de passe de l'utilisateur RSYNCD | |||
$Conf{RsyncdPasswd} = 'Faucon999Noir'; | |||
# nom de l'administrateur de l'interface Web de BackupPC | |||
$Conf{CgiAdminUsers} = 'admin'; | |||
# URL de l'interface de BackupPC | |||
$Conf{CgiURL} = "<nowiki>http://serverbck.home.dom/BackupPC</nowiki>"; | |||
# la langue de l'interface sera française | |||
$Conf{Language} = 'fr'; | |||
---- | |||
Les noms des variables sont explicites; les commentaires donnent plus de détails. | |||
On y retrouve nombre de contraintes émises lors de la présentation du projet. | |||
L'administrateur "admin" aura tous les droits alors que les autres utilisateurs auront des droits restreints sur leur espace de sauvegarde. | |||
D'autres paramètres comme l'horaire des sauvegardes peuvent être adaptés selon vos désirs via l'interface Web. | |||
Ne pas oublier de relance le service "backuppc". | |||
=Configuration des machines à sauver= | |||
BackupPC est prévu pour effectuer des sauvegardes de machines distantes. Le fichier de configuration concerné se nomme "'''/etc/BackupPC/hosts''''". | |||
Mais notre projet ne concerne que notre machine locale et de plus nous voulons séparer cette sauvegarde en deux parties gérées par deux utilisateurs distincts. | |||
Pour y arriver, nous devons contourner la contrainte imposée par le logiciel. Nous allons utiliser une astuce. | |||
Le fichier "'''/etc/hosts'''" permet de lier un nom de machine à une adresse IP. Il joue en quelque sorte le rôle d'un DNS n'agissant que localement. | |||
En plus du nom de machine lié à une adresse IP, on peut y ajouter des alias. Nous en avons besoin de deux, un pour chaque espace de sauvegarde. | |||
Voici la ligne: | |||
---- | |||
192.168.1.2 serverbck.home.dom serverbck '''serverbck1.home.dom serverbck2.home.dom''' | |||
---- | |||
Maintenant nous pouvons configurer les deux espaces de sauvegardes dans le fichier "'''/etc/BackupPC/hosts''''": | |||
---- | |||
host dhcp user moreUsers # <--- do not edit this line | |||
'''serverbck1.home.dom''' 0 '''adebast''' | |||
'''serverbck2.home.dom''' 0 '''fbertrand''' | |||
---- | |||
Explications: | |||
* La première ligne défini le nom des colonnes. A ne pas modifier!!! | |||
* La seconde ligne correspond à l'espace à sauver "/disk2/backup/courant" connu dans RSYNCD sous le nom "backup"; On utilise le premier alias du nom de la machine locale et il est géré par l'utilisateur "adebast". | |||
* La troisième ligne correspond à l'espace à sauver "/disk3/photo" connu dans RSYNCD sous le nom "photo"; On utilise le premier alias du nom de la machine locale et il est géré par l'utilisateur "fbertrand". | |||
A chacune de ces machines correspond un fichier de configuration. Ces fichiers doivent se trouver dans le répertoire "'''/etc/BackupPC/pc'''"; il portent le nom de la machine à sauver suivi de l'extension ".pl". | |||
Le premier fichier se nomme "'''/etc/BackupPC/pc/serverbck1.home.dom.pl'''". On y défini le nom de l'espace à sauver connu par RSYNCD: | |||
---- | |||
$Conf{RsyncShareName} = [ | |||
'backup' | |||
]; | |||
---- | |||
Le second fichier se nomme "'''/etc/BackupPC/pc/serverbck2.home.dom.pl'''". On y défini le nom de l'espace à sauver connu par RSYNCD: | |||
---- | |||
$Conf{RsyncShareName} = ( | |||
'photo' | |||
); | |||
$Conf{CompressLevel} = 0; | |||
---- | |||
On remarque un autre paramètre concernant le taux de compression. Cet espace est occupé par des photos au format JPEG naturellement compressées; il est donc inutile d'utiliser des ressources pour compresser un fichier sans gain substantiel. Par défaut ce paramètre vaut 3. | |||
Ne pas oublier de relance le service "backuppc". | |||
Egalement ne pas oublier de régler les droits d'accès comme décrit plus haut. | |||
=[[LINUX:BackupPC: interface Web|BackupPC: interface Web]]= | |||
Enfin nous pouvons découvrir l'interface Web en introduisant dans notre explorateur internet l'URL: <nowiki>http://serverbck.home.dom/BackupPC</nowiki> ou <nowiki>http://192.168.1.2/BackupPC</nowiki>. Un nom d'utilisateur et un mot de passe vous sont demandés au préalable. Utilisez celui de l'administrateur, dans notre cas, "admin" pour avoir une vue complète. | |||
---- | |||
''→ [[LINUX:Sauvegarde|retour à la Sauvegarde]]'' | |||
---- | ---- | ||
__NOEDITSECTION__ | __NOEDITSECTION__ | ||
[[Category:LINUX]] | [[Category:LINUX]] |
Dernière version du 14 février 2022 à 10:47
But
BackupPC est un logiciel de sauvegarde puissant basé sur une interface WEB. Il est à installer sous Linux Il peut sauvegarder des espaces de fichiers se trouvant sur des machines distantes aussi bien Linux, sur base de "RSYNC, RSYNCD et d'autres, que Windows sur base de SMB et RSYNCD.
Principe
BackupPC permet d'effectuer des sauvegardes. Il sauvegarde des arborescences de fichiers désignées par configuration. Pour les sauvegardes de machines Windows distante, il utilise une connexion de type SMB ou RSYNCD; pour sauvegarder une machine Linux locale ou distante, il utilise une connexion de type RSYNC ou RSYNCD. Il peut utiliser d'autres méthodes comme FTP, TAR ou ARCHIVE.
Une interface WEB permet de le configurer, d'initier des sauvegardes, de surveiller l'activité de sauvegarde et de récupérer les fichiers désirés.
Les sauvegardes sont soit totales soit incrémentielles.
- Une totale consiste à tout traiter.
- Une incrémentielle consiste à ne traiter que ce qui a changé depuis la précédente sauvegarde.
Le paramétrage permet de régler la fréquence des sauvegardes automatiques: les horaires de sauvegardes, le nombre de sauvegardes, l'alternance de sauvegardes totales et incrémentielles et bien d'autres fonctions.
D'autre part un service spécifique effectue les sauvegardes, nettoie les anciennes sauvegardes périmées et consolide l'ensemble des fichiers sauvés.
Pour la sauvegarde:
- La première phase consiste à récupérer l'arborescence à sauver localement ou à distance.
- Ensuite il vérifie que chaque fichier est strictement identique ou n'existe pas dans sa bibliothèque.
- Si ce fichier n'existe pas ou n'est pas identique, il le compresse et le range dans sa bibliothèque.
- Il met à jour sa liste des fichiers.
- Enfin calcule quelques statistiques.
Chaque nuit, une analyse de la bibliothèque est effectuée; les sauvegardes périmées sont supprimées ainsi que les fichiers qui ne sont plus concernés par les sauvegardes.
Bibliothèque
La bibliothèque consiste en un ensemble de fichiers concernés par la sauvegarde organisés en une arborescence basée sur le checksum du fichier concerné. Tout fichier strictement identique par son contenu n'est repris qu'une seule fois et donc deux fichiers ayant des noms différents ou sauvés à des dates différentes ou venant de machines différentes ou se trouvant dans des arborescences différentes ou à des ensembles différents de sauvegardes mais identiques, ne seront présents qu'une seule fois.
Cette bibliothèque, pour fonctionner, doit se situer sur un seul "file system" ayant une capacité suffisante. Notons que des systèmes de gestion de disques tels LVM ou RAID5 permettent de grouper plusieurs disques physiques en un seul "file system". Il faut donc, dès le départ, bien choisir cet emplacement. Lors de l'installation, cet emplacement est situé dans le répertoire "/var/lib/BackupPC" qui est rarement suffisant. Ce premier paramétrage est fondamental sous peine d'arriver rapidement à saturation et donc de devoir recommencer tout en perdant les sauvegardes existantes.
Installation
Pour l'installer utilisez la commande suivante:
dnf install BackupPC
Services
BackupPC utilise une interface WEB et donc le service HTTP doit être activé:
systemctl enable httpd.service
et lancé:
systemctl start httpd.service
Il utilise aussi son propre service qui est chargé de gérer les sauvegardes.
Il faut activer ce service:
systemctl enable backuppc.service
et le lancer:
systemctl start backuppc.service
Projet
Suite à mon expérience professionnelle, je trouve que le programme "rsync" en mode synchronisation comme présenté dans les articles précédents est le plus rapide et globalement le moins gourmand en ressources réseaux quand on a de nombreuses machines à sauver dans un WAN dispersé. Et donc j'en suis arrivé à rassembler sur une machine décentralisée et isolée, l'ensemble des données à sauver. Les machines Windows étaient récupérées via le protocole RSYND comme décrit dans l'article "RSYNCD" et les machines Linux comme décrit dans l'article "RSYNC-Rassemblement sur une autre machine" évidemment sans devoir allumer ni éteindre cette machine.
A partir de cette machine d'archivage, on utilise l'application BackupPC pour archiver cet ensemble de fichiers locaux en utilisant le protocole RSYNCD.
Nous avons donc à configurer RSYNCD, HTTPD et BackupPC sur la machine rassemblant toutes les sauvegardes.
On suppose que cette machine a l'adresse IP 192.168.1.2 et se nomme "serverbck.home.dom".
En pratique, nous avons un premier répertoire "/disk2/backup/courant" géré par l'utilisateur "adebast" et le répertoire "/disk3/photo" géré par l'utilisateur "fbertrand". Ces deux répertoires sont mis à disposition de BackupPC par le service RSYNCD. La bibliothèque de BackupPC sera mise sur le File System "/disk4" dans le répertoire "/disk4/backuppc".
Configuration de RSYNCD
Pour la configuration du service RSYNCD, nous vous reportons à l'article "RSYNCD". Il n'y a que le fichier de configuration et le fichier du mot de passe à modifier.
Le fichier "/etc/rsyncd.conf" contient:
uid = root gid = root use chroot = yes max connections = 4 pid file = /run/rsyncd.pid dont compress = *.gz *.tgz *.zip *.ZIP *.z *.Z *.rpm *.deb *.bz2 *.jpg *.JPG *.jpeg *.JPEG [backup] path = /disk2/backup/courant comment = Backup strict modes = false auth users = backuppc secrets file = /etc/rsyncd.secrets hosts allow = 192.168.1.2 read only = true list = false charset=utf-8 [photo] path = /disk3/photo comment = Photo strict modes = false auth users = backuppc secrets file = /etc/rsyncd.secrets hosts allow = 192.168.1.2 read only = true list = false charset=utf-8
Les partages se nomment "backup" et "photo". On les retrouvera dans la configuration de BackupPC. On remarque qu'un certains nombre de fichiers ne seront pas compressés lors du transfert. C'est normal car ces fichiers sont déjà compressés.
Le fichier "/etc/rsyncd.secrets" contient:
backuppc:Faucon999Noir
L'utilisateur de connexion au service RSYNCD est "backuppc". On le retrouvera dans la configuration de BackupPC.
Il reste à redémarrer le service RSYNCD.
Configuration d'HTTPD
BackupPC présente une interface Web. Un fichier spécial est ajouté dans la configuration d'HTTPD: le fichier "/etc/httpd/conf.d/BackupPC.conf". Nous y faisons quelques modifications afin que seules les machines de notre LAN y accèdent.
<DirectoryMatch /usr/(share|libexec)/BackupPC/> AuthType Basic AuthUserFile /etc/BackupPC/apache.users AuthName "BackupPC" <IfModule mod_authz_core.c> <RequireAll> Require valid-user <RequireAny> Require ip 192.168.1 </RequireAny> </RequireAll> </IfModule> </DirectoryMatch> Alias /BackupPC/images /usr/share/BackupPC/html/ ScriptAlias /BackupPC /usr/libexec/BackupPC/BackupPC_Admin ScriptAlias /backuppc /usr/libexec/BackupPC/BackupPC_Admin
Il faut ensuite redémarrer le service HTTPD.
On remarque en début de ce fichier qu'une authentification sera demandée. Le fichier contenant le nécessaire à cette validation se trouve dans le fichier "/etc/BackupPC/apache.users". Il contient dans chaque ligne un couple "nom d'utilisateur" et son "mot de passe" crypté. Il faut donc créer ce fichier et y ajouter les utilisateurs voulant accéder à cet interface Web.
Nous désirons ajouter les deux utilisateurs demandés par le projet: "adebast" et "fbertrand". Il faut aussi définir un utilisateur ayant tous les droits que nous nommerons "admin". La séquence de ces trois commandes y pourvoit; la première crée aussi le fichier. A chaque fois, un mot de passe sera demandé:
htpasswd -c /etc/BackupPC/apache.users admin htpasswd -b /etc/BackupPC/apache.users adebast htpasswd -b /etc/BackupPC/apache.users fbertrand
Ce fichier doit pouvoir être lu par l'utilisateur ou le groupe "apache" responsable du service HTTPD.
Ne pas oublier d'ouvrir le pare feu pour ce service HTTPD.
Utilisateur Linux
Un utilisateur "backuppc" et un groupe "backuppc" ont été créés lors de l'installation. Le service "backuppc" est lancé par cet utilisateur. La bibliothèque et les fichiers de configurations doivent lui être accessibles en contrôle total. Le répertoire racine de l'utilisateur "backuppc" est le même que celui de la bibliothèque. Par soucis de cohérence, comme nous allons changer l'emplacement de la bibliothèque, nous allons adapter la racine de cet utilisateur. Grâce à un éditeur de texte, on modifie la ligne concernée dans le fichier "/etc/passwd".
Si cette ligne est:
backuppc:x:975:959::/var/lib/BackupPC:/sbin/nologin
elle devient:
backuppc:x:975:959::/disk4/backuppc:/sbin/nologin
Configuration de la bibliothèque
Lors de l'installation, la bibliothèque se trouve dans le répertoire "/var/lib/BackupPC". On veut la placer dans le répertoire "/disk4/backuppc". Ce répertoire doit contenir trois sous-répertoires: "pool", "cpool" et "pc". Toute cette arborescence doit appartenir à l'utilisateur "backuppc" responsable du service "backuppc" en contrôle total car il doit y lire et écrire.
Voici la séquence de commandes:
mkdir /disk4/backuppc mkdir /disk4/backuppc/pc mkdir /disk4/backuppc/pool mkdir /disk4/backuppc/cpool chmod -R 750 /disk4/backuppc chown -R backuppc:backuppc /disk4/backuppc
Le fichier "/etc/updatedb.conf" contient aussi une référence à ce répertoire "/var/lib/BackupPC"; adaptez le également avec un éditeur de texte.
Configuration principale de BackupPC
Les fichiers de configuration de BackupPC se trouvent dans le répertoire "/etc/BackupPC". Ce répertoire et son contenu doit être en accès complet à l'utilisateur "backuppc" et en accès pour la lecture au groupe "apache". Le premier doit pouvoir modifier la configuration et le second la lire pour l'affichage dans l'interface Web.
Le fichier de la configuration par défaut se nomme "/etc/BackupPC/config.pl". Pour notre projet, nous devons en modifier quelque uns. Il est possible de modifier tous les paramètres de configuration via l'interface Web mais si possible, je préfère les modifier directement dans fichier grâce à un éditeur de texte; ceci me permet d'ajouter un commentaire juste au dessus de la modification et de laisser sous forme de commentaire la configuration originale.
Voici les paramètres à modifier:
$Conf{ServerHost} = 'localhost'; $Conf{TopDir} = '/var/lib/BackupPC/'; $Conf{XferMethod} = "rsync"; $Conf{RsyncdUserName} = ; $Conf{RsyncdPasswd} = ; $Conf{CgiAdminUsers} = ; $Conf{CgiURL} = "http://localhost/BackupPC"; $Conf{Language} = 'en';
Voici ces mêmes paramètres modifiés:
# nom du serveur $Conf{ServerHost} = 'serverbck.home.dom'; # emplacement de la bibliothèque $Conf{TopDir} = '/disk4/backuppc/'; # protocole de transfert utilisé: RSYNCD $Conf{XferMethod} = "rsyncd"; # nom de l'utilisateur RSYNCD $Conf{RsyncdUserName} = 'backuppc'; # mot de passe de l'utilisateur RSYNCD $Conf{RsyncdPasswd} = 'Faucon999Noir'; # nom de l'administrateur de l'interface Web de BackupPC $Conf{CgiAdminUsers} = 'admin'; # URL de l'interface de BackupPC $Conf{CgiURL} = "http://serverbck.home.dom/BackupPC"; # la langue de l'interface sera française $Conf{Language} = 'fr';
Les noms des variables sont explicites; les commentaires donnent plus de détails. On y retrouve nombre de contraintes émises lors de la présentation du projet. L'administrateur "admin" aura tous les droits alors que les autres utilisateurs auront des droits restreints sur leur espace de sauvegarde. D'autres paramètres comme l'horaire des sauvegardes peuvent être adaptés selon vos désirs via l'interface Web.
Ne pas oublier de relance le service "backuppc".
Configuration des machines à sauver
BackupPC est prévu pour effectuer des sauvegardes de machines distantes. Le fichier de configuration concerné se nomme "/etc/BackupPC/hosts'".
Mais notre projet ne concerne que notre machine locale et de plus nous voulons séparer cette sauvegarde en deux parties gérées par deux utilisateurs distincts. Pour y arriver, nous devons contourner la contrainte imposée par le logiciel. Nous allons utiliser une astuce.
Le fichier "/etc/hosts" permet de lier un nom de machine à une adresse IP. Il joue en quelque sorte le rôle d'un DNS n'agissant que localement. En plus du nom de machine lié à une adresse IP, on peut y ajouter des alias. Nous en avons besoin de deux, un pour chaque espace de sauvegarde.
Voici la ligne:
192.168.1.2 serverbck.home.dom serverbck serverbck1.home.dom serverbck2.home.dom
Maintenant nous pouvons configurer les deux espaces de sauvegardes dans le fichier "/etc/BackupPC/hosts'":
host dhcp user moreUsers # <--- do not edit this line serverbck1.home.dom 0 adebast serverbck2.home.dom 0 fbertrand
Explications:
- La première ligne défini le nom des colonnes. A ne pas modifier!!!
- La seconde ligne correspond à l'espace à sauver "/disk2/backup/courant" connu dans RSYNCD sous le nom "backup"; On utilise le premier alias du nom de la machine locale et il est géré par l'utilisateur "adebast".
- La troisième ligne correspond à l'espace à sauver "/disk3/photo" connu dans RSYNCD sous le nom "photo"; On utilise le premier alias du nom de la machine locale et il est géré par l'utilisateur "fbertrand".
A chacune de ces machines correspond un fichier de configuration. Ces fichiers doivent se trouver dans le répertoire "/etc/BackupPC/pc"; il portent le nom de la machine à sauver suivi de l'extension ".pl".
Le premier fichier se nomme "/etc/BackupPC/pc/serverbck1.home.dom.pl". On y défini le nom de l'espace à sauver connu par RSYNCD:
$Conf{RsyncShareName} = [ 'backup' ];
Le second fichier se nomme "/etc/BackupPC/pc/serverbck2.home.dom.pl". On y défini le nom de l'espace à sauver connu par RSYNCD:
$Conf{RsyncShareName} = ( 'photo' ); $Conf{CompressLevel} = 0;
On remarque un autre paramètre concernant le taux de compression. Cet espace est occupé par des photos au format JPEG naturellement compressées; il est donc inutile d'utiliser des ressources pour compresser un fichier sans gain substantiel. Par défaut ce paramètre vaut 3.
Ne pas oublier de relance le service "backuppc".
Egalement ne pas oublier de régler les droits d'accès comme décrit plus haut.
BackupPC: interface Web
Enfin nous pouvons découvrir l'interface Web en introduisant dans notre explorateur internet l'URL: http://serverbck.home.dom/BackupPC ou http://192.168.1.2/BackupPC. Un nom d'utilisateur et un mot de passe vous sont demandés au préalable. Utilisez celui de l'administrateur, dans notre cas, "admin" pour avoir une vue complète.