Outils pour utilisateurs

Outils du site


nethserver_101_cahier_11_nethserver_backuppc

Table des matières



Description générale

Introduction

Le Cahier-10: du cours NethServer-101 décrit la marche à suivre pour l'installation de BackupPC-3.3.1 et sa mise à jour vers BackupPC-4.3.0, les prises de sauvegardes de l'hôte de BackupPC et du serveur SOURCE et enfin la restauration de la sauvegarde complète de SOURCE sur DESTINATION pour que ce dernier devienne un clone du premier.

Ce cahier est basé sur les pages Web suivantes:
https://wiki.nethserver.org/doku.php?id=module:backuppc
https://www.veritech.net/centos-7-backuppc-installation-guide/
https://srbu.se/index.php?option=com_content&view=article&id=201:upgrading-backuppc-to-v4-2-1&catid=8&Itemid=121&lang=en

Page officielle de BackupPC: https://backuppc.github.io/backuppc/.

Référence: https://fr.wikipedia.org/wiki/BackupPC.
BackupPC est un logiciel libre de sauvegarde de système de fichiers publié sous licence GPL.
Il est utilisé pour sauvegarder sur disque un ensemble de postes clients et de serveurs, sous Unix, Linux, Windows ou Mac OS X. Les protocoles utilisables pour les transferts sont : SMB, tar over SSH/rsh/nfs, et rsync. Il ne nécessite l'installation d'aucun logiciel client sur les machines à sauvegarder. Il possède une interface Web pour lancer des sauvegardes ou restaurer des fichiers. Il est également possible de sauvegarder des bases de données via un script shell lancé avant la sauvegarde.

But de ce cahier

Migrer le serveur SOURCE vers le serveur DESTINATION.



Cours NethServer-101

Le Cours NethServer-101, se voulant une base solide pour la création d'un site de Commerce en ligne, comprend plusieurs cahiers:

  1. Cahier-01: → Les bases de Linux.
  2. Cahier-02: → Installation et configuration des logiciels prérequis sur le poste de travail.
  3. Cahier-03: → Création d'un Serveur NethServer virtuel.
  4. Cahier-04: → Serveur NethServer LOCAL & Let's Encrypt.
  5. Cahier-05: → FAI, modem VDSL, domaine FQDN1) et Serveur NethServer physique.
  6. Cahier-06: → Installation de WordPress.
  7. Cahier-07: → Installation de l'extension de sécurité Wordfence.
  8. Cahier-08: → WooCommerce, comptes chez Stripe et PayPal pour les paiements en ligne.
  9. Cahier-09: → Sauvegarde/restauration ou migration d'un site avec l'extension Duplicator.
  10. Cahier-10: → Serveur mandataire inversé.
  11. Cahier-11: → Sauvegarde/restauration avec BackupPC.

Cours NethServer-201

Le Cours NethServer-201 décrit l'installation et la configuration d'applications sur un serveur NethServer.

  1. Cahier-201-01: → Dolibarr.
  2. Cahier-201-02: → Odoo-12.
  3. Cahier-201-03: → MediaWiki.
  4. Cahier-201-04: → DokuWiki.
  5. Cahier-201-05: → Moodle.
  6. Cahier-201-06: → Proxmox.
  7. Cahier-201-07: → Flectra.

Logiciels

Tous les logiciels nécessaires sont du domaine public ou LIBRE sous licence GPL; ils ne coûtent pas un sou. Le seul achat nécessaire est l'obtention d'un nom de domaine au prix initial de $15 CAD et son renouvellement annuel d'environ $30 CAD.

But final

Après avoir suivi le Cours NethServer-101, vous posséderez un site de Commerce en ligne fiable et hautement sécuritaire. De plus, vous pourrez utiliser un clone de votre site, sur un Serveur NethServer virtuel roulant sur votre poste de travail, pour tester de nouvelles extensions et applications sans compromettre la sécurité ou l'intégrité de votre site en ligne.

Particularités de ce document

Notes au lecteur

* Les captures d'écrans ne sont que des références.
** Les informations écrites ont préséance sur celles retrouvées dans les captures d'écrans. Veillez vous référer aux différents tableaux lorsque ceux-ci sont présents.
*** Une capture d'écran avec une accentuation en magenta indique qu'il faut remplacer cette distinction par vos propres paramètres ou implique un choix laissé à votre appréciation.

Conventions

Manipulation, truc ou ruse pour se tirer d'embarras.
Une recommandation ou astuce.
Une note.
Une étape, note ou procédure à surveiller.
Paragraphe non complété ou non vérifié.
Danger pour la sécurité du système.

Toutes les commandes à la console ou à travers PuTTY sont précédées d'une invite qui est toujours présente.

[root@dorgee ~]# ping 10.10.10.75 -c1

PING 10.10.10.75 (10.10.10.75) 56(84) bytes of data.
64 bytes from 10.10.10.75: icmp_seq=1 ttl=64 time=1.63 ms

--- 10.10.10.75 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.639/1.639/1.639/0.000 ms
[root@dorgee ~]#
Commande à exécuter si ce n'est déjà fait.
Commande indiquée à titre d'information seulement.


Prérequis

Machines virtuelles

Ce document utilise des machines virtuelles, sous VirtualBox, qui roulent un Serveur NethServer-7.6.1810. La marche à suivre pour l'installation de BackupPC sur un Serveur NethServer physique est exactement la même que celle sur un Serveur NethServer virtuel.

Serveur NethServer

☐ Pour l'installation de VirtualBox, voir le Cahier-02: Installations & configurations des logiciels prérequis.

☐ Pour l'installation d'un Serveur NethServer, voir: Le Cahier-03: Création d'un serveur NethServer virtuel.

☐ Installation des dernières mises à jour pour NethServer.

Disque de sauvegarde

☐ Un volume dédié est recommandé (peut être un simple disque unique ou des disques en RAID).

Logiciels prérequis

☐ Le Cahier-02: Installations & configurations des logiciels prérequis décrit l'installation et la configuration des logiciels prérequis sur le poste de travail.

Installation

Environnement

BackupPC est le serveur qui roulera BackupPC et qui entreposera les sauvegardes sur son deuxième disque.

SOURCE est le Serveur NethServer dont on fera une sauvegarde Complète et deux Incrémentielles.

DESTINATION est un Serveur NethServer sur lequel on restaurera la sauvegarde du serveur SOURCE et ainsi il en deviendra un clone parfait.

Micronator.org est un Serveur NethServer qui sert de pare-feu et de passerelle pour tout le réseau.


Serveur BackupPC

Le serveur BackupPC est une machine virtuelle, sous VirtualBox, roulant un Serveur NethServer.

La marche à suivre pour l'installation de BackupPC-4.3.0 sur un Serveur NethServer physique est exactement la même.

Les dernières mises à jour NethServer ont été installées.

Un deuxième disque à été créé pour recevoir les sauvegardes. Il n'est que de 25Go mais est amplement suffisant pour cette démonstration.

Si vous créez le disque de stockage des sauvegardes trop petit, BackupPC pourrait manquer d'inodes pour la création de liens.

Ce document utilise trois machines virtuelles, sous VirtualBox, roulant toutes un Serveur NethServer.

Les marches à suivre pour des sauvegardes de Serveurs NethServer physiques sont exactement les mêmes.

Paramètres SSH de tous les serveurs

Vu que:
● Les sauvegardes se font à travers une connexion SSH afin que personne ne puisse copier les données en transit.
● L'usager qui lit les fichiers à être sauvegardés doit être root, car il est le seul qui peut lire tous les fichiers sans exception.
Il faut donc autoriser les connexions SSH pour l'usager root.

Sécurité SSH

Tableau de bord → Sécurité → SSH.

Port TCP
On utilise le port 2222 afin de dérouter un peu plus les indésirables.

Autoriser le login en tant que root
Obligatoirement Coché, car seul root peut lire tous les fichiers à sauvegarder.

Autoriser l'authentification par mots de passe
Coché, car les sauvegardes de BackupPC se font à travers une connexion SSH.
BackupPC utilise la clé publique SSH de l'usager backuppc pour se connecter sans avoir à fournir un mot de passe.

Services réseau sshd (SSH)

Sécurité → Services réseau → vis-à-vis sshd (SSH) → Éditer → choisir les autorisations → SOUMETTRE.

Si tous vos serveurs sont sur le réseau local, choisissez N'autoriser l'accès que depuis les zones
- Lan (vert)
sinon,
- Internet (rouge) et
- LAN (vert).


DHCP

Assurez-vous que vous n'avez qu'un seul serveur DHCP par segment de réseau IP.

Configuration → DHCP → onglet Serveur DHCP.

☐ Décocher enp0s3 - green.

SOUMETTRE.


Disque de stockage des sauvegardes

Statut actuel des disques et partitions du système de fichiers NethServer. Le disque de stockage n'a encore aucune partition.

[root@dev ~]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Fri Jan  4 14:13:25 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/VolGroup-lv_root /                       xfs     defaults        0 0
UUID=a7c532b2-51d2-419a-ab83-b87d08f8205a /boot                   xfs     defaults        0 0
/dev/mapper/VolGroup-lv_swap swap                    swap    defaults        0 0
[root@dev ~]#


Création d'une partition principale sur le disque de stockage

Les sauvegardes devraient toujours être sur un volume séparé.
On prépare un disque avec un système de fichiers ext4 (on peut utiliser tous les systèmes de fichiers qui sont supportés, mais nous utilisons ext4, car il autorise plus d'inodes).

Dans ce Cahier, on utilise un disque entier ayant une simple partition primaire: /dev/sdb1. On pourrait utiliser une matrice RAID ou un volume logique (LVM, ou une combinaison de RAID et LVM). Si vous connaissez la gestion LVM, son utilisation est également recommandée, car plus tard, il sera plus facile de gérer les données des sauvegardes.

Recherche du dispositif2) (device) du disque de stockage des futures sauvegardes.

[root@backuppc ~]# cat /proc/partitions

major minor  #blocks  name

   8        0   26214400 sda
   8        1    1048576 sda1
   8        2   25164800 sda2
   8       16   26214400 sdb
  11        0    1048575 sr0
 253        0   22540288 dm-0
 253        1    2621440 dm-1

[root@backuppc ~]#

Le disque est /dev/sdb.

[root@backuppc ~]# ls -als /dev/sdb

0 brw-rw---- 1 root disk 8, 16 Mar 16 10:41 /dev/sdb
[root@backuppc ~]#

On lance fdisk pour la création de la partition.

[root@backuppc ~]# fdisk /dev/sdb

On affiche l'aide en entrant “m” sans guillemets.

Commande (m pour l'aide): m  [Entrée]

Commande d'action
   a   bascule le fanion d'amorce
   b   éditer l'étiquette BSD du disque
   c   basculer le fanion de compatibilité DOS
   d   supprimer la partition
   l   lister les types de partitions connues
   m   afficher ce menu
   n   ajouter une nouvelle partition
   o   créer une nouvelle table vide de partitions DOS
   p   afficher la table de partitions
   q   quitter sans enregistrer les changements
   s   créer une nouvelle étiquette vide pour disque de type Sun
   t   modifier l'id de système de fichiers d'une partition
   u   modifier les unités d'affichage/saisie
   v   vérifier la table de partitions
   w   écrire la table sur le disque et quitter
   x   fonctions avancées (pour experts seulement)

Commande (m pour l'aide):

On vérifie s'il existe déjà une partition, “p”.

Commande (m pour l'aide): p  [Entrée]

Disque /dev/sdb : 26.8 Go, 26843545600 octets, 52428800 secteurs
Unités = secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0xd808ba5c

Périphérique Amorçage  Début         Fin      Blocs    Id. Système

Commande (m pour l'aide):

Il n'y a pas de partition sur le disque.
S'il y en avait une, on la supprimerait avec “d” (delete / supprimer la partition).

On crée la partition: “n”, “p”, “1”; les choix par défaut pour le premier et le dernier cylindre.

Commande (m pour l'aide): n  [Entrée]

Commande d'action
   e   étendue
   p   partition primaire (1-4)
p  [Entrée]
Numéro de partition (1-4): 1  [Entrée]
Premier secteur (2048-52428799, 2048 par défaut) :  [Entrée]
Utilisation de la valeur 2048 par défaut
Dernier secteur, +secteur ou +taille{K,M,G} (2048-52428799, 52428799 par défaut) :  [Entrée]
Utilisation de la valeur 52428799 par défaut
La partition 1 de type Linux et de taille 25 GiB est configurée

Commande (m pour l'aide):

On enregistre les nouveaux paramètres et on quitte “wq” (write and quit).

Commande (m pour l'aide): wq

La table de partitions a été altérée!

Appel de ioctl() pour relire la table de partitions.
Synchronisation des disques.
[root@backuppc ~]#

On vérifie.

[root@backuppc ~]# cat /proc/partitions

major minor  #blocks  name

   8        0   26214400 sda
   8        1    1048576 sda1
   8        2   25164800 sda2
   8       16   26214400 sdb
   8       17   26213376 sdb1
  11        0    1048575 sr0
 253        0   22540288 dm-0
 253        1    2621440 dm-1
[root@backuppc ~]#

On vérifie encore une fois.

[root@backuppc ~]# ls -als /dev/sdb1

0 brw-rw---- 1 root disk 8, 17 16 mars  11:24 /dev/sdb1
[root@backuppc ~]#


Création du système de fichiers ext4 sur la partition

Remarque sur les inodes

En plus de l'espace disque total, vous devez vous assurer que vous avez beaucoup d'inodes sur votre partition de données de BackupPC. Certains utilisateurs ont signalé l'épuisement des inodes sur leur partition de données de BackupPC. Par conséquent, même si vous disposez de suffisamment d'espace disque, BackupPC signale un échec lorsque les inodes sont épuisés. C'est un problème particulier avec les systèmes de fichiers ext2/ext3 qui ont un nombre fixe d'inodes lors de la création du système de fichiers. Utilisez df -i pour afficher votre utilisation d'inodes.

Pour notre machine, avec un système de fichiers ext3, le nombre d'inodes serait de seulement 1 310 720.

BackupPC utilise un très grand nombre de liens, c.-à-d. d'inodes. Le système de fichiers Ext4, sur un système 64 bits, peut avoir 2^64 inodes; ce qui représente 1.2470298e+28 inodes.

Depuis la version BackupPC-4, il n'y a plus d'utilisation de liens physiques (sauf temporairement pour faire des renoms atomiques). Le comptage des références est géré en “batch” au niveau de l'application. (Les “hardlinks” resteront toujours pour toutes les sauvegardes héritées des versions V3.)

Voici, sur un système déjà existant, les infos de l'espace disque et du nombre d'inodes utilisés seulement par la partition principale du disque primaire.

Espace disque

[root@backuppc ~]# df -h

Sys. de fichiers             Taille Utilisé Dispo Uti% Monté sur
/dev/mapper/VolGroup-lv_root    22G    2,5G   20G  12% /
devtmpfs                       1,9G       0  1,9G   0% /dev
tmpfs                          1,9G       0  1,9G   0% /dev/shm
tmpfs                          1,9G    8,7M  1,9G   1% /run
tmpfs                          1,9G       0  1,9G   0% /sys/fs/cgroup
/dev/sda1                     1014M    221M  794M  22% /boot
tmpfs                          379M       0  379M   0% /run/user/0
[root@backuppc ~]#

Environ 2.5 Go d'espace disque est utilisé.

Nombre d'inodes

[root@backuppc ~]# df -i

Sys. de fichiers               Inœuds IUtil.   ILibre IUti% Monté sur
/dev/mapper/VolGroup-lv_root 11270144  70841 11199303    1% /
devtmpfs                       482081    376   481705    1% /dev
tmpfs                          485058      2   485056    1% /dev/shm
tmpfs                          485058    592   484466    1% /run
tmpfs                          485058     16   485042    1% /sys/fs/cgroup
/dev/sda1                      524288    345   523943    1% /boot
tmpfs                          485058      1   485057    1% /run/user/0


Filesystem            Inodes  IUsed  IFree IUse% Mounted on
/dev/mapper/main-root
                     456064 155019 301045   34% /
tmpfs                490294      1 490293    1% /dev/shm
/dev/md0              64000     54  63946    1% /boot
[root@backuppc ~]#

Comme on le voit ci-dessus, le nombre d'inodes utilisés est de 70841 pour 2.5 Go d'espace disque.

Pour notre disque de 25 Go, on prendra beaucoup plus d'inodes, environ 15 000 000.
Prendre en considération: plus d'inodes et plus il faudra de temps pour créer le système de fichiers.

Paramètres de la commande mkfs.ext4

-N nombre d'inodes

Remplace le calcul par défaut du nombre d'inodes qui devrait être réservés pour le système de fichiers (basé sur le nombre de blocs et le ratio octets par inode).

Ce paramètre permet à l'utilisateur de spécifier directement le nombre d'inodes désirés.
Si on spécifie un nombre d'inodes trop grand, mke2fs donnera une erreur et ne créera pas le système de fichiers.

-b block-size

Spécifie, en octets, la taille des blocs. Les tailles valides sont: 1024, 2048 et 4096 octets par bloc. Si omis, la taille d'un bloc est déterminée de manière heuristique par la taille et l'utilisation du système de fichiers (voir l'option -T).

Si la taille d'un bloc est négative alors, mke2fs utilisera l'heuristique pour déterminer le taille d'un bloc avec la contrainte que la taille d'un bloc sera au moins de block-size octets.

Utile pour certains périphériques matériels qui exigent que la taille des blocs soit un multiple de 2k.
BackupPC utilise un très grand nombre de liens, une longueur de bloc de 1024 est plus profitable.

-L nom_nouveau_volume

Configure l'étiquette (label) du système de fichiers à nom_nouveau_volume. La taille maximale du nom est de 16 octets.

-m pourcentage_blocs_réservés

Indique le pourcentage de blocs du système de fichiers réservés pour le superutilisateur. Permet d'éviter la fragmentation. Permet aussi aux démons lancés par le superutilisateur, comme syslogd(8), de continuer à fonctionner correctement après que les processus non privilégiés ne soient plus autorisés à écrire sur le système de fichiers.

La valeur par défaut est de 5 %.

On crée un système de fichiers ext4 sur le nouveau volume /dev/sdb1.

[root@backuppc ~]# mkfs.ext4  -L SAUVEGARDE  -b 1024  -N 15000000  -m 1 /dev/sdb1

mke2fs 1.42.9 (28-Dec-2013)
Étiquette de système de fichiers=SAUVEGARDE
Type de système d'exploitation : Linux
Taille de bloc=1024 (log=0)
Taille de fragment=1024 (log=0)
« Stride » = 0 blocs, « Stripe width » = 0 blocs
15001600 i-noeuds, 26213376 blocs
262133 blocs (1.00%) réservés pour le super utilisateur
Premier bloc de données=1
Nombre maximum de blocs du système de fichiers=59768832
3200 groupes de blocs
8192 blocs par groupe, 8192 fragments par groupe
4688 i-noeuds par groupe
Superblocs de secours stockés sur les blocs :
        8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409, 663553,
        1024001, 1990657, 2809857, 5120001, 5971969, 17915905, 19668993,
        25600001

Allocation des tables de groupe : complété
Écriture des tables d'i-noeuds : complété
Création du journal (32768 blocs) : complété
Écriture des superblocs et de l'information de comptabilité du système de
fichiers : complété

[root@backuppc ~]#


Montage du nouveau volume

Point de montage

On crée un point de montage (répertoire) pour le nouveau volume.

[root@backuppc ~]# mkdir -p /var/lib/BackupPC

[root@backuppc ~]#

On vérifie.

[root@backuppc ~]# ls -alsd /var/lib/BackupPC

0 drwxr-xr-x 2 root root 6 16 mars  11:37 /var/lib/BackupPC
[root@backuppc ~]#


Ajout dans fstab

On ajoute le point de montage dans /etc/fstab afin que le volume soit monté automatiquement à tous les amorçages.

Prendre tout le contenu de l'encadré pour la commande.

 cat >> /etc/fstab <<'EOT'
# Pour le volume de stockage des sauvegardes de BackupPC
/dev/sdb1               /var/lib/BackupPC       ext4    noatime         0 0

EOT

Deux > > ajoute au contenu du fichier; un seul > remplace tout le contenu du fichier.

On vérifie.

[root@backuppc ~]# tail -n 5 /etc/fstab

UUID=a7c532b2-51d2-419a-ab83-b87d08f8205a /boot                   xfs     defaults       0 0
/dev/mapper/VolGroup-lv_swap swap                    swap    defaults        0 0
# Pour le volume de stockage des sauvegardes de BackupPC
/dev/sdb1               /var/lib/BackupPC       ext4    noatime         0 0

[root@backuppc ~]#


Montage du volume dans /var/lib/BackupPC

On remonte tous les volumes en relisant fstab à l'aide de la commande mount -a.

[root@backuppc ~]# mount -a

[root@backuppc ~]#

On vérifie avec mount.

[root@backuppc ~]# mount | grep BackupPC

/dev/sdb1 on /var/lib/BackupPC type ext4 (rw,noatime,data=ordered)
[root@backuppc ~]#

On vérifie avec df.

[root@backuppc ~]# df -h

Sys. de fichiers             Taille Utilisé Dispo Uti% Monté sur
/dev/mapper/VolGroup-lv_root    22G    2,5G   20G  12% /
devtmpfs                       1,9G       0  1,9G   0% /dev
tmpfs                          1,9G     16K  1,9G   1% /dev/shm
tmpfs                          1,9G    8,7M  1,9G   1% /run
tmpfs                          1,9G       0  1,9G   0% /sys/fs/cgroup
/dev/sda1                     1014M    221M  794M  22% /boot
tmpfs                          379M       0  379M   0% /run/user/0
/dev/sdb1                       22G    4,6M   22G   1% /var/lib/BackupPC
[root@backuppc ~]#

Pour le même volume sans spécifier le nombre d'inodes, la quantité d'espace disque est un peu plus grande.

/dev/sdb1  25G  4,6M  25G  1% /var/lib/BackupPC

Espace disque en spécifiant le nombre d'inodes.

/dev/sdb1  22G  4,6M  22G  1% /var/lib/BackupPC

La différence réside dans l'espace réservé pour le stockage de la table des inodes.

Création des liens symboliques

Cette partie est facultative, mais recommandée.

Avec ces commandes, tous les fichiers liés à BackupPC (config et journaux) seront stockés sur le volume SAUVEGARDE. Vous serez alors en mesure d'échanger le disque SAUVEGARDE entre deux serveurs de sauvegardes.

On crée les sous-répertoires etc et log dans le répertoire /var/lib/BackupPC/.

[root@backuppc ~]# mkdir -p /var/lib/BackupPC/{etc,log}

[root@backuppc ~]#

On vérifie.

[root@backuppc ~]# ls -als /var/lib/BackupPC/

total 19
 1 drwxr-xr-x   5 root root  1024 16 mars  12:29 .
 4 drwxr-xr-x. 52 root root  4096 16 mars  11:37 ..
 1 drwxr-xr-x   2 root root  1024 16 mars  12:29 etc
 1 drwxr-xr-x   2 root root  1024 16 mars  12:29 log
12 drwx------   2 root root 12288 16 mars  12:28 lost+found
[root@backuppc ~]#

Pour les configurations, on crée un lien /etc/BackupPC qui pointe vers /var/lib/BackupPC/etc.

[root@backuppc ~]# ln -s /var/lib/BackupPC/etc /etc/BackupPC

[root@backuppc ~]#

On vérifie.

[root@backuppc ~]# ls -als /etc/BackupPC

0 lrwxrwxrwx 1 root root 21 16 mars  12:30 /etc/BackupPC -> /var/lib/BackupPC/etc
[root@backuppc ~]#

Pour les journaux, on crée un lien /var/log/BackupPC qui pointe vers /var/lib/BackupPC/log.

[root@backuppc ~]# ln -s /var/lib/BackupPC/log /var/log/BackupPC

[root@backuppc ~]#

On vérifie.

[root@backuppc ~]# ls -als /var/log/BackupPC

0 lrwxrwxrwx 1 root root 21 16 mars  12:31 /var/log/BackupPC -> /var/lib/BackupPC/log
[root@backuppc ~]#



Installation du module BackupPC

Espace disque et nombre d'inodes avant l'installation

Espace disque

[root@backuppc ~]# df -h

Sys. de fichiers             Taille Utilisé Dispo Uti% Monté sur
/dev/mapper/VolGroup-lv_root    22G    2,5G   20G  12% /
devtmpfs                       1,9G       0  1,9G   0% /dev
tmpfs                          1,9G     16K  1,9G   1% /dev/shm
tmpfs                          1,9G    8,8M  1,9G   1% /run
tmpfs                          1,9G       0  1,9G   0% /sys/fs/cgroup
/dev/sda1                     1014M    221M  794M  22% /boot
tmpfs                          379M       0  379M   0% /run/user/0
/dev/sdb1                       22G    4,6M   22G   1% /var/lib/BackupPC
[root@backuppc ~]#

Nombre d'inodes

[root@backuppc ~]# df -i

Sys. de fichiers               Inœuds IUtil.   ILibre IUti% Monté sur
/dev/mapper/VolGroup-lv_root 11270144  70850 11199294    1% /
devtmpfs                       482081    379   481702    1% /dev
tmpfs                          485058      3   485055    1% /dev/shm
tmpfs                          485058    635   484423    1% /run
tmpfs                          485058     16   485042    1% /sys/fs/cgroup
/dev/sda1                      524288    345   523943    1% /boot
tmpfs                          485058      1   485057    1% /run/user/0
/dev/sdb1                    15001600     13 15001587    1% /var/lib/BackupPC
[root@backuppc ~]#


Référentiel stephdl

Installation du référentiel stephdl

[root@backuppc ~]# yum install -y http://mirror.de-labrusse.fr/NethServer/7/x86_64/nethserver-stephdl-1.0.7-1.ns7.sdl.noarch.rpm

...
Résumé de la transaction
============================================================================================
Installation   1 Paquet

Taille totale  : 40 k
...
Installé :
  nethserver-stephdl.noarch 0:1.0.7-1.ns7.sdl

Terminé !
[root@backuppc ~]#


Installation du module

Nous installation le module BackupPC.

[root@backuppc ~]# yum install -y nethserver-BackupPC --enablerepo=stephdl

...
Résumé de la transaction
============================================================================================
Installation   1 Paquet (+29 Paquets en dépendance)

Taille totale des téléchargements : 6.2 M
Taille d'installation : 23 M
Downloading packages:
(1/30): libarchive-3.1.2-10.el7_2.x86_64.rpm                         | 318 kB  00:00:00
...
(30/30): BackupPC-3.3.1-5.el7.x86_64.rpm                             | 412 kB  00:00:14
...
Installé :
  nethserver-BackupPC.noarch 0:1.1.4-1.ns7.sdl

Dépendances installées :
  BackupPC.x86_64 0:3.3.1-5.el7
  bzip2.x86_64 0:1.0.6-13.el7
  libarchive.x86_64 0:3.1.2-10.el7_2
  perl-Archive-Zip.noarch 0:1.30-11.el7
  perl-CGI.noarch 0:3.63-4.el7
  perl-Class-Load.noarch 0:0.20-3.el7
  perl-Class-Singleton.noarch 0:1.4-14.el7
  perl-Data-OptList.noarch 0:0.107-9.el7
  perl-DateTime.x86_64 2:1.04-6.el7
  perl-DateTime-Format-Mail.noarch 0:0.3001-17.el7
  perl-DateTime-Format-W3CDTF.noarch 0:0.06-5.el7
  perl-DateTime-Locale.noarch 0:0.45-6.el7
  perl-DateTime-TimeZone.noarch 0:1.70-1.el7
  perl-FCGI.x86_64 1:0.74-8.el7
  perl-File-RsyncP.x86_64 0:0.74-2.el7
  perl-Module-Implementation.noarch 0:0.06-6.el7
  perl-Module-Runtime.noarch 0:0.013-4.el7
  perl-Net-FTP-AutoReconnect.noarch 0:0.3-11.el7
  perl-Net-FTP-RetrHandle.noarch 0:0.2-11.el7
  perl-Package-DeprecationManager.noarch 0:0.13-7.el7
  perl-Package-Stash.noarch 0:0.34-2.el7
  perl-Package-Stash-XS.x86_64 0:0.26-3.el7
  perl-Params-Util.x86_64 0:1.07-6.el7
  perl-Params-Validate.x86_64 0:1.08-4.el7
  perl-Sub-Install.noarch 0:0.926-6.el7
  perl-Time-ParseDate.noarch 0:2015.103-1.el7
  perl-Try-Tiny.noarch 0:0.12-2.el7
  perl-XML-RSS.noarch 0:1.54-1.el7
  samba-client.x86_64 0:4.8.3-4.el7

Terminé !
[root@backuppc ~]#

Pour la sauvegarde de nos différents clients, on utilisera le protocole rsync, mais BackupPC peut tout aussi bien utiliser d'autres protocoles tels que: smb, ftp, tar

Utilisateur backuppc

L'installation du module a créé l'utilisateur backuppc. Cet utilisateur n'a pas été créé dans LDAP, mais de manière standard et inséré dans le fichier /etc/passwd.

[root@backuppc ~]# cat /etc/passwd | grep backuppc

backuppc:x:986:981::/var/lib/BackupPC:/sbin/nologin
[root@backuppc ~]#

Comme on le voit, l'utilisateur backuppc n'a pas de shell.
Parfois, l'utilisateur de backuppc a besoin d'un shell réel spécifié dans /etc/passwd; par exemple, lorsqu'il est utilisé pour exécuter des commandes sudo ou des scripts pré/post.

Usage

Une fois le module BackupPC installé, l’utilisateur cgi administrateur de BackupPC est admin (si ce n'est déjà fait, pensez à activer l'utilisateur admin en définissant son mot de passe dans l'interface Web de NethServer).
Tous les utilisateurs peuvent s’identifier, mais ne peuvent gérer que leurs propres sauvegardes; l'administrateur doit définir des sauvegardes pour ces utilisateurs.

On affiche les propriétés de BackupPC.

[root@backuppc ~]# config show backuppc

backuppc=service
    CgiMultiUser=enabled
    examples=enabled
    status=enabled
    sudo=/usr/bin/rsync,/bin/gtar,/bin/tar
[root@backuppc ~]#

sudo → ici, vous pouvez ajouter plus de commandes disponibles à l'utilisateur backuppc par sudo.

Mise à jour vers BackupPC-4.3.0

Prérequis

Certain logiciels doivent être installés avant la mise à jour vers la version BackupPC-4.3.0.

Il est fortement recommandé de ne pas conserver gcc sur un serveur, car il est considéré comme un bris de sécurité. Nous le désinstallerons une fois la mise à jour terminée.

[root@backuppc ~]# yum install -y gcc                               \
                                  perl-devel perl-CPAN perl-CGI     \
                                  mod_ssl nfs-utils                 \
                                  bzip2 glusterfs-client

...

Le paquet perl-CGI-3.63-4.el7.noarch est déjà installé dans sa dernière version
Le paquet 1:mod_ssl-2.4.6-88.el7.centos.x86_64 est déjà installé dans sa dernière version
Le paquet 1:nfs-utils-1.3.0-0.61.el7.x86_64 est déjà installé dans sa dernière version
Le paquet bzip2-1.0.6-13.el7.x86_64 est déjà installé dans sa dernière version
...
Résumé de la transaction
============================================================================================
Installation   4 Paquets (+20 Paquets en dépendance)

Taille totale des téléchargements : 36 M
Taille d'installation : 73 M
Downloading packages:
(1/24): attr-2.4.46-13.el7.x86_64.rpm                                |  66 kB  00:00:00
...
(24/24): gcc-4.8.5-36.el7.x86_64.rpm                                 |  16 MB  00:00:23
...
Installé :
  gcc.x86_64 0:4.8.5-36.el7                   glusterfs-fuse.x86_64 0:3.12.2-18.el7
  perl-CPAN.noarch 0:1.9800-294.el7_6         perl-devel.x86_64 4:5.16.3-294.el7_6

Dépendances installées :
...
  cpp.x86_64 0:4.8.5-36.el7
...
  kernel-headers.x86_64 0:3.10.0-957.10.1.el7
...

Terminé !
[root@backuppc ~]#


Configuration de CPAN

[root@backuppc ~]# cpan

CPAN.pm requires configuration, but most of it can be done automatically.
If you answer 'no' below, you will enter an interactive dialog for each
configuration option instead.

Would you like to configure as much as possible automatically? [yes]

 <install_help>

Warning: You do not have write permission for Perl library directories.

To install modules, you need to configure a local Perl library directory or
escalate your privileges.  CPAN can help you by bootstrapping the local::lib
module or by configuring itself to use 'sudo' (if available).  You may also
resolve this problem manually if you need to customize your setup.

What approach do you want?  (Choose 'local::lib', 'sudo' or 'manual')
 [local::lib] sudo

Autoconfigured everything but 'urllist'.

Now you need to choose your CPAN mirror sites.  You can let me
pick mirrors for you, you can select them from a list or you
can enter them by hand.

Would you like me to automatically choose some CPAN mirror
sites for you? (This means connecting to the Internet) [yes]
Trying to fetch a mirror list from the Internet
Fetching with LWP:
http://www.perl.org/CPAN/MIRRORED.BY
Fetching with LWP:
http://www.perl.org/CPAN/MIRRORED.BY.gz
Fetching with LWP:
ftp://ftp.perl.org/pub/CPAN/MIRRORED.BY

Looking for CPAN mirrors near you (please be patient)
.......................... done!

New urllist
  http://ftp.nara.wide.ad.jp/pub/CPAN/
  http://cpan.metacpan.org/
  http://cpan.ulak.net.tr/

Autoconfiguration complete.

commit: wrote '/root/.cpan/CPAN/MyConfig.pm'

You can re-run configuration any time with 'o conf init' in the CPAN shell
Terminal does not support AddHistory.

cpan shell -- CPAN exploration and modules installation (v1.9800)
Enter 'h' for help.

cpan[1]>


Test::More

Référence: https://en.wikipedia.org/wiki/Test::More.

Test::More est un module de test unitaire pour Perl. Créé et maintenu par Michael G Schwern avec l'aide de Barrie Slaymaker, Tony Bowden, chromatic, Fergal Daly et perl-qa.

Test::More est le module de test Perl le plus populaire. En 2010, environ 80% de toutes les distributions CPAN l'utilisaient.

cpan[1]> install Test::More

Fetching with LWP:
...
Fetching with LWP:
...
  CPAN.pm: Building E/EX/EXODIST/Test-Simple-1.302162.tar.gz

Checking if your kit is complete...
Looks good
Writing Makefile for Test::Simple
...
Manifying blib/man3/Test::Tester.3pm
...
Running make test
...
All tests successful.
Files=230, Tests=2615, 34 wallclock secs ( 1.32 usr  0.59 sys + 22.71 cusr  4.76 csys = 29.38 CPU)
Result: PASS
...
  EXODIST/Test-Simple-1.302162.tar.gz
  sudo /usr/bin/make install  -- OK

cpan[2]>


Module version

Le module version récupère la version de tout autre module.

cpan[2]> install version

Running install for module 'version'

...

Testing if you have a C compiler

Checking if your kit is complete...

Looks good

...

All tests successful.

Test Summary Report

-------------------

t/07locale.t  (Wstat: 0 Tests: 8 Failed: 0)

 TODO passed:  7

Files=12, Tests=2502,  2 wallclock secs ( 0.38 usr  0.06 sys +  1.77 cusr  0.32 csys =  2.53 CPU)

Result: PASS

...

Appending installation info to /usr/lib64/perl5/perllocal.pod

 JPEACOCK/version-0.9924.tar.gz

 sudo /usr/bin/make install  -- OK

cpan[3]>

On quitte cpan.

cpan[3]> quit

Terminal does not support GetHistory.
Lockfile removed.
[root@backuppc ~]#



Mise à jour

Téléchargements

On crée un répertoire de travail.

[root@backuppc ~]# mkdir /root/BackupPC

[root@backuppc ~]#

On s'y rend.

[root@backuppc ~]# cd /root/BackupPC/

[root@backuppc BackupPC]#


BackupPC 4.3.0

[root@backuppc BackupPC]# wget https://github.com/backuppc/backuppc/releases/download/4.3.0/BackupPC-4.3.0.tar.gz

...
requête HTTP transmise, en attente de la réponse...200 OK
Longueur: 637725 (623K) [application/octet-stream]
Sauvegarde en : «BackupPC-4.3.0.tar.gz»

100%[==================================================>] 637 725      296KB/s   ds 2,1s

2019-03-19 01:46:25 (296 KB/s) - «BackupPC-4.3.0.tar.gz» sauvegardé [637725/637725]

[root@backuppc BackupPC]#

On extrait le fichier.

[root@backuppc BackupPC]# tar -zxvf BackupPC-4.3.0.tar.gz

BackupPC-4.3.0/
...
BackupPC-4.3.0/bin/BackupPC_archiveHost
[root@backuppc BackupPC]#


BackupPC-XS 0.58

[root@backuppc BackupPC]# wget https://github.com/backuppc/backuppc-xs/releases/download/0.58/BackupPC-XS-0.58.tar.gz

...
requête HTTP transmise, en attente de la réponse...200 OK
Longueur: 288074 (281K) [application/octet-stream]
Sauvegarde en : «BackupPC-XS-0.58.tar.gz»

100%[==================================================>] 288 074      248KB/s   ds 1,1s

2019-03-19 01:44:01 (248 KB/s) - «BackupPC-XS-0.58.tar.gz» sauvegardé [288074/288074]

[root@backuppc BackupPC]#

On extrait le fichier.

[root@backuppc BackupPC]# tar -zxvf BackupPC-XS-0.58.tar.gz

BackupPC-XS-0.58/
...
BackupPC-XS-0.58/configure.sh
[root@backuppc BackupPC]#


rsync-bpc

Le fichier ZIP doit être téléchargé sur le poste de travail, extrait avec 7-ZIP puis, téléversé sur le serveur.
Site de téléchargement: https://github.com/backuppc/rsync-bpc.

Il faut prendre Branch 3.1.2 et télécharger le fichier ZIP.



On extrait le fichier ZIP.

On téléverse le répertoire rsync-bpc-3.1.2 dans /root/BackupPC.


On vérifie le répertoire /root/BackupPC du serveur.

[root@backuppc BackupPC]# ls -ls

total 916
  0 drwxr-xr-x 10  317  317    177 25 nov.  16:56 BackupPC-4.3.0
624 -rw-r--r--  1 root root 637725 25 nov.  17:17 BackupPC-4.3.0.tar.gz
  4 drwxr-xr-x  6  317  317   4096 25 nov.  15:15 BackupPC-XS-0.58
284 -rw-r--r--  1 root root 288074 25 nov.  15:23 BackupPC-XS-0.58.tar.gz
  4 drwxr-xr-x 11 root root   4096 19 mars  02:10 rsync-bpc-3.1.2
[root@backuppc BackupPC]#


Installation des logiciels

BackupPC-XS

Il faut absolument débuter par BackupPC-XS sinon, nous aurons des erreurs d'installation des autres logiciels.

[root@backuppc BackupPC]# cd BackupPC-XS-0.58

[root@backuppc BackupPC-XS-0.58]#

On lance le Makefile.PL.

[root@backuppc BackupPC-XS-0.58]# perl Makefile.PL

Checking if your kit is complete...
Looks good
Writing Makefile for BackupPC::XS::md5
Writing Makefile for BackupPC::XS::zlib
Writing Makefile for BackupPC::XS
[root@backuppc BackupPC-XS-0.58]#

On lance le make.

[root@backuppc BackupPC-XS-0.58]# make

cp lib/BackupPC/XS.pm blib/lib/BackupPC/XS.pm
./configure.sh
configure.sh: Configuring backuppc-xs 0.58
...
chmod 755 blib/arch/auto/BackupPC/XS/XS.so
cp XS.bs blib/arch/auto/BackupPC/XS/XS.bs
chmod 644 blib/arch/auto/BackupPC/XS/XS.bs
Manifying blib/man3/BackupPC::XS.3pm
[root@backuppc BackupPC-XS-0.58]#

On teste.

[root@backuppc BackupPC-XS-0.58]# make test

...
All tests successful.
Files=1, Tests=1,  0 wallclock secs ( 0.03 usr  0.02 sys +  0.06 cusr  0.02 csys =  0.13 CPU)
Result: PASS
make[1] : on entre dans le répertoire « /root/BackupPC/BackupPC-XS-0.58/md5 »
No tests defined for BackupPC::XS::md5 extension.
make[1] : on quitte le répertoire « /root/BackupPC/BackupPC-XS-0.58/md5 »
make[1] : on entre dans le répertoire « /root/BackupPC/BackupPC-XS-0.58/zlib »
No tests defined for BackupPC::XS::zlib extension.
make[1] : on quitte le répertoire « /root/BackupPC/BackupPC-XS-0.58/zlib »
[root@backuppc BackupPC-XS-0.58]#

On installe.

[root@backuppc BackupPC-XS-0.58]# make install

Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /usr/local/lib64/perl5/auto/BackupPC/XS/XS.so
Installing /usr/local/lib64/perl5/auto/BackupPC/XS/XS.bs
Installing /usr/local/lib64/perl5/BackupPC/XS.pm
Installing /usr/local/share/man/man3/BackupPC::XS.3pm
Appending installation info to /usr/lib64/perl5/perllocal.pod
[root@backuppc BackupPC-XS-0.58]#


rsync-bpc

L'installation de rsync-bpc doit être faite avant celle de BackupPC-4.3.0.

[root@backuppc BackupPC-XS-0.58]# cd ../rsync-bpc-3.1.2

[root@backuppc rsync-bpc-3.1.2]#

Il faut installer libacl-devel sinon, nous aurons l'erreur ci-dessous.

 lib/sysacls.c:2761:2: erreur: #error No ACL functions defined for this platform!
 #error No ACL functions defined for this platform!
  ^

On installe libacl-devel.

[root@backuppc rsync-bpc-3.1.2]# yum install -y libacl-devel

...
Résumé de la transaction
============================================================================================
Installation   1 Paquet (+1 Paquet en dépendance)

Taille totale des téléchargements : 107 k
Taille d'installation : 89 k
...
Installé :
  libacl-devel.x86_64 0:2.2.51-14.el7

Dépendances installées :
  libattr-devel.x86_64 0:2.4.46-13.el7

Terminé !
[root@backuppc rsync-bpc-3.1.2]#

Vu que nous avons téléversé ce répertoire depuis un poste de travail Windows, le script configure.sh a perdu ses droits d'exécution, il faut les remettre,

[root@backuppc rsync-bpc-3.1.2]# chmod +x configure.sh

[root@backuppc rsync-bpc-3.1.2]#

On lance la configuration.

[root@backuppc rsync-bpc]# ./configure.sh

configure.sh: Configuring rsync_bpc 3.1.2.0
...
    rsync_bpc 3.1.2.0 configuration successful

[root@backuppc rsync-bpc-3.1.2]#

On lance le make.

[root@backuppc rsync-bpc-3.1.2]# make

perl ./mkproto.pl ./*.c ./lib/compat.c
...
popt/popt.o  popt/poptconfig.o popt/popthelp.o popt/poptparse.o -lattr -lacl
[root@backuppc rsync-bpc-3.1.2]#

On installe.

[root@backuppc rsync-bpc-3.1.2]# make install

/usr/bin/mkdir -p /usr/local/bin
/usr/bin/install -c  -m 755 rsync_bpc /usr/local/bin
[root@backuppc rsync-bpc-3.1.2]#


BackupPC 4.3.0

On se rend dans le répertoire BackupPC-4.3.0.

[root@backuppc rsync-bpc-3.1.2]# cd ../BackupPC-4.3.0

[root@backuppc BackupPC-4.3.0]#

On configure, prenant tous les défauts avec [ENTRÉE].

[root@backuppc BackupPC-4.3.0]# ./configure.pl

Found /etc/BackupPC/config.pl, so this is an upgrade of an
existing BackupPC installation.  We will verify some existing
information, but you will probably not need to make any
changes - just hit ENTER to each question.

I found the following locations for these programs:

    bzip2        => /usr/bin/bzip2
    cat          => /usr/bin/cat
    df           => /usr/bin/df
    gtar/tar     => /usr/bin/gtar
    gzip         => /usr/bin/gzip
    hostname     => /usr/bin/hostname
    nmblookup    => /usr/bin/nmblookup
    par2         => /bin/true
    perl         => /usr/bin/perl
    ping         => /usr/bin/ping
    ping6        => /usr/sbin/ping6
    rrdtool      => /usr/bin/rrdtool
    rsync        => /usr/bin/rsync
    rsync_bpc    => /usr/local/bin/rsync_bpc
    sendmail     => /usr/sbin/sendmail
    smbclient    => /usr/bin/smbclient
    split        => /usr/bin/split
    ssh/ssh2     => /usr/bin/ssh

--> Are these paths correct? [y]? [ENTRÉE]

Please tell me the hostname of the machine that BackupPC will run on.

--> BackupPC will run on host [localhost]? [ENTRÉE]

BackupPC should run as a dedicated user with limited privileges.  You
need to create a user.  This user will need read/write permission on
the main data directory and read/execute permission on the install
directory (these directories will be setup shortly).

The primary group for this user should also be chosen carefully.
The data directories and files will have group read permission,
so group members can access backup files.

--> BackupPC should run as user [backuppc]? [ENTRÉE]

Please specify an install directory for BackupPC.  This is where the
BackupPC scripts, library and documentation will be installed.

--> Install directory (full path) [/usr/share/BackupPC]? [ENTRÉE]

Please specify a data directory for BackupPC.  This is where all the
PC backup data is stored.  This file system needs to be big enough to
accommodate all the PCs you expect to backup (eg: at least several GB
per machine).

--> Data directory (full path) [/var/lib/BackupPC/]? [ENTRÉE]

BackupPC has SCGI and CGI perl interfaces that run under Apache.  You need
to pick which one to run.

For SCGI, Apache uses the scgi_mod module to communicate with BackupPC_Admin_SCGI,
which handles the requests.  This allows Apache to run as a different user as
backuppc.  To use SCGI you need to set SCGIServerPort to any spare
non-privileged TCP port number.  A negative value disables SCGI.

Important security warning!!  The SCGIServerPort must not be accessible by
anyone untrusted.  That means you can't allow untrusted users access to the
BackupPC server, and you should block the SCGIServerPort TCP port from
network access.

The traditional alternative is to use CGI.  In this case, an executable needs
to be installed Apache's cgi-bin directory.  This executable needs to run as
set-uid backuppc, or it can be run under mod_perl with Apache
running as user backuppc.

--> SCGI port (-1 to disable) [-1]? [ENTRÉE]
--> CGI bin directory (full path, or empty for no CGI) [/usr/share/BackupPC/sbin/]? [ENTRÉE]

BackupPC's CGI and SCGI script need to display various PNG/GIF
images that should be stored where Apache can serve them.  They
should be placed somewhere under Apache's DocumentRoot.  BackupPC
also needs to know the URL to access these images.  Example:

    Apache image directory:  /var/www/htdocs/BackupPC
    URL for image directory: /BackupPC

The URL for the image directory should start with a slash.

--> Apache image directory (full path, or empty for no S/CGI) [/usr/share/BackupPC/html/]? [ENTRÉE]
--> URL for image directory (omit http://host; starts with '/', or empty for no S/CGI) [/BackupPC/images]? [ENTRÉE]

Ok, we're about to:

  - install the binaries, lib and docs in /usr/share/BackupPC
  - create the data directory /var/lib/BackupPC/
  - optionally install the cgi-bin interface
  - create/update the config.pl file /etc/BackupPC/config.pl

--> Do you want to continue? [y]? [ENTRÉE]
Created /usr/share/BackupPC/share
Created /usr/share/BackupPC/share/doc
Created /usr/share/BackupPC/share/doc/BackupPC
Created /usr/share/BackupPC/lib/Net
Created /usr/share/BackupPC/lib/Net/FTP
Created /var/lib/BackupPC/
Created /var/lib/BackupPC//pool
Created /var/lib/BackupPC//cpool
Created /var/lib/BackupPC//pc
Created /etc/BackupPC
Created /var/log/BackupPC
Created /var/run/BackupPC
Installing binaries in /usr/share/BackupPC/bin
Installing library in /usr/share/BackupPC/lib
Installing images in /usr/share/BackupPC/html/
Making systemd and init.d scripts
Making Apache configuration file for suid-perl
Installing docs in /usr/share/BackupPC/share/doc/BackupPC
Installing cgi script BackupPC_Admin in /usr/share/BackupPC/sbin/
Installing config.pl and hosts in /etc/BackupPC
Making backup copy of /etc/BackupPC/config.pl -> /etc/BackupPC/config.pl.pre-4.3.0

Ok, it looks like we are finished.  There are several more things you
will need to do:

  - Browse through the config file, /etc/BackupPC/config.pl,
    and make sure all the settings are correct.  In particular,
    you will need to set $Conf{CgiAdminUsers} so you have
    administration privileges in the CGI interface.

  - Edit the list of hosts to backup in /etc/BackupPC/hosts.

  - Read the documentation in /usr/share/BackupPC/doc/BackupPC.html.
    Please pay special attention to the security section.

  - Verify that the CGI script BackupPC_Admin runs correctly.  You might
    need to change the permissions or group ownership of BackupPC_Admin.
    If this is an upgrade and you are using mod_perl, you will need
    to restart Apache.  Otherwise it will have stale code.

  - BackupPC should be ready to start.  Don't forget to run it
    as user backuppc!  The installation also contains
    a systemd/backuppc.service script that can be installed so
    that BackupPC can auto-start on boot.  This will also enable
    administrative users to start the server from the CGI interface.
    See systemd/README.

Enjoy!
[root@backuppc BackupPC-4.3.0]#

L'installation de la mise à jour est terminée.

Nous retournons dans le répertoire personnel de root.

[root@backuppc BackupPC-4.3.0]# cd

[root@backuppc ~]#



Désinstallation de gcc

Avoir gcc installé est une brèche de sécurité vu qu'un pirate pourrait s'en servir pour compiler un malveillant.

Est-ce que gcc est requis par un paquetage quelconque?

[root@backuppc ~]# rpm -q --whatrequires gcc

aucun paquetage ne requiert gcc
[root@backuppc ~]#

La mise à jour étant terminée, gcc n'est plus nécessaire et n'est requis par aucun paquetage. On peut donc le désinstaller sans problème. Si plus tard nous en avions encore besoin, il suffirait de l'installer à nouveau.

Quel version de gcc avons-nous installé?

[root@backuppc ~]# rpm -qa | grep gcc

gcc-4.8.5-36.el7.x86_64
libgcc-4.8.5-36.el7.x86_64
[root@backuppc ~]#

On désinstalle gcc.

[root@backuppc ~]# rpm -e gcc-4.8.5-36.el7.x86_64

[root@backuppc ~]#

On vérifie.

[root@backuppc ~]# rpm -qa | grep gcc

libgcc-4.8.5-36.el7.x86_64
[root@backuppc ~]#

Est-ce que libgcc est requis par un paquetage quelconque?

[root@backuppc ~]# rpm -q --whatrequires  libgcc

aucun paquet ne requiert libgcc
[root@backuppc ~]#

Il n'y a pas de problème à garder libgcc.

Création de l'utilisateur backuppc

Gestion → Utilisateur et groupe → onglet Utilisateurs → CRÉER NOUVEAU.

On entre les informations demandées.

● On insère l'utilisateur dans le groupe admin admins@micronator-101.org.

● On s'assure de choisir un mot de passe robuste.

SOUMETTRE.

Techniquement, la configuration de cet utilisateur backuppc créé dans l'interface Web de NethServer est dans LDAP tandis que celle créée par l'installation de BackupPC est dans /etc/passwd.

Ajustement des configurations des logiciels

/var/lib/BackupPC/etc/config.pl

Avant d'éditer ce fichier, on en fait une copie de sauvegarde dans le répertoire /root/BackupPC/.

[root@backuppc ~]# cp /var/lib/BackupPC/etc/config.pl /root/BackupPC/config.pl_BPC_org

[root@backuppc ~]#

On vérifie.

[root@backuppc ~]# ls -als /root/BackupPC/config.pl_BPC_org

84 -rw-r----- 1 root root 84055 20 mars  01:22 /root/BackupPC/config.pl_BPC_org
[root@backuppc ~]#


On édite le fichier: /etc/BackupPC/config.pl.

On spécifie les utilisateurs qui pourront gérer BackupPC.

Les utilisateurs sont séparés par des espaces.


...
# Examples:
#    $Conf{CgiAdminUserGroup} = 'admin';
#    $Conf{CgiAdminUsers}     = 'craig celia';
#    --> administrative users are the union of group admin, plus
#      craig and celia.
#
#    $Conf{CgiAdminUserGroup} = '';
#    $Conf{CgiAdminUsers}     = 'craig celia';
#    --> administrative users are only craig and celia'.
#
$Conf{CgiAdminUserGroup} = '';
##### Modification par Michel-André 2019-03-18_08h38
##### Spécification des utilisateurs qui pourront gérer BackupPC
##### $Conf{CgiAdminUsers}     = 'admin admins@micronator-101.org';
$Conf{CgiAdminUsers} = 'admin michelandre';

#
# TCP port number of the SCGI server.  A negative value disables the
...

On vérifie.

[root@backuppc ~]# cat /var/lib/BackupPC/etc/config.pl | grep -i Michel

#########################  Michel-Andr▒ 2019-03-18_08h38
$Conf{CgiAdminUsers} = 'admin michelandre';
[root@backuppc ~]#


/etc/httpd/conf/httpd.conf

On modifie le fichier de configuration httpd.conf pour que ce soit l'utilisateur backuppc qui roulera le démon httpd.

Avant d'éditer ce fichier, on en fait une copie de sauvegarde dans le répertoire /root/BackupPC/.

[root@backuppc ~]# cp /etc/httpd/conf/httpd.conf /root/BackupPC/httpd.conf_BPC_org

[root@backuppc ~]#

On vérifie.

[root@backuppc ~]# ls -als /root/BackupPC/httpd.conf_BPC_org

12 -rw-r--r-- 1 root root 11753 20 mars  01:47 /root/BackupPC/httpd.conf_BPC_org
[root@backuppc ~]#


On édite le fichier:
/etc/httpd/conf/httpd.conf.

On spécifie que c'est l'utilisateur backuppc qui roulera le démon httpd.


...
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.  
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
##### Modification par Michel-André, 2019-02-19_11h37
##### On spécifie que c'est l'utilisateur backuppc qui roulera le démon httpd.
##### User apache
User backuppc

Group apache

# 'Main' server configuration
...

On vérifie.

[root@backuppc ~]# cat /etc/httpd/conf/httpd.conf |  grep backuppc

##### On sp▒cifie que c'est l'utilisateur backuppc qui roulera le d▒mon httpd.
User backuppc
[root@backuppc ~]#


Propriétaire et groupe

Vu que c'est l'utilisateur backuppc qui roulera le démon httpd (Apache), on ajuste Récursivement le propriétaire et le groupe du répertoire /usr/share/BackupPC en conséquence.

[root@backuppc ~]# chown -R backuppc:apache /usr/share/BackupPC

[root@backuppc ~]#

On ajuste aussi Récursivement le propriétaire et le groupe du répertoire /var/lib/BackupPC/.

[root@backuppc ~]# chown -R backuppc:apache /var/lib/BackupPC/

[root@backuppc ~]#


Redémarrage des démons

On redémarre httpd.

[root@backuppc ~]# systemctl restart httpd.service

[root@backuppc ~]#

On redémarre backuppc.

[root@backuppc ~]# systemctl restart backuppc.service

[root@backuppc ~]#


Journal

Le principal journal de BackupPC se trouve dans le répertoire /var/lib/BackupPC/log et se nomme LOG.

Pour voir les messages des scripts de pre/post-sauvegarde, Tableau de bord NethServer → Administration → /var/log/messages.

Documentation

La documentation officielle de BackupPC (anglais): http://backuppc.sourceforge.net/faq/BackupPC.html.

La mise à jour vers BackupPC-4.3.0 est terminée.


Configuration préliminaire de BackupPC

Clés SSH

Pour préparer un client Linux à être sauvegarder, il faut configurer SSH tel que ci-dessous depuis le serveur hôte de BackupPC afin d'échanger les clés SSH pour pouvoir nous connecter sans mot de passe.

Avec l'installation de BackupPC, une clé RSA est automatiquement créée dans /var/lib/BackupPC/.ssh (4098 bits). Vous pouvez l’utiliser pour vous authentifier sans mot de passe si vous souhaitez sauvegarder un hôte Linux.

[root@backuppc ~]# ls -als /var/lib/BackupPC/.ssh

total 7
1 drwx------  2 backuppc backuppc 1024 16 mars  12:47 .
1 drwxr-x--- 10 backuppc root     1024 16 mars  14:42 ..
4 -rw-------  1 backuppc backuppc 3247 16 mars  12:47 id_rsa
1 -rw-r--r--  1 backuppc backuppc  762 16 mars  12:47 id_rsa.pub
[root@backuppc ~]#

Ce jeu de clés SSH servira uniquement pour les communications SSH entre les clients des sauvegardes et le serveur BackupPC. Ce jeu comprend les clés: “id_rsa” et “id_rsa.pub”.

Différence entre les jeux de clés SSH

Le jeu de clés SSH de l'utilisateur backuppc est différent du jeu standard d'un Serveur NethServer qui lui, se trouve dans le répertoire /etc/ssh/ et qui comprend: “ssh_host_rsa_key” et “ssh_host_rsa_key.pub”.

[root@backuppc ~]# ls -als /etc/ssh/ssh_host_rsa*

4 -rw-r----- 1 root ssh_keys 1675  4 janv. 09:23 /etc/ssh/ssh_host_rsa_key
4 -rw-r--r-- 1 root root      382  4 janv. 09:23 /etc/ssh/ssh_host_rsa_key.pub
[root@backuppc ~]#


Téléversement de la clé SSH publique de BackupPC

Téléversement de la clé publique de l'utilisateur backuppc depuis le serveur BackupPC vers le client SOURCE tchana.micronator-dev.org possédant l'adresse IP 10.10.10.75 afin que l'utilisateur backuppc puisse entrer en communication avec ce client sans devoir utiliser un mot de passe lors d'une connexion SSH.

[root@backuppc ~]# ssh-copy-id  -p 2222  -i ~backuppc/.ssh/id_rsa.pub  root@10.10.10.75

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/var/lib/BackupPC/.ssh/id_rsa.pub"
The authenticity of host '[10.10.10.75]:2222 ([10.10.10.75]:2222)' can't be established.
ECDSA key fingerprint is SHA256:9+bPJEyBWU7QPbS3rdI5CwoEMIffRtvD77sB79dEnSY.
ECDSA key fingerprint is MD5:13:d3:cd:0d:9b:ec:f0:98:be:4a:5d:5c:df:b4:dc:c2.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@10.10.10.75's password: mot-de-passe-de-root-du-serveur-SOURCE

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh -p '2222' 'root@10.10.10.75'"
and check to make sure that only the key(s) you wanted were added.

[root@backuppc ~]


Vérification de la connexion sans mot de passe

On se substitue à l'usager backuppc tout en lui donnant un shell.

[root@backuppc ~]# su -s /bin/bash backuppc

bash-4.1$

On vérifie la substitution.

bash-4.1$ whoami

backuppc
bash-4.1$

On vérifie la connexion ssh sans mot de passe vers le serveur SOURCE 10.10.10.75.

bash-4.1$ ssh -p 2222 root@10.10.10.75

Last login: Sat Mar 16 15:16:59 2019 from tchana.micronator-dev.org

************ Welcome to NethServer ************

This is a NethServer installation.

Before editing configuration files, be aware
of the automatic events and templates system.


          http://docs.nethserver.org

***********************************************
[root@tchana ~]#

La connexion sans mot de passe fonctionne correctement.

On se désengage de la connexion ssh pour retourner au serveur hôte de BackupPC.

[root@tchana ~]# exit

logout
Connection to 10.10.10.75 closed.
bash-4.1$

On sort de la substitution et on revient à l'usager root.

bash-4.1$ exit

exit
[root@backuppc ~]#


Scripts pre/post sauvegarde

BackupPC fournit une variable $Conf{DumpPreUserCmd} pour exécuter une commande de pré-sauvegarde et $Conf{DumpPostUserCmd} pour une commande de post-sauvegarde.

BackupPC fournit deux paramètres aux commandes pré-sauvegarde et post-sauvegarde:

$sshPath → qui est le chemin de la commande ssh et
$host → qui est le nom ou l'IP du serveur à être sauvegardé.

$sshPath

Pour les Serveurs NethServer, le chemin de la commande ssh est toujours le même.

[root@backuppc ~]# which ssh

/usr/bin/ssh
[root@backuppc ~]#


$host

BackupPC fournit le nom ou l'IP du serveur à être sauvegardé dans une variable qu'il nomme $host.

Répertoire de stockage des scripts

Nous créons un répertoire pour stocker nos scripts.

[root@backuppc ~]# mkdir /var/lib/BackupPC/script

[root@backuppc ~]#

On ajuste le propriétaire et le groupe.

[root@backuppc ~]# chown backuppc:apache /var/lib/BackupPC/script

[root@backuppc ~]#

On ajuste les droits.

[root@backuppc ~]# chmod 750  /var/lib/BackupPC/script

[root@backuppc ~]#

On vérifie.

[root@backuppc ~]# ls -lsd /var/lib/BackupPC/script

1 drwxr-x--- 2 backuppc apache 1024 19 mars  13:05 /var/lib/BackupPC/script
[root@backuppc ~]#


$Conf{DumpPreUserCmd}

Pour plus de détails, voir la section Paramètres de sauvegarde.
Dans BackupPC, nous utiliserons la commande suivante pour $Conf{DumpPreUserCmd}.

/var/lib/BackupPC/script/pre-sauvegarde.sh $host

Exemple: Dans l'interface cgi de BackupPC, choisir l'Hôte → Modifier la configuration → onglet Paramètres de sauvegarde → cadre Commandes des usagers.

/var/lib/BackupPC/script/pre-sauvegarde.sh → le chemin et le nom du script de pré-sauvegarde.

$host → le nom ou l'IP de la machine à être sauvegardée, qu'on passe en paramètre au script pre-sauvegarde.sh.

Script pre-sauvegarde.sh

Prendre tout le contenu de l'encadré pour la commande.

cat > /var/lib/BackupPC/script/pre-sauvegarde.sh <<'EOT'
#!/bin/sh

#-------------------------------------------
# /var/lib/BackupPC/script/pre-sauvegarde.sh
#
# Michel-André, 2019-03-18_16h49
#-------------------------------------------

# pre-backup-config pour la sauvegarde de la configuration et de LDAP
/usr/bin/ssh -l root $1 "/sbin/e-smith/signal-event pre-backup-config"

# Pause de BackupPC
/bin/sleep 15

# pre-backup-data pour la sauvegarde des données
/usr/bin/ssh -l root $1 "/sbin/e-smith/signal-event pre-backup-data"

# Pause de BackupPC
/bin/sleep 15

EOT

On vérifie.

[root@backuppc ~]# cat /var/lib/BackupPC/script/pre-sauvegarde.sh

#!/bin/sh

#-------------------------------------------
# /var/lib/BackupPC/script/pre-sauvegarde.sh
#
# Michel-André, 2019-03-18_16h49
#-------------------------------------------

# pre-backup-config pour la sauvegarde de la configuration et de LDAP
/usr/bin/ssh -l root $1 "/sbin/e-smith/signal-event pre-backup-config"

# Pause de BackupPC
/bin/sleep 15

# pre-backup-data pour la sauvegarde des données
/usr/bin/ssh -l root $1 "/sbin/e-smith/signal-event pre-backup-data"

# Pause de BackupPC
/bin/sleep 15

[root@backuppc ~]#

Il n'y a pas de ligne vide avant la ligne #!/bin/sh. Ci-dessus, nous en avons inséré une pour faciliter la copie de la commande.

#!/bin/sh
Indique que c'est un script bash. Doit toujours être obligatoirement la première ligne du script.

/usr/bin/ssh -l root $host /sbin/e-smith/signal-event pre-backup

/usr/bin/ssh
Le chemin/nom de l'utilitaire ssh.

-l root
(-l login_name) spécifie le nom d'usager à utiliser pour la connexion à la machine distante.

$host
Le paramètre $1 - le nom ou l'IP, du Serveur NethServer à sauvegarder, que l'on passe comme premier ($1) paramètre au script pre-sauvegarde.sh.

/sbin/e-smith/signal-event pre-backup-config et /sbin/e-smith/signal-event pre-backup-data
Commandes standard de pré-sauvegarde pour un Serveur NethServer.

Le “ (guillemet) indique au serveur distant d'exécuter tout ce qui suit jusqu'au prochain ”.

/bin/sleep 15
Indique au serveur BackupPC de prendre une pause de 15 secondes afin que la commande précédente ait le temps de terminer son travail sur l'hôte distant. Si cette pause n'est pas prise, BackupPC émettra un message de dépassement du délais d'attente (timed out) pour la commande suivante.

On ajuste le propriétaire et le groupe du script.

[root@backuppc ~]# chown backuppc:apache  /var/lib/BackupPC/script/pre-sauvegarde.sh

[root@backuppc ~]#

On ajuste les droits.

[root@backuppc ~]# chmod 550  /var/lib/BackupPC/script/pre-sauvegarde.sh

[root@backuppc ~]#

On vérifie.

[root@backuppc ~]# ls -ls /var/lib/BackupPC/script/pre-sauvegarde.sh

2 -r-xr-x--- 1 backuppc apache 515 19 mars  13:10 /var/lib/BackupPC/script/pre-sauvegarde.sh
[root@backuppc ~]#


$Conf{DumpPostUserCmd}

Pour plus de détails, voir la section Paramètres de sauvegarde.

Dans BackupPC, nous utiliserons la commande suivante pour $Conf{DumpPostUserCmd}.

/var/lib/BackupPC/script/post-sauvegarde.sh $host

Exemple: Dans l'interface cgi de BackupPC, choisir l'Hôte → Modifier la configuration → onglet Paramètres de sauvegarde → Commandes des usagers.

Script post-sauvegarde.sh

Prendre tout le contenu de l'encadré pour la commande.

cat > /var/lib/BackupPC/script/post-sauvegarde.sh <<'EOT'
#!/bin/sh

#--------------------------------------------
# /var/lib/BackupPC/script/post-sauvegarde.sh
#
# Michel-André, 2019-03-18_17h09
#--------------------------------------------

# Commande post-backup-config pour la configuration et LDAP
/usr/bin/ssh -l root $1 "/sbin/e-smith/signal-event post-backup-config"

# Pause de BackupPC
/bin/sleep 15

# Commande post-backup-data pour les données
/usr/bin/ssh -l root $1 "/sbin/e-smith/signal-event post-backup-data"

# Pause de BackupPC
/bin/sleep 15

EOT

On vérifie.

[root@backuppc ~]# cat /var/lib/BackupPC/script/post-sauvegarde.sh

#!/bin/sh

#--------------------------------------------
# /var/lib/BackupPC/script/post-sauvegarde.sh
#
# Michel-André, 2019-03-18_17h09
#--------------------------------------------

# Commande post-backup-config pour la configuration et LDAP
/usr/bin/ssh -l root $1 "/sbin/e-smith/signal-event post-backup-config"

# Pause de BackupPC
/bin/sleep 15

# Commande post-backup-data pour les données
/usr/bin/ssh -l root $1 "/sbin/e-smith/signal-event post-backup-data"

# Pause de BackupPC
/bin/sleep 15

[root@backuppc ~]#

Il n'y a pas de ligne vide avant la ligne #!/bin/sh. Ci-dessus, nous en avons inséré une pour faciliter la copie de la commande.

On ajuste le propriétaire et le groupe du script.

[root@backuppc ~]# chown backuppc:apache  /var/lib/BackupPC/script/post-sauvegarde.sh

[root@backuppc ~]#

On ajuste les droits.

[root@backuppc ~]# chmod 550  /var/lib/BackupPC/script/post-sauvegarde.sh

[root@backuppc ~]#

On vérifie.

[root@backuppc ~]# ls -ls /var/lib/BackupPC/script/post-sauvegarde.sh

1 -r-xr-x--- 1 backuppc apache 506 19 mars  13:11 /var/lib/BackupPC/script/post-sauvegarde.sh
[root@backuppc ~]#

Voilà, la configuration préliminaire de BackupPC est terminée.
Tous nos scripts sont en place, ils ont le bon propriétaire, le bon groupe et les bons droits.


Paramètres par défaut de BackupPC

Accès à l'interface cgi de BackupPC

Il existe deux liens pour accéder à BackupPC:

https://FQDN-ou-IP/BackupPC → page Web pour l'interface cgi.
https://FQDN-ou-IP/cygwin → page Web pour les paramètres cygwin-rsyncd pour Windows.
On peut aussi accéder à l'interface cgi de BackupPC via l'interface Web du Serveur NethServer.

Tableau de bord NethServer → Applications → BackupPC → Ouvrir.

Après avoir ajouter une exception dans le navigateur utilisé, on entre le justificatif de l'utilisateur admin puis on clique OK.


Comme on le voit par la couleur du cadenas de L'URL, la communication n'est pas chiffrée, car le certificat auto-signé du Serveur NethServer n'a pas été émis par une autorité de certification reconnue.
Si vous accéder à l'interface cgi de BackupPC depuis un réseau non sécuritaire, il est préférable d'installer un certificat de Let's Encrypt. Voir le Cahier-04: NethServer LOCAL & Certificat Let's Encrypt.


Cygwin pour la préparation des clients Windows

Tableau de bord NethServer → Applications → Cygwin → Ouvrir.

Après avoir ajouter une exception dans le navigateur utilisé, on entre le justificatif de l'utilisateur admin puis on clique OK.


Les instructions définies sur cette page sont pour la préparation des clients Windows qu'on voudrait sauvegarder avec BackupPC.


CGI

Langue de l'interface

Edit Config → onglet CGI → Language → on choisit fr. Le bouton Save devient actif. On le clique pour sauvegarder la modification.


Rafraîchir la page du navigateur → Renvoyer.


L'interface BackupPC est maintenant en français.

Actuellement, le paramètre Language s'applique seulement à l'interface CGI. Les fichiers journaux et autres textes sont toujours en anglais.


Format de la date

Format d'affichage de la date pour l'interface CGI.

Modifier la configuration → onglet CGI → CgiDateFormatMMDD.

La valeur 1 utilise des dates de type US (MM/DD), la valeur 2 utilise le format AAAA-MM-JJ et zéro pour les dates internationales (JJ/MM).

On veut un affichage AAAA-MM-JJ; on entre 2 à la variable CgiDateFormatMMDD.

On clique Sauvegarder pour enregistrer ce nouveau paramètre.



Paramètres de sauvegarde

CompressLevel (Niveau de compression)

Il n'y a rien à faire sauf, peut-être, le niveau de compression des sauvegardes; par défaut à 3 est très suffisant. Il ne faut pas oublier que la compression requière une assez grande partie du temps CPU.
Il n'y a presque rien à gagner à changer le niveau de compression.



Courriel

EMailNotifyMinDays 2.5 / 0.97
Période minimale entre les courriels consécutifs à un seul utilisateur. Ce paramètre tente de garder les courriels gênants pour les utilisateurs à un niveau raisonnable. La vérification du paramètre du courriel est effectuée tous les soirs, de sorte que ce nombre est effectivement arrondi (0.97 signifie qu'un utilisateur ne recevra jamais de courriel plus d'une fois tous les 1 jour).
Pour recevoir les courriels quotidiennement.

EMailFromUserName backuppc
Nom à utiliser pour le champ “De:” dans le courrier électronique. Selon votre gestionnaire de messagerie, il s'agit d'un nom complet (admin) ou d'un nom complet qualifié (admin@mondomaine.com).

EMailAdminUserName admin
Adresse de destination d'un utilisateur administratif qui recevra un courriel tous les soirs avec les avertissements et les erreurs. S'il n'y a pas d'avertissement ou d'erreur, aucun courriel ne sera envoyé. Selon votre gestionnaire de messagerie, il s'agit d'un nom complet (admin) ou d'un nom complet qualifié (admin@mondomaine.com).

EMailAdminSubject

Sujet pour les courriels à l'administrateur. Si vide, les valeurs par défaut de la version 4.2.2.

EMailUserDestDomain @mon-domaine.tld
Nom du domaine de destination pour les courriels envoyés aux utilisateurs. Par défaut, il est vide et signifie que le courriel est envoyé à des adresses simples et non qualifiées. Sinon, définissez ce paramètre avec le domaine de destination, par exemple:

Avec les paramètres $Conf{EMailAdminUserName} = 'admin' et $Conf{EMailUserDestDomain} = '@micronator.org' dans le fichier /var/lib/BackupPC/etc/config.pl, le courrier électronique sera envoyé à: admin@micronator.org.




Vérification du courriel

Pour vérifier que BackupPC peut exécuter sendmail et envoyer correctement le courrier électronique, vous pouvez lui demander de vous envoyer un courriel de test.

On se substitue à l'usager backuppc.

[root@backuppc ~]# su -s /bin/bash backuppc

bash-4.1$

On envoie le courriel de test.

bash-4.1$ /usr/share/BackupPC/bin/BackupPC_sendEmail -u admin@micronator.org

Sending test email using /usr/sbin/sendmail -t -f backuppc
bash-4.1$


On vérifie le courrier d'admin.


On se désengage de l'usager backuppc.

bash-4.1$ exit

exit
[root@backuppc ~]#


Horaire

Sauvegardes Complètes

FullPeriod 6.97
Période minimale en jours, entre les sauvegardes Complètes. Une vidange ne sera effectuée que si au moins ce délai s'est écoulé depuis la dernière sauvegarde Complète et, au moins IncrPeriod jours s'est écoulée depuis la dernière sauvegarde réussie.
Généralement, cette valeur est légèrement inférieure à un nombre entier de jours. Le temps pris pour la sauvegarde, plus la granularité de WakeupSchedule rendront l'intervalle de sauvegarde réel un peu plus long.

FillCycle 1
Dans V4+, les sauvegardes Complètes/Incrémentielles sont dissociées de fusionnée/non fusionnée.

Pour imiter le comportement de V3, si FillCycle est défini à zéro, alors fusionnée/non fusionnée continuera à s'associer à Complète/Incrémentielle: les sauvegardes Complètes seront fusionnées et les sauvegardes Incrémentielles seront non fusionnées. (Toutefois, la sauvegarde la plus récente est toujours fusionné, qu'elle soit Complète ou Incrémentielle.) La valeur zéro est le paramètre recommandé pour simplifier les choses: vu que l'expiration de la sauvegarde est en fait basée sur fusionnée/non-fusionnée (non pas sur Complète/Incrémentielle) en les conservant ainsi synchronisées facilite alors la compréhension des paramètres d'expiration.

Si vous envisagez d'effectuer uniquement des sauvegardes Incrémentielles (c'est-à-dire: FullPeriod est défini à une très grande valeur), vous devez définir FillCycle à quelle fréquence vous voulez qu'une sauvegarde stockée soit fusionnée. Par exemple, si FillCycle est défini à 7, toutes les 7e sauvegardes seront fusionnées (que la sauvegarde correspondante soit Complète ou non).

Il existe deux raisons pour lesquelles vous voudriez un paramètre FillCycle différent de zéro lorsque vous ne faites que des Incrémentielles:

● Une sauvegarde fusionnée est un point de départ pour la fusion des deltas lorsque vous restaurez ou examinez des sauvegardes. Avoir périodiquement des sauvegardes fusionnées rend plus efficace l'examen ou la restauration d'anciennes sauvegardes.

● Plus important encore, dans V4+ la suppression des sauvegardes se fait en fonction de fusionnée/non fusionnée et non pas si la sauvegarde d'origine était Complète/Incrémentielle. S'il n'y a pas de sauvegardes fusionnées (autres que la plus récente), alors FullKeepCnt et les paramètres qui y sont associés n'auront aucun effet.

Si FillCycle = 1, toutes les sauvegardes seront Fusionnées et le demeureront, mais leur début sera légèrement plus long et on verra “début de la sauvegarde” s'afficher pour un certain temps supplémentaire.

Si BackupPC doit faire une vidange à cause d'un dépassement du nombre de sauvegardes à conserver, le message ci-contre s'affichera après celui ci-dessus.

FullKeepCnt 7
Nombre de sauvegardes Fusionnées à conserver (le nom porte à confusion). Doit être > = 1.

À partir de V4+, la suppression des sauvegardes se fait en fonction de fusionnée/non-fusionnée et non plus si la sauvegarde d'origine était Complète ou Incrémentielle. Pour des raisons de compatibilité avec les anciennes versions, ce paramètre continue d'être appelé FullKeepCnt plutôt que FilledKeepCnt. Si FillCycle est à 0, alors, les sauvegardes Complètes continueront d'être Fusionnées; donc, les termes sont interchangeables. Pour les sauvegardes V3, les paramètres d'expiration ont leur signification d'origine.

Chaque fois qu'une sauvegarde Complète se termine avec succès, la plus ancienne est supprimée. Si ce nombre est diminué, les anciennes sauvegardes en surplus seront supprimées.

FullKeepCntMin 1
Les anciennes sauvegardes Complètes sont supprimées après FullAgeMax jours. Cependant, BackupPC conserve au moins FullKeepCntMin sauvegardes Complètes, quel que soit leur âge.

On garde au moins 1 sauvegarde Complète.

FullAgeMax 180

FullAgeMax sera augmenté à FullKeepCnt fois FullPeriod si FullKeepCnt spécifie suffisamment de sauvegardes Complètes pour dépasser FullAgeMax.

Sauvegardes Incrémentielles

IncrPeriod 0.97
Période minimale en jours, entre les sauvegardes Incrémentielles (une sauvegarde Incrémentielle demandée par l'utilisateur sera effectuée à tout moment, à sa demande).

Généralement, cette valeur est légèrement inférieure à un nombre entier de jours. Le temps pris pour la sauvegarde, plus la granularité de WakeupSchedule rendront l'intervalle de sauvegarde réel un peu plus long.

IncrKeepCnt 6
Nombre de sauvegardes Incrémentielles à conserver. Doit être > = 1.

Chaque fois qu'une sauvegarde Incrémentielle se termine avec succès et que le compte est > que IncrKeepCnt, la plus ancienne est supprimée. Si ce nombre est diminué, les anciennes sauvegardes Incrémentielles en surplus seront supprimées.

IncrKeepCntMin 1
Garder au moins 1 sauvegarde Incrémentielle.

IncrAgeMax 30
Les sauvegardes Incrémentielles très anciennes sont supprimées après IncrAgeMax jours. Cependant, BackupPC conserve au moins IncrKeepCntMin sauvegardes Incrémentielles, quel que soit leur âge.

Suspension

BackupsDisable 0

On peut désactiver en mettant à 1 et activer les sauvegardes seulement après avoir créé les machines clientes.

Désactive toutes les sauvegardes Complètes et Incrémentielles. Ce paramètre est utile pour un client qui n'est plus sauvegardé (par exemple: une machine qui est retirée), mais vous souhaitez conserver les dernières sauvegardes disponibles pour la navigation ou la restauration vers d'autres machines.

Ce paramètre peut prendre trois valeurs:

  1. 0 → Les sauvegardes sont activées.
  2. 1 → Ne pas faire de sauvegardes régulières sur ce client. Les sauvegardes demandées manuellement (via l'interface CGI) se produiront toujours.
  3. 2 → Ne faire aucune sauvegarde sur ce client. Les demandes manuelles des sauvegardes (via l'interface CGI) seront ignorées.

BlackoutBadPingLimit 3
Si le serveur ne répond pas après 3 ping, abandonner.

BlackoutGoodCnt 7
Les PCs qui sont toujours, ou souvent, présents sur le réseau peuvent être sauvegardés après les heures régulières afin de réduire la charge sur le PC, le réseau et le serveur pendant les heures de travail. Pour chaque PC, le nombre de pings consécutifs est maintenu. Une fois qu'un PC a au moins BlackoutGoodCnt bons pings consécutifs, il est sujet à un “blackout” et non sauvegardé pendant les heures et les jours spécifiés par BlackoutPeriods.

Pour permettre le redémarrage périodique d'un PC ou d'autres brèves périodes où un PC n'est pas sur le réseau, un nombre de pings négatifs consécutifs est autorisé avant que le nombre de bons ping soit réinitialisé. Ce paramètre est BlackoutBadPingLimit.

Les bons et mauvais pings ne se produisent pas avec le même intervalle. Si une machine est toujours présente sur le réseau, un ping ne sera envoyé qu'une fois tous les IncrPeriod (par exemple: une fois par jour). Donc, un paramètre pour BlackoutGoodCnt de 7 signifie qu'il faudra environ 7 jours pour qu'une machine soit soumise à un “blackout”. D'un autre côté, si un ping échoue, il sera réessayé à chaque fois que BackupPC se réveillera, par exemple toutes les heures ou toutes les deux heures. Donc, un paramètre pour BlackoutBadPingLimit de 3 signifie que le PC perdra son état de “blackout” après 3-6 heures d'indisponibilité.

Pour désactiver la fonction de “blackout”, configurez BlackoutGoodCnt à une valeur négative. Une valeur de 0 rendra toutes les machines sujettes à un “blackout”, mais si vous ne voulez pas faire de sauvegardes pendant la journée, il serait plus facile de simplement mettre WakeupSchedule à un horaire restreint.

BlackoutPeriods
Une ou plusieurs périodes d'interdiction peuvent être spécifiées. Si un client est sujet à un “blackout”, aucune sauvegarde régulière (non manuelle) ne sera démarrée pendant l'une de ces périodes. Les paramètres hourBegin et hourEnd spécifient les heures à partir de minuit et weekDays est une liste des jours de la semaine où 0 est dimanche, 1 lundi, etc.

Divers

RestoreInfoKeepCnt 10
Nombre de journaux de restauration à conserver. BackupPC mémorise les informations de chaque demande de restauration. Ce nombre, par client, sera conservé avant que les plus anciens ne soient purgés.

Les fichiers/répertoires transmis via les téléchargements Zip ou Tar ne sont pas considérés comme des restaurations. Seule la première option de restauration (où les fichiers et les répertoires sont écrits directement sur l'hôte) compte comme des restaurations consignées.

ArchiveInfoKeepCnt 10
Nombre de journaux d'archives à conserver. BackupPC mémorise les informations sur chaque requête de sauvegarde. Ce nombre d'archives de journaux par client sera conservé avant que les plus anciennes ne soient purgées.

BackupZeroFilesIsFatal
Une sauvegarde d'un partage ayant zéro fichier est considérée comme fatale. Ce paramètre est utilisé pour attraper diverses erreurs qui surviennent lorsque Xfer ne sauvegarde aucun fichier. Si vous avez des partages qui peuvent être vides (et donc une sauvegarde vide est valide), vous devez mettre cet indicateur à 0 (décoché).




Serveur

MaxOldLogFiles 14
Nombre maximal de fichiers journaux que BackupPC conserve dans le répertoire des journaux. L'âge de ces fichiers est mis à jour tous les soirs. Un paramètre de 14 signifie que le répertoire des journaux contiendra environ 2 semaines de vieux fichiers journaux: les fichiers LOG, LOG.0, LOG.1, … LOG.14 (sauf le journal d'aujourd'hui, ces fichiers auront une extension de “.z” si la compression est activée).

Si vous diminuez ce nombre après que BackupPC ait roulé un certain temps, vous devrez supprimer manuellement les anciens fichiers journaux.




Xfer

Pour le niveau de verbosité XferLogLevel dans les fichiers journaux Xfer: 0 signifie être calme, 1 donnera une ligne par fichier, 2 montrera également les fichiers sautés sur les incrémentielles et des valeurs plus élevées donnent plus de résultats. Pour le déverminage, un niveau de 8 ajoute deux lignes supplémentaires au menu (capture d'écran à droite) et pourrait vous orienter vers une solution à un problème donné.

S'assurer que RsyncShareName sous Paramètres de Rsync débute bien à “ /(la racine du système de fichiers).




Paramètres ssh

Port SSH du Serveur NethServer

Dans l'interface Web du Serveur NethServer, nous avons déjà configuré le Port TCP pour l'accès SSH à 2222.

Il faut ajuster le port SSH pour les communications de BackupPC vers les Serveurs NethServer clients.


Fichier de configuration SSH de BackupPC

Le répertoire pour tout ce qui concerne SSH est: /var/lib/BackupPC/.ssh.

Nous créons un fichier pour spécifier les paramètres de configuration SSH de BackupPC.

[root@backuppc ~]# touch /var/lib/BackupPC/.ssh/config

[root@backuppc ~]#

On ajuste le propriétaire et le groupe du fichier.

[root@backuppc ~]# chown backuppc:apache /var/lib/BackupPC/.ssh/config

[root@backuppc ~]#

On ajuste les droits.

[root@backuppc ~]# chmod 640 /var/lib/BackupPC/.ssh/config

[root@backuppc ~]#


Spécification du port SSH

Il existe plusieurs manières de spécifier ce port, mais la plus efficace est celle ci-dessous.

Host *
    Port 2222

Ce paramètre, dans le fichier de configuration SSH de BackupPC, aura préséance sur tous les autres paramètres de BackupPC spécifiant le port SSH.

Nous aurions pu utiliser les expressions suivantes pour spécifier le nom de l'hôte. Pour plus d'information, voir: https://www.digitalocean.com/community/tutorials/how-to-configure-custom-connection-options-for-your-ssh-client.

Host 192.168.1.33,192.168.1.149
    Port 2222
Host 192.168.1.0/24
    Port 2222

On peut spécifier des hôtes utilisant des ports différents.

Host 192.168.1.33
    Port 2222

Host 10.10.10.75
    Port 3333

On spécifie le port à utiliser.
Il faut que le mot “Port” soit à au moins un espace de la marge de gauche.
Prendre tout le contenu de l'encadré pour la commande. Pour nous, tous nos serveurs utilisent le port 2222.

cat > /var/lib/BackupPC/.ssh/config <<'EOT'
# Michel-André: 2018-04-24_11h04 HNE
# Spécification du port SSH à être utilisé par BackupPC
Host *
    Port 2222

EOT

On vérifie les droits, le propriétaire et le groupe.

[root@backuppc ~]# ls -ls /var/lib/BackupPC/.ssh/config

0 -rw-r----- 1 backuppc apache 120 18 mars  15:17 /var/lib/BackupPC/.ssh/config
[root@backuppc ~]#

On vérifie le contenu.

[root@backuppc ~]# cat /var/lib/BackupPC/.ssh/config

# Michel-André: 2018-04-24_11h04 HNE
# Spécification du port SSH à être utilisé par BackupPC
Host *
    Port 2222

[root@backuppc ~]#

Il n'y a pas de ligne vide avant la ligne # Michel-André: 2018-04-24_11h04 HNE. Ci-dessus, nous avons inséré une ligne vide pour faciliter la copie de la commande.

Propriétés DB

Il n'existe que quatre propriétés DB que vous pouvez modifier:

  1. CgiMultiUser [enabled | disabled]
    Multi utilisateur ou non.



  1. examples [enabled | disabled]
    Souhaitez-vous que les exemples de fichiers de configuration soient ajoutés à nouveau s'ils ont été supprimés?



  1. status [enabled | disabled]
    Voulez-vous que le service démarre automatiquement à l'amorçage du serveur?



  1. sudo
    Liste de commandes que l'usager backuppc pourra exécuter en tant que root en utilisant sudo. La valeur par défaut est “/usr/bin/rsync”, “/bin/gtar” et “/bin/tar”.

Affichage des propriétés du service backuppc.

[root@backuppc ~]# db configuration show backuppc

backuppc=service
    CgiMultiUser=enabled
    examples=enabled
    status=enabled
    sudo=/usr/bin/rsync,/bin/gtar,/bin/tar
[root@backuppc ~]#

Après avoir modifier une de ces propriétés, vous devez en signaler la mise à jour en lançant la commande ci-dessous.

/etc/e-smith/events/actions/system-adjust

Utilitaire sudo

L'utilitaire sudo3) est une commande informatique utilisée principalement dans les systèmes d'exploitation de type Linux/Unix. (abréviation de substitute user do: “exécuter en se substituant à l'utilisateur”.)

L'utilitaire sudo permet, à un utilisateur autorisé, d'exécuter une commande en tant que superutilisateur (root) ou d'un autre utilisateur tel que spécifié par la politique de sécurité (fichier de configuration).

Dans notre cas particulier, sudo offre entre autre à l'usager backuppc, une liste de commandes que ce dernier pourra exécuter en tant que root.

Par défaut, cette liste comprend les commandes suivantes:

  1. /usr/bin/rsync
  2. /bin/gtar
  3. /bin/tar

Fichier de configuration de sudo

L'utilitaire sudo est un cas particulier, car sa configuration se trouve dans le fichier /etc/sudoers.
Pour modifier ce fichier de configuration, il faut absolument utiliser l'éditeur visudo.
Lancement de l'éditeur de sudo.

[root@backuppc ~]# visudo

Erreur en modifiant le fichier /etc/sudoers avec visudo

Si vous avez fait une erreur lors de la modification du fichier, un message d'erreur de syntaxe s'affichera à la sortie de visudo et l'invite demandera ce que visudo devrait faire.

visudo: >>> /etc/sudoers: syntax error near line 15 <<<
What now?
Options are:
  (e)dit sudoers file again
  e(x)it without saving changes to sudoers file
  (Q)uit and save changes to sudoers file (DANGER!)

La meilleure réponse est “x”, sans guillemets, pour quitter visudo sans sauvegarder les changements apportés.

Réveil par le réseau (WOL)

À titre d'exemple, vous voulez être en mesure de réveiller une machine si la carte réseau de celle-ci possède l'option réveil par le réseau (Wake On Lan4).

Modifier la propriété sudo et ajouter la commande /sbin/ether-wake.

config setprop backuppc sudo `config getprop backuppc sudo`,/sbin/ether-wake

Signaler le changement…

/etc/e-smith/events/actions/system-adjust

… puis ajoutez simplement un script, tel que ci-dessous, à votre commande de pré-sauvegarde ou à votre commande ping.

Prendre tout le contenu de l'encadré pour la commande.

#!/bin/sh
# Set the mac address for each host
host1_mac=<mac address>
host1_name=<host name>
host2_mac=<mac address>
host2_name=<hmac addresshost namemac addresshost name>
# How long does the host take to boot
boottime=120
# Which interface to send the WoL packets out of
interface=eth0
# Function to check if the host pings
pingcheck()
{
ping -w 5 -c 2 $1
export pingstatus=$?
}
case $1 in
       host1)
               sudo etherwake -i $interface $host1_mac
               sleep $boottime
               pingcheck $host1_name
               exit $pingstatus
       ;;
       host2)
               sudo etherwake -i $interface $host2_mac
               sleep $boottime
               pingcheck $host2_name
               exit $pingstatus
       ;;
       *)
               echo "Unknown machine $1"
               exit 1
       ;;
esac

IMPORTANT Si vous utilisez l'usager administrateur admin par défaut, vous devrez utiliser le chemin complet pour les commandes ci-dessus.
Les scripts ne doivent pas être placés dans /etc/BackupPC car les autorisations seront remplacées. On peut les insérer dans notre répertoire de stockage de scripts: /var/lib/BackupPC/script.

Configuration du gabarit linux-template

Description

BackupPC contient un gabarit pour les serveurs Linux: linux-template. Nous allons ajuster certains paramètres de ce gabarit de base.
Lorsque nous utiliserons ce gabarit pour créer une nouvelle machine pour le serveur hôte de BackupPC ou pour tout autre serveur Linux, il ne sera pas nécessaire de complètement la configurer, car le gabarit s'en aura chargé; il suffira d'ajuster seulement certains paramètres particuliers.

Paramètres de sauvegarde

Hôtes → linux-template → Modifier la configuration → Paramètres de sau­ve­garde.


DumpPreUserCmd

/var/lib/BackupPC/script/pre-sauvegarde.sh $host

DumpPostUserCmd

/var/lib/BackupPC/script/post-sauvegarde.sh $host




Courriel

Ajustez vers quelle adresse courriel vous voulez envoyer les notifications de BackupPC.






Horaire

$Conf{FillCycle} 1
Pour plus d'information, voir: FillCycle plus haut dans ce document.

$Conf{FullKeepCnt} 7
Pour plus d'information, voir: FullKeepCnt plus haut dans ce document.

FullAgeMax 180
Voir la section FullAgeMax plus haut dans ce document.

$BackupsDisable 1
On activera les sauvegardes seulement après la création d'une nouvelle machine.

BlackoutPeriods

Une ou plusieurs périodes d'interdiction peuvent être spécifiées. Aucune sauvegarde régulière (non manuelle) ne sera démarrée pendant l'une de ces périodes. Les paramètres hourBegin et hourEnd spécifient les heures à partir de minuit et weekDays est une liste des jours de la semaine où 0 est dimanche, 1 est lundi, etc.

Par défaut, les machines des serveurs Linux ont une période d'interdiction de 7.0 - 19.5 (07h00 - 19h30).




Xfer

XferLogLevel 0
0 signifie être calme, 1 donnera une ligne par fichier, 2 montrera également les fichiers sautés sur les incrémentielles. Des valeurs plus élevées donneront plus de résultats. Une verbosité de 8 servira pour le débogage.

S'assurer que Paramètres de Rsync → RsyncShareName débute bien à “ / ” (la racine du système de fichiers).




BackupFilesExclude

Nous n'utilisons pas MySQL mais certains serveurs pourraient l'utiliser. On détruit donc cette exclusion en cliquant Détruire et ainsi ce répertoire ne sera pas exclus des sauvegardes de BackupPC.




Voilà, notre gabarit linux-template est prêt à être utilisé pour la création
de la machine hôte de BackupPC ou pour tout autre Serveur NethServer.


Création d'une machine pour le serveur hôte

Pour le serveur roulant BackupPC, on crée un machine en utilisant le gabarit linux-template.

Création de la machine du serveur hôte

On clique Modifier les machines (le menu devient Modifier la configuration et l'onglet Machines s'affiche) → Ajouter pour l'ajout d'une nouvelle machine on entre, sous host → 127.0.0.1=linux-template → et sous user → admin@micronator-101.org.




La nouvelle machine, hôte de BackupPC, a été crée.


On rafraîchit la page du navigateur puis, on clique Renvoyer.



Page d'accueil de la nouvelle machine

Sous Hôtes, on choisit le nom de notre nouvelle machine: 127.0.0.1 (192.168.1.33).

La page d'accueil s'affiche.



Vérification/ajustement de la configuration

Paramètres de sauvegarde


Modifier la configuration.

- Paramètres de sauvegarde.
- On vérifie la pre-commande et la post-commande.


Courriel & Horaire

Paramètres de courriel.

Sauvegrades complètes.

Sauvegrades incrémentielles.

Vu que le serveur hôte de BackupPC ne sert qu'à faire des sauvegardes et qu'il n'est pas nécessaire de le sauvegarder à toutes les semaines (6.97 jours), nous pourrions ajuster FullPeriod pour une sauvegarde Complète mensuelle seulement, en spécifiant FullPeriod à 30.5 jours. Nous pourrions aussi ajuster IncrPeriod pour une sauvegarde Incrémentielle hebdomadaire seulement, en spécifiant IncrPeriod à 6.97 jours.

hourBegin & hourEnd

Horaire (suite), on ajuste hourBegin et hourEnd.

BackupsDisable s'applique seulement aux sauvegardes automatiques. On peut quand même faire une sauvegarde manuelle pour vérifier que tout fonctionne correctement.
Après avoir fait nos sauvegardes de test, on activera les sauvegardes automatiques en mettant BackupsDisable=0.
Nous ne voulons pas que le serveur se sauvegarde lui-même pendant qu'il sauvegarde un autre serveur. Vu que les machines des autres serveurs auront une période d'interdiction de 7 - 19.5, on change les valeurs par défaut et on spécifie 19.5 - 7 pour la machine hôte de BackupPC.




Xfer

XferLogLevel 0

0 signifie être calme, 1 donnera une ligne par fichier, 2 montrera également les fichiers sautés sur les incrémentielles. Des valeurs plus élevées donneront plus de résultats. Une verbosité de 8 servira pour le débogage.

RsyncShareName /

S'assurer que ce paramètre débute bien à “ / ” (la racine du système de fichiers).




BackupFilesExclude

Le gabarit par défaut linux-template exclut le répertoire /var/lib/BackupPC des sauvegardes.
Lorsqu'on sauvegarde le serveur hôte de BackupPC par lui-même, nous voulons inclure certains sous-répertoires de /var/lib/BackupPC et en exclure d'autres.

On détruit donc l'exclusion complète de ce répertoire:

● Vis-a-vis /var/lib/BackupPC → Détruire.


On remplace l'exclusion complète par l'exclusion de seulement les répertoires ci-dessous. Ainsi, on gardera nos clés ssh, nos logs, nos scripts et nos configurations de BackupPC.

On clique Ajouter et on entre les répertoires:

  1. /var/lib/BackupPC/cpool
  2. /var/lib/BackupPC/lost+found
  3. /var/lib/BackupPC/mes_restaurations
  4. /var/lib/BackupPC/pc
  5. /var/lib/BackupPC/pool
  6. /var/lib/trash



On exclut aussi certains répertoires de configurations:

  1. /etc/sysconfig/network-scripts

Sert à la configuration des cartes réseaux qu'on voudra garder sur le serveur de DESTINATION.

  1. /boot

Sert pour la configuration de l'amorçage.

On exclut le fichier suivant:

  • /etc/fstab

Sert pour le montage des disques qu'on voudra garder sur le serveur de DESTINATION.


Si on sauvegarde l'hôte de BackupPC à l'aide d'un autre serveur BackupPC, on n'exclut pas le répertoire /var/lib/BackupPC ni aucun de ses sous-répertoires.

Voilà, notre machine pour le serveur hôte de BackupPC est prête à être utilisée.
Tout est prêt pour notre première sauvegarde.


Sauvegarde du serveur hôte

Nous allons sauvegarder le Serveur NethServer roulant BackupPC et dont l'adresse IP est 127.0.0.1 (192.168.1.33).

Sauvegarde automatique

Si nous avons créé et configuré le serveur hôte de BackupPC en dehors de ses heures d'interdiction (voir le paragraphe hourBegin & hourEnd), au prochain réveil de BackupPC, il exécutera automatiquement une première sauvegarde Complète de lui-même, sans que nous ayons à faire quoi que ce soit, si BackupsDisable est à 0 (c.-à-d. sauvegardes automatiques activées).
C'est pour cette raison que nous avons mis BackupsDisable à 1 (sauvegardes automatiques désactivées) lors de la configuration du gabarit.

Clé SSH publique de BackupPC

Avant de faire quoi que ce soit, on téléverse la clé SSH de BackupPC afin d'éviter le problème de rejet de connexion lors de la sauvegarde.
Si on lance une sauvegarde sans que le serveur à sauvegarder ait reçu la clé SSH de BackupPC, le serveur distant pourrait bloquer les futures tentatives de connexion.

Explication du blocage des futures tentatives de connexion

Sans la clé SSH, téléversée sur le serveur à sauvegarder et qui permet à BackupPC de se connecter sans devoir utiliser un mot de passe, la sauvegarde tentera à plusieurs reprises de se connecter sans mot de passe et ainsi dépassera la limite de tentatives infructueuses de connexions fixée par le Serveur NethServer à sauvegarder.

Sans la clé SSH sur le serveur à sauvegarder, lors de toutes sauvegardes, BackupPC émettra l'erreur suivante:

Got fatal error during xfer (rsync error: unexplained error (code 255) at io.c(629) [Receiver=3.0.9.12]).

Tous nos Serveur NethServer ont le module Fail2Ban et après 3 tentatives de connexions infructueuses, il bannit l'adresse IP en question.

Téléversement de la clé SSH de BackupPC

Si nous n'avons pas déjà téléversé la clé SSH publique de BackupPC, on le fait obligatoirement maintenant.
On se substitue à l'usager backuppc.

[root@backuppc ~]# su -s /bin/bash backuppc

bash-4.1$

On téléverse la clé SSH publique de BackupPC sur le client (localhost/127.0.0.1) afin que la sauvegarde puisse entrer en communication sans devoir utiliser un mot de passe lors d'une connexion.

bash-4.2$ ssh-copy-id -p 2222 -i ~backuppc/.ssh/id_rsa.pub root@127.0.0.1

bash-4.2$ ssh-copy-id -p 2222 -i ~backuppc/.ssh/id_rsa.pub root@127.0.0.1
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/var/lib/BackupPC/.ssh/id_rsa.pub"
The authenticity of host '[127.0.0.1]:2222 ([127.0.0.1]:2222)' can't be established.
ECDSA key fingerprint is SHA256:9+bPJEyBWU7QPbS3rdI5CwoEMIffRtvD77sB79dEnSY.
ECDSA key fingerprint is MD5:13:d3:cd:0d:9b:ec:f0:98:be:4a:5d:5c:df:b4:dc:c2.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@127.0.0.1's password: mot-de-passe-de-root-sur-le-serveur-hôte

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh -p '2222' 'root@127.0.0.1'"
and check to make sure that only the key(s) you wanted were added.

bash-4.2$

On peut utiliser l'une ou l'autre des adresses IP: 127.0.0.1 ou 192.168.1.33.

On sort de la substitution d'usager.

bash-4.2$ exit

exit
[root@backuppc ~]#


Vérification du téléchargement de la clé publique

On ouvre une session PuTTY vers le Serveur NethServer hôte de BackupPC (192.168.1.33).
Ne pas utiliser l'adresse 127.0.0.1 car vous vous retrouveriez sur la station hôte de PuTTY.

On vérifie la présence de la clé publique de BackupPC.

[root@backuppc ~]# cat /root/.ssh/authorized_keys

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCuyZjkFyxAQFxBg734n06mjtIPSNRHuSMB+EfSqWvHZkrzuO/T+p1sSwcYiD4WNhWA4+5u+xWlAjFWPt4Ln3U2DkIGdW6KcWwgeylPGdYvUAQQ4+eTzIrpg/jzbM2OFl2VPg1sX43utrZDUkLpt8QN3hUBGDma/EYCpds7LY2eghIPXxlrC34DBcid4hymvrtirFEJuxCcafXIDmdzvuVGhQ8ubYE3Zw8AAgRss+6S+HmoAsiLl84OicnMr09SacNT9PFie5mbMjFZFKPCN/z3juIZIvYmO9RsexakRIEaiDUMlnEUJB3tE1tNpIOjdtvv3NwCfkqGIBNNupSJwIeeFYbumJBZN250LP+f/Jw5OVK9lfKYQmG8LAIXwfdlgaIvhU+QxO5PnhGDVc3dRiuunA7comtlWfffhxTTX9Dd9TqezNAbXhhaawPP9VNazZtxBvCA2vylG3Kqu+43vc5O/pK53vGu1IRCnt2M5QWSQwL/ef6McSvnh/I4lWHXZlXSDbE0ieiqq6IaU5R+Mo9UFv3X2/mfK5zX2l8bDeKsLaKTtg5yJE/SAmlIjlXh2K7ckTW9jbU4xTthXHCHnllYEpunmPE5JSDWG0zH4WBIrHm5giFTpjO478u2IqAm+7nCrr7Jue5NLqoNhJ0mq51sSq1YtLff662AOJEqz5xuvw=== RSA key for BackupPC automatic login
[root@backuppc ~]#

Il n'y a pas de ligne vide avant le début de la ligne ssh-rsa AAAA…. Ci-dessus nous avons inséré une ligne vide pour faciliter la copie de la commande.

Sauvegarde "Complète" de l'hôte BackupPC

Espace disque et nombre d'inodes

Espace disque avant la sauvegarde

[root@backuppc ~]# df -h

Sys. de fichiers             Taille Utilisé Dispo Uti% Monté sur
/dev/mapper/VolGroup-lv_root    22G    2,7G   19G  13% /
devtmpfs                       1,9G       0  1,9G   0% /dev
tmpfs                          1,9G     48K  1,9G   1% /dev/shm
tmpfs                          1,9G    8,8M  1,9G   1% /run
tmpfs                          1,9G       0  1,9G   0% /sys/fs/cgroup
/dev/sda1                     1014M    221M  794M  22% /boot
/dev/sdb1                       22G    5,0M   22G   1% /var/lib/BackupPC
tmpfs                          379M       0  379M   0% /run/user/0
[root@backuppc ~]#

Nombre d'inodes avant la sauvegarde

[root@backuppc ~]# df -i

Sys. de fichiers               Inœuds IUtil.   ILibre IUti% Monté sur
/dev/mapper/VolGroup-lv_root 11270144  76954 11193190    1% /
devtmpfs                       482081    379   481702    1% /dev
tmpfs                          485058      8   485050    1% /dev/shm
tmpfs                          485058    624   484434    1% /run
tmpfs                          485058     16   485042    1% /sys/fs/cgroup
/dev/sda1                      524288    345   523943    1% /boot
/dev/sdb1                    15001600     66 15001534    1% /var/lib/BackupPC
tmpfs                          485058      1   485057    1% /run/user/0
[root@backuppc ~]#


Lancement de la sauvegarde

On retourne à la page 127.0.0.1 Accueil et on clique Démarrer la sauvegarde Complète.



On confirme en cliquant Démarrer la sauvegarde complète.

On retourne à la page d'accueil en cliquant le nom de notre machine → 127.0.0.1.


Au retour à la page d'accueil, BackupPC nous informe du “début de la sauvegarde” → Fichier journal.


La page du journal nous indique que le répertoire de stockage des sauvegardes pour la machine 127.0.0.1 a été créé, que la sauvegarde a débutée et qu'elle a commencée dans le répertoire racine “ / ”.


L'utilitaire top

À la console du Serveur NethServer BackupPC, on peut lancer la commande top pour voir les processus en cours.

[root@backuppc ~]# top -d 1

On voit que backuppc utilise peu de mémoire, mais un pourcentage très substantiel du temps CPU.


Fichier journal de la machine

Après quelques minutes et un rafraîchissement de la page du journal, BackupPC nous dit que la sauvegarde #0 est complétée.


Liste d'attente d'arrière plan

Lors d'une sauvegarde, la page d'acceuil pourrait afficher le message ci-dessous.

BackupPC est occupé par BackupPC_refCountUpdate qui vérifie le pool des références.

BackupPC_refCountUpdate est utilisé pour mettre à jour le nombre de références par sauvegarde et par hôte de même que le nombre de références à l'échelle du système. Il est utilisé par: BackupPC_dump, BackupPC_nightly, BackupPC_backupDelete, BackupPC_backupDuplicate et BackupPC_fsck.

Ci-dessous, il a pris 236 secondes.

...
Xfer PIDs are now
Executing DumpPostUserCmd: /usr/bin/ssh -l root 192.168.1.33 /sbin/e-smith/signal-event post-backup
Running BackupPC_refCountUpdate -h 192.168.1.33 on 192.168.1.33
Xfer PIDs are now 2609 
BackupPC_refCountUpdate: doing fsck on 192.168.1.33 #0 (full) since $ConfRefCntFsck === 1 
BackupPC_refCountUpdate: host 192.168.1.33 got 0 errors (took 236 secs) 
Xfer PIDs are now 
Finished BackupPC_refCountUpdate (running time: 236 sec)
Xfer PIDs are now 
...



Examen de la sauvegarde

Lorsque la sauvegarde est terminée, la page d'accueil nous donne les différentes statistiques de cette sauvegarde.


Journaux de la sauvegarde

On voit que c'est une sauvegarde Complète et qu'elle est fusionnée.


JournalXfer

Le JournalXfer nous indique les fichiers sauvegardés selon le paramètre XferLogLevel au paragraphe Xfer. Pour cette sauvegarde, le fichier journal est XferLOG.0.z.

● Le script pre-sauvegarde.sh a été exécuté.

● Les exclusions ont été prises en compte.


● Le script post-sauvegarde.sh a été exécuté.

● La mise à jour refCountUpdateItalique des pointeurs de fichier a pris 8 secondes.


Journal Erreurs

Le journal Erreurs nous indique le nombre d'erreurs encourus.

On peut remarquer que 74 097 fichiers ont généré 160 638 inodes.


Journal principal de BackupPC

Le journal principal de BackupPC contient tous les événements survenus.


Ce journal indique notre sauvegarde Complète du serveur 127.0.0.1.

...
2019-03-20 22:31:09 User admin requested backup of 127.0.0.1 (127.0.0.1)
2019-03-20 22:34:18 Started full backup on 127.0.0.1 (pid=8350, share=/)
2019-03-20 22:41:13 Finished full backup on 127.0.0.1
2019-03-20 23:00:00 Next wakeup is 2019-03-21 01:00:00
...


Journal "messages" du Serveur NethServer

Les commandes pre-backup-config, pre-backup-data, post-backup-config et post-backup-data ont toutes été exécutées.

...
Mar 20 22:31:10 backuppc esmith::event[8358]: Event: pre-backup-config
...
Mar 20 22:31:34 backuppc esmith::event[8419]: Event: pre-backup-data
...
Mar 20 22:40:33 backuppc esmith::event[9232]: Event: post-backup-config
...
Mar 20 22:40:49 backuppc esmith::event[9259]: Event: post-backup-data
...


Espace disque et nombre d'inodes

Espace disque après la première sauvegarde

L'espace disque est passé de 4,6M à 1,7G.

[root@backuppc ~]# df -h

Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/main-root
                      6,8G  3,6G  2,8G  57% /
tmpfs                 1,9G     0  1,9G   0% /dev/shm
/dev/md0              239M   77M  150M  34% /boot
/dev/sdb1              17G  1,7G   15G  11% /var/lib/BackupPC
[root@backuppc ~]#

Nombre d'inodes après la première sauvegarde

Le nombre d'inodes est passé de 67 à 201294.

[root@backuppc ~]# df -i

Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/main-root
                       456064 159191   296873   35% /
tmpfs                  490294      1   490293    1% /dev/shm
/dev/md0                64000     54    63946    1% /boot
/dev/sdb1            15005976 201294 14804682    2% /var/lib/BackupPC
[root@backuppc ~]#


C'est ici qu'on voit l'utilisation du disque /dev/sdb1 et du grand nombre d'inodes. Ce nombre s'explique par la création des liens et le stockage de la sauvegarde Complète.


XferLogLevel

On pourrait mettre XferLogLevel à 1 pour une très petite perte d'espace disque.
Attention: Il ne faut pas modifier la configuration d'une machine qui est en train de se faire sauvegarder, car on recevrait l'erreur suivante.

2019-03-03 11:35:44 full backup started for directory /
2019-03-03 11:39:29 Got fatal error during xfer (rsync error: unexplained error (code 139) at io.c(1556) [generator=3.0.9.11])
2019-03-03 11:39:34 Backup aborted (rsync error: unexplained error (code 139) at io.c(1556) [generator=3.0.9.11])



Première sauvegarde Incrémentielle

→ Démarrer une sauvegarde Incrémentielle.


Démarrer la sauvegarde Incrémentielle.

On retourne à la page d'accueil → 127.0.0.1.


BackupPC indique que la sauvegarde a débutée puis, qu'elle est en cours.

Les 3 minutes écoulées entre le début 10:33 et la sauvegarde elle-même 10:36 ont été utilisées, par BackupPC_refCountUpdate, pour la création des liens vers la sauvegarde précédente #0.

La sauvegarde Incrémentielle est commencée.


La sauvegarde Incrémentielle est terminée.


Ci contre, on voit que la sauvegarde Incrémentielle a été fusionnée à la dernière sauvegarde Complète.

L'Incrémentielle a pris 3.3 minutes et a trouvé un delta de 143 fichiers d'une taille totale de 97.4 Mo.


Espace disque et nombre d'inodes

Espace disque après la première Incrémentielle

[root@backuppc ~]# df -h

Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/main-root
                      6,8G  3,7G  2,8G  57% /
tmpfs                 1,9G     0  1,9G   0% /dev/shm
/dev/md0              239M   77M  150M  34% /boot
/dev/sdb1              17G  1,8G   15G  11% /var/lib/BackupPC
[root@backuppc ~]#

Nombre d'inodes après la première Incrémentielle

[root@backuppc ~]# df -i

Filesystem             Inodes  IUsed    IFree IUse% Mounted on
/dev/mapper/main-root
                       456064 159191   296873   35% /
tmpfs                  490294      1   490293    1% /dev/shm
/dev/md0                64000     54    63946    1% /boot
/dev/sdb1            15005976 302883 14703093    3% /var/lib/BackupPC
[root@backuppc ~]#

L'Incrémentielle a fait passer les inodes de 201294 à 302883; 101589 nouveaux inodes ont été créés.

Dans BackupPC-4.x, la dernière sauvegarde, qu'elle soit Complète ou Incrémentielle, est toujours fusionnée.

L'Incrémentielle a sauvegardé un delta de 143 fichiers pour 97.4 Mo.
En réalité, BackupPC n'a pas “copié” la sauvegarde #0 (Complète) vers la sauvegarde #1 (Incrémentielle), mais il a créé des liens (inodes) dans la sauvegarde Incrémentielle vers la sauvegarde Complète, y a ajouté quelques inodes pour le delta en plus des quelques autres pour la création du répertoire et des sous-répertoires de la sauvegarde elle-même.
C'est ce qui explique le nombre d'inodes créés par la dernière sauvegarde Incrémentielle, car la dernière sauvegarde est toujours fusionnée.

Fusion

Comme l'affiche la page d'accueil, l'Incrémentielle #1 a été Fusionnée à la Complète #0.


La fusion est aussi démontrée ci-contre, par la grandeur de l'Incrémentielle 1.


Examen des fichiers

On peut afficher le contenu d'une sauvegarde en cliquant le numéro de celle-ci 1”.


L'arborescence des fichiers de la sauvegarde est affichée.



Deuxième sauvegarde Incrémentielle

On lance une deuxième sauvegarde Incrémentielle.


BackupPC fusionne toutes les sauvegardes, car pour la machine 127.0.0.1, le paramètre FillCycle est à 1 indiquant de fusionner toutes les sauvegardes et de toujours les garder ainsi.


Restauration d'un fichier

Restauration vers le répertoire original

Si on veut restaurer un fichier particulier, on clique sur le numéro de la sauvegarde contenant le fichier à restaurer.


On se rend dans le répertoire du fichier en parcourant l'arborescence à gauche puis, à droite on coche la case des fichiers à restaurer.

→ Restaurer les fichiers sélectionnés.

On peut sélectionner le nombre de fichiers désirés sans aucun problème.

On vérifie les noms des fichiers à restaurer.

→ Démarrer la restauration.


On vérifie les chemins de la source et celui de la destination.

→ Restaurer.


La restauration a réussie, on retourne à la page d'accueil.
→ 127.0.0.1.


On affiche le fichier journal de la machine.

La restauration a été complétée. La variable 0 files ne tient compte que des fichiers créés et non de ceux qui ont été restaurés à l'emplacement original.

Voir la capture d'écran Visionner à la section Vérification pour la confirmation que le fichier de 1314 octets a bien été restauré.

À comparer avec la capture Succès à la section Restauration vers un répertoire différent lors de la restauration des mêmes fichiers, mais dans le répertoire /temp.

À la page d'accueil, on peut voir un nouveau cadre: Résumé de la restauration. Cliquer le numéro de la Restauration #0 pour en afficher les détails.


Vérification

On peut cliquer Visionner ou Erreurs.

Visionner. Le journal Restauration s'affiche.


Erreur

Le journal Extraction des erreurs seulement s'affiche.


Restauration vers un répertoire différent

On peut choisir un autre répertoire de destination: /temp pour la restauration.

→ Démarrer la restauration.


→ Restaurer.


On retourne à la page d'accueil.
→ 127.0.0.1.


Succès.


Vérification dans le Fichier journal de la machine.

Cette fois-ci, restauration de 2 files… parce que BackupPC a créé deux nouveaux fichiers.


Vérification manuelle.

[root@backuppc ~]# ls -als /temp/

total 8
0 drwxr-x---   2 backuppc apache  57 19 mars  13:11 .
0 dr-xr-xr-x. 18 root     root   236 11 janv. 12:28 ..
4 -r-xr-x---   1 backuppc apache 506 18 mars  17:12 post-sauvegarde.sh
4 -r-xr-x---   1 backuppc apache 515 18 mars  17:45 pre-sauvegarde.sh
[root@backuppc ~]#


Nettoyage nocturne

Sauvegardes à conserver

Complètes

Dans la page de configuration, sous l'onglet Horaire, nous avons mis FillCycle à 1 qui implique de fusionner toutes les sauvegardes.

Nous avons aussi mis FullKeepCnt à 7 pour indiquer à BackupPC de ne garder que 7 sauvegardes Complètes, car les Incrémentielles fusionnées peuvent être considérées comme des Complètes.

● À partir de V4+, la suppression des sauvegardes se fait en fonction de fusionnée/non-fusionnée et non plus si la sauvegarde d'origine était Complète ou Incrémentielle.

● Pour des raisons de compatibilité avec les anciennes versions, ce paramètre continue d'être appelé FullKeepCnt plutôt que FilledKeepCnt.

● La sauvegarde la plus récente (qui est toujours fusionnée) ne compte pas lors de la vérification de FilledKeepCnt.

●Avec ces paramètres, chaque fois qu'une sauvegarde fusionnée se termine avec succès, la plus ancienne est supprimée.

Incrémentielles

Nous avons indiqué de conserver un maximum de 6 Incrémentielles avec un minimum de 1.


Journal principal de BackupPC

Serveur → Fichier journal. Nous avons fait 1 Complète, 2 Incrémentielles et 2 restaurations.

...
2019-03-20 22:31:09 User admin requested backup of 127.0.0.1 (127.0.0.1)
2019-03-20 22:34:18 Started full backup on 127.0.0.1 (pid=8350, share=/)
2019-03-20 22:41:13 Finished full backup on 127.0.0.1
2019-03-20 23:00:00 Next wakeup is 2019-03-21 01:00:00
...
2019-03-21 10:33:24 User admin requested backup of 127.0.0.1 (127.0.0.1)
2019-03-21 10:36:15 Started incr backup on 127.0.0.1 (pid=6348, share=/)
2019-03-21 10:37:00 Finished incr backup on 127.0.0.1
2019-03-21 11:00:01 Next wakeup is 2019-03-21 12:00:00
2019-03-21 11:50:59 User admin requested backup of 127.0.0.1 (127.0.0.1)
2019-03-21 11:51:41 Started incr backup on 127.0.0.1 (pid=11259, share=/)
2019-03-21 11:52:17 Finished incr backup on 127.0.0.1
2019-03-21 12:00:00 Next wakeup is 2019-03-21 13:00:00
2019-03-21 12:23:16 User admin requested restore to 127.0.0.1 (127.0.0.1)
2019-03-21 12:23:16 Started restore on 127.0.0.1 (pid=5459)
2019-03-21 12:23:17 Finished restore on 127.0.0.1
2019-03-21 12:49:30 User admin requested restore to 127.0.0.1 (127.0.0.1)
2019-03-21 12:49:31 Started restore on 127.0.0.1 (pid=7145)
2019-03-21 12:49:31 Finished restore on 127.0.0.1
...


Résumés des sauvegardes/restaurations


Fermeture et amorçage du serveur BackupPC

Nous avons éteint le serveur BackupPC à 23:57:48.

...

2019-03-20 23:57:48 Got signal TERM... cleaning up (exit code = 0)

...

Le lendemain, nous avons amorcer le serveur BackupPC à 10:03:42.

Le prochain réveil de BackupPC se fera donc à 11:00:00.

...
2019-03-21 10:03:42 Reading hosts file
2019-03-21 10:03:42 BackupPC 4.3.0 (Perl v5.16.3) started, pid 3237
2019-03-21 10:03:43 Next wakeup is 2019-03-21 11:00:00
...


Journal de la machine 127.0.0.1, hôte de BackupPC

Vu que:

● Nous avons 3 sauvegardes: 1 Complète et 2 Incrémentielles, toutes Fusionnées.

FilledKeepCnt = 1 et FilledKeepCntMin = 1.

● La sauvegarde la plus récente #2 (qui est toujours fusionnées) ne compte pas lors de la vérification de FilledKeepCnt.

● À partir de V4+, la suppression des sauvegardes se fait en fonction de fusionnée/non-fusionnée.

Nous pouvons affirmer que nous avons présentement: (3 - la plus récente) = 2 fusionnées. Nous n'avons donc aucune sauvegarde à nettoyer, car notre configuration spécifie de garder 7 sauvegardes fusionnées ou selon la nouvelle nomenclature pour la version BackupPC-4.x, 7 FilledKeepCnt.

Le nettoyage nocturne ne supprimera aucune sauvegarde fusionnée.

Nettoyage des anciennes sauvegardes

Pour démontrer le nettoyage nocturne, nous allons:

1) Configurer notre serveur hôte de BackupPC (127.0.0.1) pour ne conserver qu'une seule FullKeepCnt (FilledKeepCnt).

2) Réamorcer le serveur hôte.

3) Demander une nouvelle sauvegarde incrémentielle.

4) Vérifier le résultat.

Modification de la configuration de 127.0.0.1

Hôte → 127.0.0.1 → Modifier la configuration → onglet Horaire → FullKeepCnt → 1.

→ Sauvegarder.


Réamorçage du serveur hôte

À la console su serveur.

[root@backuppc ~]# reboot

Après le réamorçage, on examine le journal: Serveur → Fichier journal.

...
2019-03-21 14:47:36 admin a chang� FullKeepCnt dans host 127.0.0.1 config de [7] � [1]
2019-03-21 14:48:18 Got signal TERM... cleaning up (exit code = 0)
2019-03-21 14:48:52 Reading hosts file
2019-03-21 14:48:52 BackupPC 4.3.0 (Perl v5.16.3) started, pid 3201
2019-03-21 14:48:52 Next wakeup is 2019-03-21 15:00:00

BackupPC n'a encore rien nettoyé.

Nouvelle sauvegarde incrémentielle

→ Démarrer la sauvegarde incrémentielle.


Vérification

Après la sauvegarde incrémentielle, on examine le journal du serveur BackupPC:

Serveur → Fichier journal.

...
2019-03-21 14:56:14 User admin requested backup of 127.0.0.1 (127.0.0.1)
2019-03-21 14:59:30 Started incr backup on 127.0.0.1 (pid=4941, share=/)
2019-03-21 15:00:00 Next wakeup is 2019-03-21 16:00:00
2019-03-21 15:00:20 Finished incr backup on 127.0.0.1


On examine le journal de la machine de l'hôte de BackupPC, c.-à-d. 127.0.0.1.

Hôte → 127.0.0.1 → Fichier journal.


On voit qu'avant d'exécuter l'incrémentielle, BackupPC a supprimé la sauvegarde fusionnée #0 car:

  • Il a examiné le paramètre FullKeepCnt qui est à 1.
  • Il a calculé le nombre de sauvegardes fusionnées: (3 - la plus récente) = 2 fusionnées.
  • Il en a déduit qu'il existait une sauvegarde fusionnée qui était de trop.
  • Il a supprimé la plus ancienne, #0.
  • Puis, il a débuté l'incrémentielle demandée.

Résulta final

La sauvegarde #0 a bien été supprimée et la nouvelle incrémentielle, #3 est terminée.


Hôtes → 127.0.0.1 → Modifier la configuration → onglet Horaire.

On remet en place notre configuration originale.


Activation des sauvegardes

Notre configuration fonctionne correctement. Nous pouvons maintenant activer les sauvegardes automatiques.

Hôtes -> 127.0.0.1 → Modifier la configuration → onglet Horaire.

Dans la section Suspension: BackupsDisable → 0.

→ Sauvegarder.

Les sauvegardes de l'hôte de BackupPC fonctionnent correctement.


Sauvegarde du serveur SOURCE

Diagramme réseau


Page Web

On affiche la page Web du serveur SOURCE: https://10.10.10.75.


Création de la machine SOURCE dans BackupPC

Nous allons créer une nouvelle machine dans BackupPC pour représenter le Serveur NethServer SOURCE.

● Nom du serveur: source.micronator-101.org
● Adresse IP: 10.10.10.75.

Nous utilisons des machines virtuelle sur un réseau privé, le DNS ne fonctionne pas, car nous n'avons aucun enregistrement DNS pour nos serveurs. Il nous faut donc utiliser les adresses IP des serveurs au lieu de leur nom d'hôte.
Si vous pouvez faire un ping en utilisant le nom FQDN de votre Serveur NethServer, vous pouvez alors utiliser ce nom pour la création de la machine dans BackupPC ci-dessous.

Nous utilisons le gabarit linux-template pour créer la nouvelle machine dans BackupPC.

- Modifier les machines → onglet Machines → Ajouter.
- host → 10.10.10.75=linux-template.
- user → admin@micronator-101.org.
- Sauvegarder.




Vérification.


On rafraîchit la page du fureteur → Renvoyer.


Page d'accueil

Sous Hôtes, on choisit le nom de notre nouvelle machine: 10.10.10.75.

La page d'accueil s'affiche.



Vérification de la configuration


Modifier la configuration.

- Paramètres de sauvegarde.
- On vérifie la pre-commande et la post-commande.

Horaire.



BackupsDisable → 1 ⇒ désactivé, s'applique seulement aux sauvegardes automatiques. On peut quand même faire une sauvegarde manuelle pour vérifier que tout fonctionne correctement.
Vu que nous ne ferons que quelques sauvegardes manuelles de cette machine, plus tard, il ne sera pas nécessaire d'activer les sauvegardes automatiques.
Sur nos Serveurs NethServer en production, on activera les sauvegardes automatiques seulement après avoir vérifier une sauvegarde manuelle.

Horaire (suite).



Xfer / BackupFilesExclude

Ajouter:
- /etc/sysconfig/network-scripts
- /boot
- /etc/fstab

→ Sauvegarder.

Tout est prêt pour la première sauvegarde Complète du Serveur NethServer SOURCE.

Téléversement de la clé SSH de BackupPC vers SOURCE

Sur le serveur hôte de BackupPC, on se substitue à l'usager backuppc.

[root@backuppc ~]# su -s /bin/bash backuppc

bash-4.1$

On téléverse la clé publique de BackupPC vers le client SOURCE (10.10.10.75) afin que BackupPC puisse entrer en communication sans devoir utiliser un mot de passe lors d'une connexion SSH.

bash-4.1$ ssh-copy-id -p 2222 -i ~backuppc/.ssh/id_rsa.pub root@10.10.10.75

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/var/lib/BackupPC/.ssh/id_rsa.pub"
The authenticity of host '[10.10.10.75]:2222 ([10.10.10.75]:2222)' can't be established.
ECDSA key fingerprint is SHA256:9+bPJEyBWU7QPbS3rdI5CwoEMIffRtvD77sB79dEnSY.
ECDSA key fingerprint is MD5:13:d3:cd:0d:9b:ec:f0:98:be:4a:5d:5c:df:b4:dc:c2.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@10.10.10.75's password:mot-de-passe-de-root-du-serveur-Source

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh -p '2222' 'root@10.10.10.75'"
and check to make sure that only the key(s) you wanted were added.

bash-4.1$


Vérification

On vérifie le login sans mot de passe et la clé SSH de BackupPC stockée sur le serveur SOURCE.

bash-4.1$  ssh -p 2222 root@10.10.10.75  "cat /root/.ssh/authorized_keys"

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCuyZjkFyxAQFxBg734n06mjtIPSNRHuSMB+EfSqWvHZkrzuO/T+p1sSwcYiD4WNhWA4+5u+xWlAjFWPt4Ln2U2DkIGdW6KcWwgeylPGdYvUAQQ4+eTzIrpg/jzbM2OFl2VPg1sX43utrZDUkLpt8QN3hUBGDma/EYCpds7LY2eghIPXxlrCe2DBcid4hymvrtirFEJuxCcafXIDmdzvuVGhQ8ubYE3Zw8AAgRss+6S+HmoAsiLl34OicnMr09SacNT9PFie5mbMjFZFKPCN/z3juIZIvYmO9RsexakRIEaiDUMlnEUJB3tE1tNpIOjdtvv3NwCfkqGIBNNupSJwIeeFYbumJBZN250LP+f/Jw5OVK9lfKYQmG8LAIXwfdlgaIvhU+QxO5PnhGDVc3dRiuunA7comtlWfffhxTTX9Dd9TqezNAbXhhaawPP9VNazZtxBvCA2vylG3Kqu+22vc5O/pK53vGu1IRCnt2M5QWSQwL/ef6McSvnh/I4lWHXZlXSDbE0ieiqq6IaU5R+Mo9UFv3X2/mfK5zX2l8bDeKsLaKTtg5yJE/SAmlIjlXh2K7ckTW9jbU4xTthXHCHnllYEpunmPE5JSDWG0zH4WBIrHm5giFTpjO478u2IqAm+7nCrr7Jue5NLqoNhJ0mq51sSq1YtLffse2AOJEqz5xuvw=== RSA key for BackupPC automatic login
bash-4.1$

Les guillemets servent à faire exécuter une commande au serveur distant.
L'usager root s'est logué au serveur SOURCE sans mot de passe, le temps d'exécuter la commande cat qui a affiché le contenu du fichier "authorized_keys" du serveur 10.10.10.75.

Sur le serveur hôte, on vérifie la concordance des clés en affichant la clé publique de BackupPC stockée sur le serveur hôte.

bash-4.1$ cat /var/lib/BackupPC/.ssh/id_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCuyZjkFyxAQFxBg734n06mjtIPSNRHuSMB+EfSqWvHZkrzuO/T+p1sSwcYiD4WNhWA4+5u+xWlAjFWPt4Ln2U2DkIGdW6KcWwgeylPGdYvUAQQ4+eTzIrpg/jzbM2OFl2VPg1sX43utrZDUkLpt8QN3hUBGDma/EYCpds7LY2eghIPXxlrCe2DBcid4hymvrtirFEJuxCcafXIDmdzvuVGhQ8ubYE3Zw8AAgRss+6S+HmoAsiLl34OicnMr09SacNT9PFie5mbMjFZFKPCN/z3juIZIvYmO9RsexakRIEaiDUMlnEUJB3tE1tNpIOjdtvv3NwCfkqGIBNNupSJwIeeFYbumJBZN250LP+f/Jw5OVK9lfKYQmG8LAIXwfdlgaIvhU+QxO5PnhGDVc3dRiuunA7comtlWfffhxTTX9Dd9TqezNAbXhhaawPP9VNazZtxBvCA2vylG3Kqu+22vc5O/pK53vGu1IRCnt2M5QWSQwL/ef6McSvnh/I4lWHXZlXSDbE0ieiqq6IaU5R+Mo9UFv3X2/mfK5zX2l8bDeKsLaKTtg5yJE/SAmlIjlXh2K7ckTW9jbU4xTthXHCHnllYEpunmPE5JSDWG0zH4WBIrHm5giFTpjO478u2IqAm+7nCrr7Jue5NLqoNhJ0mq51sSq1YtLffse2AOJEqz5xuvw=== RSA key for BackupPC automatic login
bash-4.1$

Les clés coïncident. La clé a bien été téléversée sur le serveur SOURCE.

On vérifie encore une fois que root (sous backuppc) peut se loguer sur le serveur distant, sans mot de passe.

bash-4.1$ ssh -p 2222 root@10.10.10.75

Last login: Fri Mar 22 09:29:18 2019

************ Welcome to NethServer ************

This is a NethServer installation.

Before editing configuration files, be aware
of the automatic events and templates system.


          http://docs.nethserver.org

***********************************************
[root@tchana ~]#

La connexion sans mot de passe a réussie. On se désengage de la connexion et on revient au serveur hôte de BackupPC.

[root@ tchana ~]# exit

logout
Connection to 10.10.10.75 closed.
bash-4.1$

On sort de la substitution et on revient à l'usager root.

bash-4.1$ exit

exit
[root@backuppc ~]#



Sauvegarde du Serveur NethServer SOURCE

On lance la sauvegarde Complète du serveur SOURCE (10.10.10.75) de la même manière que celle du serveur BackupPC exécutée plus tôt.


La sauvegarde débute.


La sauvegarde est en cours.


Le Fichier journal de la machine SOURCE affiche les résultats de la sauvegarde Complète.


La page d'accueil de la machine du serveur SOURCE affiche tous les détails de la sauvegarde.

SOURCE contient un total de 95 360 fichiers pour un grandeur de 4 197.8 Mo.

Les Fichiers existants sont ceux trouvés dans la sauvegarde d'un autre Serveur NethServer, celle de 127.0.0.1, ils sont identiques à ceux de SOURCE et ainsi BackupPC crée des liens pour SOURCE pointant vers ces mêmes fichiers identiques appartenant à 127.0.0.1.

C'est ce qui explique que 13 419 fichiers ont une grandeur totale minime de 43.6 Mo (la grandeur des liens).

Seulement 16 928 nouveaux fichiers, exclusifs à SOURCE, ont été sauvegardés.

Incrémentielles du Serveur NethServer SOURCE

Première Incrémentielle

On lance la sauvegarde Incrémentielle de la même manière que celle du serveur hôte de BackupPC plus tôt.

L'Incrémentielle est terminée.

L'Incrémentielle a été fusionnée.

Sur la page d'accueil, les détails de la sauvegarde Incrémentielle #1 sont affichés.


Deuxième Incrémentielle

On peut aussi faire une deuxième Incrémentielle pour voir ce qui se passera.

Les deux Incrémentielles sont toutes deux fusionnées.


Sur la page d'accueil, les détails de toutes les sauvegardes sont affichés.


Tout s'est bien passé. On est prêt pour une restauration Complète
du serveur SOURCE vers le serveur DESTINATION.


Restauration de Source sur Destination

Diagramme réseau

Serveur DESTINATION sur réseau LOCAL, notre cas pour ce cahier.


Serveur DESTINATION sur réseau distant.


Advenant le cas où le Serveur NethServer est distant et que l'accès SSH est publique, il n'y a aucun problème pour la restauration pourvu que root puisse établir une connexion SSH au serveur distant.

Dernière sauvegarde de SOURCE

La dernière sauvegarde porte le #2. On se servira de ce numéro pour générer le fichier TAR de cette sauvegarde au paragraphe Création du fichier TAR.


Cette sauvegarde est de Type Incrémentielle mais Fusionnée; c'est à dire qu'elle contient aussi des liens vers les fichiers de la dernière Complète.

Cette sauvegarde n'a pas sauvegardé les répertoires:
● /etc/sysconfig/network-scripts
● /boot
et le fichier
● /etc/fstab.


Le répertoire /etc/sysconfig/network-scripts sert à la configuration des cartes réseau. Vu que SOURCE et DESTINATION pourraient avoir des configurations réseau très différentes, les adresses MAC des cartes réseau de SOURCE et de DESTINATION ne seront pas les mêmes. Il est conseillé de ne pas inclure ce répertoire dans la sauvegarde de SOURCE afin de ne pas écraser celui de DESTINATION lors de la restauration.

Le répertoire /boot et le fichier /etc/fstab contiennent tout ce qui est nécessaire pour le montage des disques et l'amorçage du système; le serveur DESTINATION est fonctionnel, il ne faut donc pas écraser cette configuration.

Création du fichier TAR de la sauvegarde

Connexion au serveur BackupPC

Si nous n'avons pas de session PuTTY ouverte vers l'hôte BackupPC, on en ouvre une et on se logue.

login as: root

root@10.10.10.33's password: mot-de-passe-de-root
Last login: Thu Mar 21 14:48:13 2019

************ Welcome to NethServer ************

This is a NethServer installation.

Before editing configuration files, be aware
of the automatic events and templates system.


          http://docs.nethserver.org

***********************************************
[root@backuppc ~]#


Répertoire de stockage des fichiers TAR

Sur le serveur BackupPC en tant qu'usager root, on crée le répertoire de stockage de nos futurs fichiers TAR qui serviront pour les restaurations complètes.

[root@backuppc ~]# mkdir /var/lib/BackupPC/mes_restaurations

[root@backuppc ~]#

On ajuste le propriétaire et le groupe.

[root@backuppc ~]# chown backuppc:apache /var/lib/BackupPC/mes_restaurations/

[root@backuppc ~]#

On ajuste les droits.

[root@backuppc ~]# chmod 700 /var/lib/BackupPC/mes_restaurations/

[root@backuppc ~]#

On vérifie.

root@backuppc ~]# ls -lsd /var/lib/BackupPC/mes_restaurations/

1 drwx------ 2 backuppc apache 1024 22 mars  16:23 /var/lib/BackupPC/mes_restaurations/
[root@backuppc ~]#


Création du fichier TAR

BackupPC_tarCreate

L'utilitaire BackupPC_tarCreate crée un fichier TAR contenant tous les fichiers et répertoires d'une sauvegarde particulière. La fusion des Incrémentielles se fait automatiquement, vous n'avez donc pas à vous soucier de savoir si certains fichiers apparaissent dans la sauvegarde Incrémentielle ou dans la Complète.

Les fichiers et répertoires de la ligne de commande sont relatifs au nom du partage spécifié.

Les options -h, -n et -s spécifient quelle sauvegarde est utilisée pour générer l'archive TAR. Les options -r et -p peuvent être utilisées pour déplacer les chemins dans l'archive TAR afin que les fichiers extraits puissent être versés dans un emplacement différent de leur emplacement d'origine.

BackupPC_tarCreate [options] fichiers/répertoires...

Options obligatoires:
   -h host         hôte à partir duquel l'archive TAR est créée
   -n dumpNum      numéro de la sauvegarde à partir de laquelle l'archive TAR est créée
                   Un nombre négatif signifie par rapport à la fin (par exemple, -1
                   signifie la sauvegarde la plus récente, -2 la 2ème plus récente etc).
   -s shareName    nom du partage à partir duquel l'archive TAR est créée

Other options:
   -t              affiche un résumé des totaux
   -r pathRemove   préfixe du chemin qui sera remplacé par pathAdd
   -p pathAdd      préfixe du nouveau chemin
   -b BLOCKS       BLOCKS x 512 octets par enregistrement (20 par défaut, identique à tar)
   -w writeBufSz   taille du tampon d'écriture (1048576 = 1 Mo par défaut)
   -e charset      jeu de caractères pour l'encodage des noms de fichiers (par défaut: la
                   valeur de $Conf{ClientCharset} utilisée lorsque la sauvegarde a été
                   effectuée)
   -l              affiche la liste des fichiers; ne génère pas d'archive TAR
   -L              affiche la liste détaillée des fichiers; ne génère pas d'archive TAR

On se substitue à l'usager backuppc.

[root@backuppc ~]# su - backuppc -s /bin/sh

-sh-4.1$

On vérifie.

-sh-4.1$ whoami

backuppc
-sh-4.1$

On se rend dans le répertoire de stockage.

-sh-4.1$ cd /var/lib/BackupPC/mes_restaurations/

-sh-4.1$

On vérifie.

-sh-4.1$ pwd

/var/lib/BackupPC/mes_restaurations
-sh-4.1$

On crée le fichier TAR de la sauvegarde numéro 2 du serveur hôte 10.10.10.75.
Peut prendre un certain temps; être patient!

-sh-4.1$  /usr/share/BackupPC/bin/BackupPC_tarCreate  -h 10.10.10.75 -n 2 -s /  / > source-75-2.tar

-sh-4.1$

On vérifie.

-sh-4.1$ ls -ls

4366862 -rw-rw-r-- 1 backuppc backuppc 4471664640 22 mars  16:34 source-75-2.tar
-sh-4.1$

Le fichier TAR de la sauvegarde a été créé. Nous sommes prêt pour la restauration.



Préparation du serveur DESTINATION

On ouvre une session PuTTY vers le serveur DESTINATION.

On entre les informations demandées, on sauvegarde cette configuration et on ouvre la session. On accepte la clé SSH et on se logue au serveur DESTINATION.


login as: root

root@10.10.10.66's password: mot-de-passe-de-root-de-DESTINATION
Last login: Fri Mar 22 16:58:12 2019 from 10.10.10.81

************ Welcome to NethServer ************

This is a NethServer installation.

Before editing configuration files, be aware
of the automatic events and templates system.


          http://docs.nethserver.org

***********************************************
[root@destination ~]#

Nous sommes dans le répertoire personnel de root sur DESTINATION.

[root@destination ~]# pwd

/root
[root@destination ~]#


Vérification du répertoire /var/www/html/

On vérifie que le répertoire /var/www/html/ soit vide afin que son contenu n'entre pas en conflit avec celui qu'on restaurera.

[root@destination ~]# ls -als /var/www/html/

total 4
0 drwxr-xr-x. 3 root root  43 Mar 22 15:02 .
0 drwxr-xr-x. 4 root root  33 Jan 18 20:25 ..
4 -rw-r--r--  1 root root 170 Feb 16 03:15 index.html
0 drwxr-xr-x. 3 root root  28 Jan 18 20:26 .well-known
[root@destination ~]#

Le répertoire .well-known fait partie de l'installation standard de NethServer. Il est utilisé pour stocker les défis de Let's Encrypt.

Le fichier index.html a été créé pour faire un test de fonctionnement de la page Web.

Il faut supprimer ce fichier car il entrerait en conflit avec index.php de WordPress.

[root@destination ~]# rm /var/www/html/index.html

rm: remove regular file ‘/var/www/html/index.html’? y
[root@destination ~]#

Si ce répertoire contient d'autres fichiers ou d'autres sous-répertoires que .well-known, il faut tous les supprimer, car ils pourraient entrer en conflit avec avec ceux de la restauration par BackupPC.

Mise à jour de DESTINATION

Avant la restauration, il est préférable de mettre à jour le serveur DESTINATION. Le répertoire /boot du serveur SOURCE n'étant pas inclus dans la sauvegarde, cette mise à jour avant la restauration installera sur DESTINATION le dernier noyau Linux s'il y a lieu.

Afin de ne pas avoir de problèmes avec la mise à jour, on installe le RPM jq qui fait en sorte d'éliminer certaines erreurs du module Software Center qui n'est, pour le moins que l'on puisse dire et resté poli, pas du tout mature techniquement. Voir la discussion à l'URL: https://community.nethserver.org/t/howto-update-nethserver-correctly-via-cli/10615/10.

[root@destination ~]# yum install -y jq

...
Transaction Summary
============================================================================================
Install  1 Package (+1 Dependent package)

Total download size: 282 k
Installed size: 906 k
...
Install  1 Package (+1 Dependent package)

Total download size: 282 k
Installed size: 906 k
Downloading packages:
...
Installed:
  jq.x86_64 0:1.5-1.el7

Dependency Installed:
  oniguruma.x86_64 0:5.9.5-3.el7

Complete!
[root@destination ~]#

On nettoie les référentiels.

[root@destination ~]# yum -y --enablerepo=nethserver-updates clean metadata

Loaded plugins: changelog, fastestmirror, nethserver_events
Cleaning repos: base centos-sclo-rh centos-sclo-sclo epel extras nethforge nethserver-base
              : nethserver-updates updates
41 metadata files removed
24 sqlite files removed
0 metadata files removed
[root@destination ~]#

On garde cette session ouverte, car nous devrons l'utiliser pour envoyer la commande de post-restauration au paragraphe Commande restore-config.

On se connecte à l'interface Web de DESTINATION: https://IP-de-DESTINATION:980.

Administration → Software center → onglet Updates → DOWNLOAD AND INSTALL.



Reload page.



Toutes les mises à jour ont été installées.

Tout est en place pour la restauration.


Arrêt du serveur SOURCE

Il faut absolument que le serveur SOURCE soit éteint avant de lancer la commande de post-restauration sur DESTINATION, car si SOURCE roule encore lors du réamorçage de DESTINATION, des conflits de noms de serveurs seront détectés.

Restauration

On retourne à l'écran de la session PuTTY, ouverte au début de ce document, vers le serveur hôte de BackupPC.

On se substitue à l'usager backuppc.

[root@backuppc ~]# su - backuppc -s /bin/sh

sh-4.1$

On vérifie.

sh-4.1$ whoami

backuppc
sh-4.1$

On se rend dans le répertoire de stockage des restaurations.

sh-4.1$ cd /var/lib/BackupPC/mes_restaurations/

sh-4.1$

On vérifie.

sh-4.1$ pwd

/var/lib/BackupPC/mes_restaurations
sh-4.1$


Clé SSH

Qui suis-je?

sh-4.2$ whoami

backuppc
sh-4.2$

Où suis-je?

sh-4.2$ pwd

/var/lib/BackupPC/mes_restaurations
sh-4.2$

On téléverse la clé publique de BackupPC sur le serveur DESTINATION.

Si nous ne nous sommes jamais connecté sur DESTINATION depuis le serveur hôte de BackupPC, il nous sera demandé si on veut continuer; on répond yes.

sh-4.1$ ssh-copy-id -p 2222 -i ~backuppc/.ssh/id_rsa.pub root@10.10.10.66

/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/var/lib/BackupPC/.ssh/id_rsa.pub"
The authenticity of host '[10.10.10.66]:2222 ([10.10.10.66]:2222)' can't be established.
ECDSA key fingerprint is SHA256:mPoSgZ0BeE9AGSVRzVWORFFJu+GL4rbgw3H6VnabDHg.
ECDSA key fingerprint is MD5:2a:1a:56:99:fd:47:3f:87:f4:84:75:7d:04:5b:2c:ca.
Are you sure you want to continue connecting (yes/no)? yes
/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@10.10.10.66's password: mot-de-passe-de-root-sur-Destination

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh -p '2222' 'root@10.10.10.66'"
and check to make sure that only the key(s) you wanted were added.

-sh-4.2$

Vérification de la connexion sans mot de passe.

-sh-4.1$ /usr/bin/ssh -p2222 root@10.10.10.66

Last login: Fri Mar 22 16:43:18 2019 from 10.10.10.33

************ Welcome to NethServer ************

This is a NethServer installation.

Before editing configuration files, be aware
of the automatic events and templates system.


          http://docs.nethserver.org

***********************************************
[root@destination ~]#

La connexion sans mot de passe fonctionne correctement.

On termine la connexion sans mot de passe et on retourne au serveur hôte de BackupPC.

[root@destination ~]# exit

logout
Connection to 10.10.10.66 closed.
-sh-4.2$


Commande de restauration

On envoie à DESTINATION la commande de changer de répertoire et d'extraire le fichier TAR qu'on lui envoie. Peut prendre un certain temps; de quelques minutes à plusieurs heures… être très patient!

sh-4.2$  ssh -p 2222 root@10.10.10.66 "cd / && /bin/tar -xv" < source-75-2.tar

...
./var/www/html/wp-snapshots/tmp/
/bin/tar: Arrêt avec code d'échec à cause des erreurs précédentes
-sh-4.2$

On peut ignorer ce message de /bin/tar, car après avoir reçu le fichier source-75-2.tar, TAR essaie d'extraire l'invite -sh-4.2$ de la dernière ligne reçue comme si c'était un fichier à extraire.

Commande restore-config

Référence: http://docs.nethserver.org/projects/nethserver-devel/en/latest/nethserver-backup-config.html#restore.

On retourne à la session PuTTY ouverte lors de la Préparation du serveur DESTINATION.

On restaure la configuration originale de SOURCE sur DESTINATION.

[root@destination ~]# /sbin/e-smith/restore-config --no-reinstall

Restore config started
Event pre-restore-config: SUCCESS
Action restore-config-execute: SUCCESS
Too few arguments.


Attendre l'écran surgissant ci-contre.

Peut prendre plusieurs dizaines de minutes, être patient.

On ferme cet écran: → OK.


On ferme l'écran PuTTY connecté à 10.10.10.66, car après la commande restore-config, l'adresse IP de DESTINATION a été remplacée par l'originale de SOURCE: 10.10.10.75 de même que le nom du serveur qui devient celui du serveur SOURCE, c.-à-d. tchana.

Réamorçage

On ouvre une session PuTTY pour se connecter à la nouvelle adresse IP de DESTINATION: 10.10.10.75.

login as: root

root@10.10.10.75's password: mot-de-passe-de-root-de-SOURCE
...
[root@tchana ~]#

Depuis cette nouvelle connexion, on lance la commande de réamorçage de DESTINATION.

[root@tchana ~]# reboot

Après le lancement de la commande, l'écran surgissant ci-contre est affiché, car la connexion a été fermée suite à la commande reboot.

Le réamorçage du serveur DESTINATION peut prendre un certain temps car il lui faut réinitialiser plusieurs paramètres.
Être patient.


Post restauration

Ajustement du démon NTP

DESTINATION a maintenant la configuration de SOURCE de même que tous ses paquetages. Il faut déclencher nethserver-ntp-update comme si on venait de mettre à jour ces paquetages.

On ouvre une nouvelle session PuTTY pour se connecter à DESTINATION: 10.10.10.75.

login as: root

root@10.10.10.75's password: mot-de-passe-de-root-de-SOURCE
...
[root@tchana ~]#

On signale au démon NTP de redémarrer tous ses services.

[root@tchana ~]# /sbin/e-smith/signal-event nethserver-ntp-update

[root@tchana ~]#

On vérifie que la commande a bien été exécutée.

[root@tchana ~]# cat /var/log/messages | grep  'nethserver-ntp-update' | tail -1

Mar 24 20:04:59 tchana esmith::event[5186]: Event: nethserver-ntp-update SUCCESS
[root@tchana ~]#

Les services seront vérifiés toutes les 300 secondes

Redémarrage de tous les services

Pour développer tous les modèles et redémarrer les services pertinents sans redémarrage, on peut utiliser la commande suivante; prend plusieurs secondes…

[root@tchana ~]# /etc/e-smith/events/actions/system-adjust

[root@tchana ~]#


ClamAV

On examine le journal messages et on s'aperçoit que la BD de ClamAV n'est pas à date.

...
tchana clamd: LibClamAV Warning: **************************************************
tchana clamd: LibClamAV Warning: ***  The virus database is older than 7 days!  ***
tchana clamd: LibClamAV Warning: ***   Please update it as soon as possible.    ***
tchana clamd: LibClamAV Warning: **************************************************
...

Mise à jour de la BD de ClamAV.

[root@tchana ~]# freshclam

ClamAV update process started at Mon Apr  1 17:13:02 2019
WARNING: Your ClamAV installation is OUTDATED!
WARNING: Local version: 0.101.1 Recommended version: 0.101.2
DON'T PANIC! Read https://www.clamav.net/documents/upgrading-clamav
main.cvd is up to date (version: 58, sigs: 4566249, f-level: 60, builder: sigmgr)
Downloading daily-25388.cdiff [100%]
...
Downloading daily-25406.cdiff [100%]
daily.cld updated (version: 25406, sigs: 1538928, f-level: 63, builder: raynman)
bytecode.cvd is up to date (version: 328, sigs: 94, f-level: 63, builder: neo)
Database updated (6105271 signatures) from database.clamav.net (IP: 104.16.219.84)
[root@tchana ~]#


Mise à jour de DESTINATION

Il s'est écoulé un certain temps depuis la sauvegarde de SOURCE et maintenant son clone DESTINATION a peut-être besoin d'une mise à jour.

On vérifie que le RPM jq est installé.

[root@tchana ~]# rpm -qa | grep jq

jq-1.5-1.el7.x86_64
[root@tchana ~]#

On nettoie les référentiels.

[root@tchana ~]# yum -y --enablerepo=nethserver-updates clean metadata

Loaded plugins: changelog, fastestmirror, nethserver_events
Cleaning repos: base centos-sclo-rh centos-sclo-sclo epel extras nethforge nethserver-base
              : nethserver-updates updates
40 metadata files removed
22 sqlite files removed
0 metadata files removed
[root@tchana ~]#

On se connecte à l'interface Web de DESTINATION: https://Nouvelle-IP-de-DESTINATION:980.

Administration → Gestionnaire de logiciels → onglet Mises à jour → TÉLÉCHARGER ET INSTALLER.



Recharger la page.


Toutes les mises à jour ont été installées.


Si vous recevez le message ci-contre, il vaut mieux essayer une mise à jour à la console du serveur.


On nettoie les référentiels.

[root@tchana ~]# yum -y --enablerepo=nethserver-updates clean metadata

Loaded plugins: changelog, fastestmirror, nethserver_events
Cleaning repos: base centos-sclo-rh centos-sclo-sclo epel extras nethforge nethserver-base
              : nethserver-updates updates
40 metadata files removed
22 sqlite files removed
0 metadata files removed
[root@tchana ~]#

On lance la commande de mise à jour.

[root@tchana ~]# yum update -y

...
Résumé de la transaction
============================================================================================
Installation    1 Paquet
Mettre à jour  35 Paquets

Taille totale  : 95 M
...
  Mise à jour  : libuuid-2.23.2-59.el7_6.1.x86_64                                      1/71
...
  Vérification : tuned-2.10.0-6.el7.noarch                                            71/71
...
Installé :
  kernel.x86_64 0:3.10.0-957.10.1.el7

Mis à jour :
  NetworkManager.x86_64 1:1.12.0-10.el7_6
...
  xfsprogs.x86_64 0:4.5.0-19.el7_6

Terminé !
[root@tchana ~]#

Vérification du site Web de DESTINATION


Diagramme du serveur.

On se rend sur le site Web du serveur DESTINATION
https://www.micronator-dev.org.



Victoire totale, hissons la bannière de la victoire.


Crédits

© 2018-2019 RF-232
Auteur: Michel-André CLP.
Remerciement: Tous les contributeurs GNU/GPL.
Intégré par: Michel-André Robillard CLP.
Contact: michelandre at micronator.org

Répertoire de ce document: E:\000_DocPourRF232_general\RF-232_NethServer\RF-232_Cours_NethServer-101_Cahier-11_BackupPC_2019-08-02_22h39.odt

Historique des modifications:

VersionDateCommentaireAuteur
0.0.12018-03-05Début.Michel-André
0.0.22018-05-14- Désactivation des sauvegardes pour tous les gabarits des machines, en changeant pour BackupsDisable=1 sous l'onglet Horaire, car pourrait débuter une sauvegarde avant que la configuration des nouvelles machines soit totalement terminée.
- Mise à jour de la restauration vers Destination.
- Ajout de la vérification des cartes réseau pour le serveur de Des­ti­na­tion.
Michel-André
0.0.32018-08-07Coquilles dans “Création d'une machine pour le serveur hôte”Michel-André
0.1.02018-09-18Révision complète.Michel-André
0.2.02019-03-16Adaptation pour NethServer-7.6.1810.Michel-André
0.2.12019-04-23Corrections mineures.Michel-André
0.3.02019-08-01Ajustements pour DokuWiki.Michel-André
12345678901 12345678901

<html><hr style=“width:50%; margin: 0 auto;”></html>

AVIS DE NON-RESPONSABILITÉ

Ce document est uniquement destiné à informer. Les informations, ainsi que les contenus et fonctionnalités de ce do­cument sont fournis sans engagement et peuvent être modifiés à tout moment. RF‑232 n'offre aucune garantie quant à l'actualité, la conformité, l'exhaustivité, la qualité et la durabilité des informations, contenus et fonctionnalités de ce document. L'accès et l'utilisation de ce document se font sous la seule responsabilité du lecteur ou de l'utilisateur.

RF‑232 ne peut être tenu pour responsable de dommages de quelque nature que ce soit, y compris des dommages di­rects ou indirects, ainsi que des dommages consécutifs résultant de l'accès ou de l'utilisation de ce document ou de son contenu.

Chaque internaute doit prendre toutes les mesures appropriées (mettre à jour régulièrement son logiciel antivirus, ne pas ouvrir des documents suspects de source douteuse ou non connue) de façon à protéger le contenu de son ordina­teur de la contamination d'éventuels virus circulant sur la Toile.

Toute reproduction interdite Vous reconnaissez et acceptez que tout le contenu de ce document, incluant mais sans s’y limiter, le texte et les images, sont protégés par le droit d’auteur, les marques de commerce, les marques de service, les brevets, les secrets industriels et les autres droits de propriété intellectuelle. Sauf autorisation expresse de RF-232, vous acceptez de ne pas vendre, délivrer une licence, louer, modifier, distribuer, copier, reproduire, transmettre, afficher publiquement, exécuter en public, publier, adapter, éditer ou créer d’oeuvres dérivées de ce document et de son contenu.

Avertissement

Bien que nous utilisions ici un vocabulaire issu des techniques informatiques, nous ne prétendons nullement à la précision technique de tous nos propos dans ce domaine.

1)
FQDN: Dans le DNS, un Fully Qualified Domain Name (FQDN, ou nom de domaine complètement qualifié) est un nom de domaine qui révèle la position absolue d'un nœud dans l'arborescence DNS en indiquant tous les domaines de niveau supérieur jusqu'à la racine. On parle également de domaine absolu, par opposition aux domaines relatifs. Par convention, le FQDN est ponctué par un point final.
Référence: https://fr.wikipedia.org/wiki/Fully_qualified_domain_name.

2)
Dispositif: Unité qui assure la réalisation d'une opération particulière, indispensable au bon fonctionnement d'un système informatique, d'une machine ou d'un appareil.
Référence: http://www.granddictionnaire.com/ficheOqlf.aspx?Id_Fiche=8357059.

4)
réveil par le réseau: Fonction permettant de mettre sous tension à distance des ordinateurs personnels, à partir de commandes émises par un serveur de réseau local.
Note: La fonction réveil par le réseau permet, à l'aide d'un serveur, d'effectuer des travaux de télémaintenance sur des ordinateurs personnels, lorsque leurs utilisateurs sont absents et qu'ils ont fermé leurs appareils.
Référence:http://www.granddictionnaire.com/ficheOqlf.aspx?Id_Fiche=8370856. )

nethserver_101_cahier_11_nethserver_backuppc.txt · Dernière modification : 2025-01-12 19:30 de 127.0.0.1