\\ [[cours_nethserver_101|{{ Images_Cahier-101-11-000.png?650 }}]] \\ ====== 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.**// \\ {{ Images_Cahier-101-11-002.png?600 }} \\ ===== 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: - [[nethserver_101_cahier_01_linux|Cahier-01]]: -> Les bases de Linux. - [[nethserver_101_cahier_02_installations_configurations_logiciels_prerequis|Cahier-02]]: -> Installation et configuration des logiciels prérequis sur le poste de travail. - [[nethserver_101_cahier_03_creation_un_serveur_virtuel|Cahier-03]]: -> Création d'un Serveur NethServer virtuel. - [[nethserver_101_cahier_04_local_certificat_let_encrypt|Cahier-04]]: -> Serveur NethServer LOCAL & Let's Encrypt. - [[nethserver_101_cahier_05_vdsl_fqdn_internet_et_nethserver|Cahier-05]]: -> FAI, modem VDSL, domaine FQDN(( **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|https://fr.wikipedia.org/wiki/Fully_qualified_domain_name]]. \\ \\ )) et Serveur NethServer physique. - [[nethserver_101_cahier_06_nethserver_wordPress|Cahier-06]]: -> Installation de WordPress. - [[nethserver_101_cahier_07_nethserver_wordPress_wordfence|Cahier-07]]: -> Installation de l'extension de sécurité Wordfence. - [[nethserver_101_cahier_08_woocommerce_paypal_stripe|Cahier-08]]: -> WooCommerce, comptes chez Stripe et PayPal pour les paiements en ligne. - [[nethserver_101_cahier_09_duplicator_migration|Cahier-09]]: -> Sauvegarde/restauration ou migration d'un site avec l'extension Duplicator. - [[nethserver_101_cahier_10_mandataire_inverse|Cahier-10]]: -> Serveur mandataire inversé. - [[nethserver_101_cahier_11_nethserver_backuppc|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. - [[nethserver_201_cahier_01_nethserver_et_dolibarr|Cahier-201-01]]: -> Dolibarr. - [[nethserver_201_cahier_02_odoo_12|Cahier-201-02]]: -> Odoo-12. - [[nethserver_201_cahier_03_mediawiki|Cahier-201-03]]: -> MediaWiki. - [[nethserver_201_cahier_04_dokuwiki|Cahier-201-04]]: -> DokuWiki. - [[nethserver_201_cahier_05_moodle|Cahier-201-05]]: -> Moodle. - [[nethserver_201_cahier_06_proxmox|Cahier-201-06]]: -> Proxmox. - [[nethserver_201_cahier_07_flectra|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. {{ NS-101_001_Diagramme.png?500 }} ===== 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 ==== {{Images_icone-201-001_doigt.png?22}} Manipulation, truc ou ruse pour se tirer d'embarras.\\ {{Images_icone-201-002_Lumiere.png?25}} Une recommandation ou astuce.\\ {{Images_icone-201-003_Note.png?25}} Une note.\\ {{Images_icone-201-004_Triangle.png?25}} Une étape, note ou procédure à surveiller.\\ {{Images_icone-201-005_Non-termine.png?25}} Paragraphe non complété ou non vérifié.\\ {{Images_icone-201-006_Securite.png?25}} 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 ===== {{Images_Cahier-101-03-005.png?25}} 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 [[nethserver_101_cahier_02_installations_configurations_logiciels_prerequis|Cahier-02]]: //Installations & configurations des logiciels prérequis//. ☐ Pour l'installation d'un Serveur NethServer, voir: Le [[nethserver_101_cahier_03_creation_un_serveur_virtuel|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 [[nethserver_101_cahier_02_installations_configurations_logiciels_prerequis|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. {{ Images_Cahier-101-11-003.png?600 }} \\ ==== Serveur BackupPC ==== {{ Images_Cahier-101-11-004.png?500}} {{Images_Cahier-101-03-005.png?25}} 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. {{Images_Cahier-101-03-003.png?22}} Si vous créez le disque de stockage des sauvegardes trop petit, BackupPC pourrait manquer d'inodes pour la création de liens. {{Images_Cahier-101-03-005.png?25}} 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 ==== {{ Images_Cahier-101-11-005.png?400}} **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.\\ {{Images_Cahier-101-03-005.png?25}} //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**. |{{ Images_Cahier-101-11-006.png?400 }}| |{{ Images_Cahier-101-11-007.png?400 }}| {{Images_Cahier-101-03-003.png?22}} 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 ==== {{Images_Cahier-101-03-006.png?25}} 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**. |{{ Images_Cahier-101-11-008.png?400 }}| \\ ===== 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é.\\ {{Images_Cahier-101-03-004.png?25}} 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 dispositif(( **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|http://www.granddictionnaire.com/ficheOqlf.aspx?Id_Fiche=8357059]]. \\ \\ )) //(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.\\ {{Images_Cahier-101-03-004.png?25}} 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//. {{Images_Cahier-101-03-006.png?25}} //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. {{Images_Cahier-101-03-005.png?25}} 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. {{Images_Cahier-101-03-004.png?25}} Pour notre disque de //25 Go//, on prendra beaucoup plus d'inodes, environ //15 000 000//.\\ {{Images_Cahier-101-03-005.png?25}} 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.\\ {{Images_Cahier-101-03-006.png?25}} 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//.\\ {{Images_Cahier-101-03-004.png?25}} //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. {{Images_Cahier-101-03-006.png?25}} 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 {{Images_Cahier-101-03-006.png?25}} 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 ~]# {{Images_Cahier-101-03-006.png?25}} 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 {{Images_Cahier-101-03-005.png?25}} 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 ===== //Référence:// [[https://wiki.nethserver.org/doku.php?id=module:backuppc|https://wiki.nethserver.org/doku.php?id=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 ==== //Référence:// [[https://wiki.nethserver.org/doku.php?id=stephdl_repository|https://wiki.nethserver.org/doku.php?id=stephdl_repository]]. === 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 ~]# {{Images_Cahier-101-03-005.png?25}} 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.\\ {{Images_Cahier-101-03-005.png?25}} 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)//.\\ {{Images_Cahier-101-03-005.png?25}} 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. {{Images_Cahier-101-03-008.png?25}} 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] 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|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 ===== //Référence:// [[https://srbu.se/index.php?option=com_content&view=article&id=201:upgrading-backuppc-to-v4-2-1&catid=8&Itemid=121&lang=en|https://srbu.se/index.php?option=com_content&view=article&id=201:upgrading-backuppc-to-v4-2-1&catid=8&Itemid=121&lang=en]]. ==== 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 === {{Images_Cahier-101-03-003.png?22}} 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|https://github.com/backuppc/rsync-bpc]]. {{ Images_Cahier-101-11-009.png?600}} {{Images_Cahier-101-03-006.png?25}} Il faut prendre Branch 3.1.2 et télécharger le fichier ZIP. \\ \\ On extrait le fichier ZIP. |{{ Images_Cahier-101-11-010.png?400 }}| On téléverse le __répertoire rsync-bpc-3.1.2__ dans ''/root/BackupPC''. |{{ Images_Cahier-101-11-011.png?400 }}| \\ 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 === {{Images_Cahier-101-03-006.png?25}} 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 === {{Images_Cahier-101-03-006.png?25}} 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]# {{Images_Cahier-101-03-003.png?22}} 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 ===== {{Images_Cahier-101-03-008.png?25}} 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 ~]# {{Images_Cahier-101-03-004.png?25}} 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 ===== {{ Images_Cahier-101-11-012.png?500}} **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**. {{Images_Cahier-101-03-005.png?25}} 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 ==== {{Images_Cahier-101-03-004.png?25}} 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 ~]# \\ {{ Images_Cahier-101-11-013.png?600}} 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//. {{Images_Cahier-101-03-004.png?25}} 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 ~]# \\ {{ Images_Cahier-101-11-014.png?600}} 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 === {{Images_Cahier-101-03-006.png?25}} 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|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 ~]# {{Images_Cahier-101-03-005.png?25}} 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 === {{Images_Cahier-101-03-006.png?25}} 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 __**su**__bstitution 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} ==== {{Images_Cahier-101-03-005.png?25}} Pour plus de détails, voir la section [[nethserver_101_cahier_11_nethserver_backuppc#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.s//h. |{{ Images_Cahier-101-11-015.png?500 }}| === Script pre-sauvegarde.sh === {{Images_Cahier-101-03-006.png?25}} 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 ~]# {{Images_Cahier-101-03-006.png?25}} {{Images_Cahier-101-03-006.png?25}} 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} ==== {{Images_Cahier-101-03-005.png?25}} Pour plus de détails, voir la section [[nethserver_101_cahier_11_nethserver_backuppc#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**. |{{ Images_Cahier-101-11-016.png?600 }}| === Script post-sauvegarde.sh === {{Images_Cahier-101-03-006.png?25}} 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 ~]# {{Images_Cahier-101-03-006.png?25}} 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.\\ {{Images_Cahier-101-03-005.png?25}} On peut aussi accéder à l'interface cgi de //BackupPC// via l'interface Web du Serveur NethServer. **Tableau de bord NethServer -> Applications -> BackupPC -> Ouvrir**. |{{ Images_Cahier-101-11-017.png?400 }}| Après avoir ajouter une exception dans le navigateur utilisé, on entre le justificatif de l'utilisateur __admin__ puis on clique **OK**. |{{ Images_Cahier-101-11-018.png?400 }}| \\ {{ Images_Cahier-101-11-019.png?600}} {{Images_Cahier-101-03-008.png?25}} 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.\\ {{Images_Cahier-101-03-003.png?22}} 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 [[nethserver_101_cahier_04_local_certificat_let_encrypt|Cahier-04]]: //NethServer LOCAL & Certificat Let's Encrypt//. \\ ==== Cygwin pour la préparation des clients Windows ==== **Tableau de bord NethServer -> Applications -> Cygwin -> Ouvrir**. |{{ Images_Cahier-101-11-020.png?400 }}| Après avoir ajouter une exception dans le navigateur utilisé, on entre le justificatif de l'utilisateur __admin__ puis on clique **OK**. |{{ Images_Cahier-101-11-021.png?400 }}| \\ {{ Images_Cahier-101-11-022.png?600}} {{Images_Cahier-101-03-006.png?25}} Les instructions définies sur cette page sont __pour la préparation des clients Windows__ qu'on voudrait sauvegarder avec BackupPC. \\ {{ Images_Cahier-101-11-023.png?600}} ===== 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. \\ {{ Images_Cahier-101-11-024.png?600}} {{Images_Cahier-101-03-003.png?22}} Rafraîchir la page du navigateur **-> Renvoyer**. \\ {{ Images_Cahier-101-11-025.png?600}} L'interface BackupPC est maintenant en français. {{Images_Cahier-101-03-005.png?25}} Actuellement, le paramètre Language s'applique seulement à l'interface CGI. Les fichiers journaux et autres textes sont toujours en anglais. \\ {{ Images_Cahier-101-11-026.png?600}} ==== 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. {{Images_Cahier-101-11-027.png?150 }} \\ \\ {{ Images_Cahier-101-11-028.png?600}} ===== 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.\\ {{Images_Cahier-101-03-004.png?25}} Il n'y a presque rien à gagner à changer le niveau de compression. {{Images_Cahier-101-11-027.png?150 }} \\ \\ {{ Images_Cahier-101-11-029.png?600}} ===== 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. {{Images_Cahier-101-11-030.png?300}} //**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//. {{Images_Cahier-101-11-027.png?150 }} \\ \\ \\ ==== 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$ \\ {{ Images_Cahier-101-11-032.png?600}} On vérifie le courrier d'admin. \\ On se désengage de l'usager __backuppc__. bash-4.1$ exit exit [root@backuppc ~]# \\ ===== Horaire ===== {{ Images_Cahier-101-11-033.png?600}} ==== 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. {{ Images_Cahier-101-11-034.png?600}} 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. {{ Images_Cahier-101-11-035.png?600}} 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. {{Images_Cahier-101-03-006.png?25}} //**FullKeepCnt** 7// \\ Nombre de sauvegardes __//Fusionnées//__ à conserver //(le nom porte à confusion)//. Doit être //> = 1//. {{Images_Cahier-101-03-005.png?25}} À 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. {{Images_Cahier-101-03-006.png?25}} //**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// {{Images_Cahier-101-03-005.png?25}} //FullAgeMax// sera augmenté à //FullKeepCnt// fois //FullPeriod// si //FullKeepCnt// spécifie suffisamment de sauvegardes Complètes pour dépasser //FullAgeMax//. \\ \\ {{ Images_Cahier-101-11-036.png?600}} ==== 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. {{Images_Cahier-101-03-006.png?25}} //**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. {{Images_Cahier-101-03-006.png?25}} //**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. \\ \\ {{ Images_Cahier-101-11-037.png?600}} ==== Suspension ==== //**BackupsDisable** 0// {{Images_Cahier-101-03-005.png?25}} 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: - 0 -> Les sauvegardes sont activées. - 1 -> Ne pas faire de sauvegardes régulières sur ce client. Les sauvegardes demandées manuellement //(via l'interface CGI)// se produiront toujours. - 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//. {{Images_Cahier-101-03-005.png?25}} 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. \\ \\ {{ Images_Cahier-101-11-038.png?600}} ==== 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. {{Images_Cahier-101-03-005.png?25}} 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é)//. {{Images_Cahier-101-11-027.png?150 }} \\ \\ \\ {{ Images_Cahier-101-11-040.png?600}} ===== 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). {{Images_Cahier-101-03-006.png?25}} Si vous diminuez ce nombre après que //BackupPC// ait roulé un certain temps, vous devrez supprimer //manuellement// les anciens fichiers journaux. {{Images_Cahier-101-11-027.png?150 }} \\ \\ \\ ===== Xfer ===== |{{ Images_Cahier-101-11-042.png?700 }}| |{{ Images_Cahier-101-11-043.png?400 }}| 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é. {{Images_Cahier-101-03-006.png?25}} S'assurer que //RsyncShareName// sous //Paramètres de Rsync// débute bien à " **/** " //(la racine du système de fichiers)//. {{Images_Cahier-101-11-027.png?150 }} \\ \\ \\ ===== Paramètres ssh ===== {{ Images_Cahier-101-11-045.png?400}} ==== 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 {{Images_Cahier-101-03-004.png?25}} 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|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.\\ {{Images_Cahier-101-03-006.png?25}} Il faut que le mot "Port" soit à au moins un espace de la marge de gauche.\\ {{Images_Cahier-101-03-006.png?25}} 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 ~]# {{Images_Cahier-101-03-006.png?25}} 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: - //**CgiMultiUser** [enabled | disabled]//\\ Multi utilisateur ou non. \\ \\ - //**examples** [enabled | disabled]//\\ Souhaitez-vous que les exemples de fichiers de configuration soient ajoutés à nouveau s'ils ont été supprimés? \\ \\ - //**status** [enabled | disabled]//\\ Voulez-vous que le service démarre automatiquement à l'amorçage du serveur? \\ \\ - //**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 ~]# {{Images_Cahier-101-03-006.png?25}} 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 **sudo**(( //Référence:// [[https://fr.wikipedia.org/wiki/Sudo|https://fr.wikipedia.org/wiki/Sudo]]. \\ \\ )) 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: - /usr/bin/rsync - /bin/gtar - /bin/tar === Fichier de configuration de sudo === L'utilitaire //sudo// est un cas particulier, car sa configuration se trouve dans le fichier ''/etc/sudoers''.\\ {{Images_Cahier-101-03-006.png?25}} 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!) {{Images_Cahier-101-03-006.png?25}} 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 Lan(( **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|http://www.granddictionnaire.com/ficheOqlf.aspx?Id_Fiche=8370856]]. )\\ \\ ))//. 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//. {{Images_Cahier-101-03-006.png?25}} Prendre tout le contenu de l'encadré pour la commande. #!/bin/sh # Set the mac address for each host host1_mac= host1_name= host2_mac= host2_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 {{Images_Cahier-101-03-006.png?25}} IMPORTANT Si vous utilisez l'usager administrateur __admin__ par défaut, vous devrez utiliser le chemin complet pour les commandes ci-dessus.\\ {{Images_Cahier-101-03-006.png?25}} 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.\\ {{Images_Cahier-101-03-004.png?25}} 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. \\ \\ {{ Images_Cahier-101-11-046.png?600}} ===== 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 {{Images_Cahier-101-11-027.png?150 }} \\ \\ \\ {{ Images_Cahier-101-11-047.png?600}} ===== Courriel ===== Ajustez vers quelle adresse courriel vous voulez envoyer les notifications de //BackupPC//. {{Images_Cahier-101-11-027.png?150 }} \\ \\ \\ \\ \\ {{ Images_Cahier-101-11-048.png?600}} ===== 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//\\ {{Images_Cahier-101-03-003.png?22}} On activera les sauvegardes seulement après la création d'une nouvelle machine. ==== BlackoutPeriods ==== {{ Images_Cahier-101-11-049.png?500}} 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)//. {{Images_Cahier-101-11-027.png?150 }} \\ \\ \\ {{ Images_Cahier-101-11-050.png?600}} ===== 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. {{Images_Cahier-101-03-006.png?25}} S'assurer que //**Paramètres de Rsync -> RsyncShareName**// débute bien à " / " //(la racine du système de fichiers)//. {{Images_Cahier-101-11-027.png?150 }} \\ \\ \\ {{ Images_Cahier-101-11-052.png?600}} ==== BackupFilesExclude ==== {{Images_Cahier-101-03-006.png?25}} 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//. {{Images_Cahier-101-11-027.png?150 }} \\ \\ \\ **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 ===== {{ Images_Cahier-101-11-054.png?600}} 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**. {{Images_Cahier-101-11-027.png?150 }} \\ \\ \\ {{ Images_Cahier-101-11-056.png?500}} La nouvelle machine, hôte de //BackupPC//, a été crée. \\ {{ Images_Cahier-101-11-057.png?600}} On rafraîchit la page du navigateur puis, on clique **Renvoyer**. \\ \\ {{ Images_Cahier-101-11-058.png?600}} ===== 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**. |{{ Images_Cahier-101-11-059.png?400 }}| - **Paramètres de sauvegarde**.\\ - On vérifie la //pre-commande// et la //post-commande//. |{{ Images_Cahier-101-11-060.png?700 }}| \\ ==== Courriel & Horaire ==== //Paramètres de courriel//. |{{ Images_Cahier-101-11-061.png?400 }}| //Sauvegrades complètes//. |{{ Images_Cahier-101-11-062.png?400 }}| //Sauvegrades incrémentielles//. |{{ Images_Cahier-101-11-063.png?400 }}| {{Images_Cahier-101-03-004.png?25}} 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**//. |{{ Images_Cahier-101-11-064.png?400 }}| |{{ Images_Cahier-101-11-065.png?400 }}| |{{ Images_Cahier-101-11-066.png?400 }}| //BackupsDisable// s'applique seulement aux sauvegardes automatiques. On peut quand même faire une sauvegarde manuelle pour vérifier que tout fonctionne correctement.\\ {{Images_Cahier-101-03-004.png?25}} 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. {{Images_Cahier-101-11-027.png?150 }} \\ \\ \\ {{ Images_Cahier-101-11-068.png?600}} ==== 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** /// {{Images_Cahier-101-03-006.png?25}} {{Images_Cahier-101-03-006.png?25}} S'assurer que ce paramètre débute bien à " / " (la racine du système de fichiers). {{Images_Cahier-101-11-027.png?150 }} \\ \\ \\ === BackupFilesExclude === {{Images_Cahier-101-03-006.png?25}} 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: {{ Images_Cahier-101-11-070.png?600}} ● Vis-a-vis //**/var/lib/BackupPC**// **-> Détruire**. {{Images_Cahier-101-11-027.png?150 }} \\ 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//. {{ Images_Cahier-101-11-071.png?450}} On clique **Ajouter** et on entre les répertoires: - /var/lib/BackupPC/cpool - /var/lib/BackupPC/lost+found - /var/lib/BackupPC/mes_restaurations - /var/lib/BackupPC/pc - /var/lib/BackupPC/pool - /var/lib/trash \\ \\ On exclut aussi certains répertoires de configurations: - /etc/sysconfig/network-scripts \\ Sert à la configuration des cartes réseaux qu'on voudra garder sur le serveur de DESTINATION. - /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. {{Images_Cahier-101-11-027.png?150 }} \\ {{Images_Cahier-101-03-003.png?22}} 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 [[nethserver_101_cahier_11_nethserver_backuppc#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)//.\\ {{Images_Cahier-101-03-004.png?25}} 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.\\ {{Images_Cahier-101-03-005.png?25}} 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]). {{Images_Cahier-101-03-006.png?25}} 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 ==== {{Images_Cahier-101-03-006.png?25}} {{Images_Cahier-101-03-006.png?25}} __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$ {{Images_Cahier-101-03-004.png?25}} 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)//.\\ {{Images_Cahier-101-03-003.png?22}} __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 ~]# {{Images_Cahier-101-03-006.png?25}} 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 ~]# \\ {{ Images_Cahier-101-11-073.png?600}} ==== 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**. |{{ Images_Cahier-101-11-074.png?400 }}| On retourne à la page d'accueil en cliquant le nom de notre machine -> **127.0.0.1**. |{{ Images_Cahier-101-11-075.png?400 }}| \\ {{ Images_Cahier-101-11-076.png?600}} Au retour à la page d'accueil, //BackupPC// nous informe du "début de la sauvegarde" **-> Fichier journal**. \\ {{ Images_Cahier-101-11-077.png?600}} 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 {{ Images_Cahier-101-11-078.png?600}} On voit que __backuppc__ utilise peu de mémoire, mais un pourcentage très substantiel du temps CPU. \\ {{ Images_Cahier-101-11-079.png?600}} ==== 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. \\ {{ Images_Cahier-101-11-080.png?600}} ==== 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. {{Images_Cahier-101-03-005.png?25}} //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 ... \\ \\ {{ Images_Cahier-101-11-081.png?600}} ===== Examen de la sauvegarde ===== Lorsque la sauvegarde est terminée, la page d'accueil nous donne les différentes statistiques de cette sauvegarde. \\ {{ Images_Cahier-101-11-082.png?600}} ==== Journaux de la sauvegarde ==== {{Images_Cahier-101-03-005.png?25}} On voit que c'est une sauvegarde Complète et qu'elle est fusionnée. \\ {{ Images_Cahier-101-11-083.png?600}} === JournalXfer === Le JournalXfer nous indique les fichiers sauvegardés selon le paramètre //XferLogLevel// au paragraphe [[nethserver_101_cahier_11_nethserver_backuppc#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. \\ {{ Images_Cahier-101-11-084.png?600}} ● Le script ''post-sauvegarde.sh'' a été exécuté. ● La mise à jour //refCountUpdate////Italique// des pointeurs de fichier a pris __8 secondes__. \\ {{ Images_Cahier-101-11-085.png?600}} === Journal Erreurs === Le journal Erreurs nous indique le nombre d'erreurs encourus. {{Images_Cahier-101-03-005.png?25}} 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. |{{ Images_Cahier-101-11-086.png?200 }}| \\ 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 ~]# \\ {{ Images_Cahier-101-11-087.png?600}} {{Images_Cahier-101-03-005.png?25}} 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 ==== {{Images_Cahier-101-03-005.png?25}} On pourrait mettre //XferLogLevel// à //1// pour une très petite perte d'espace disque.\\ {{Images_Cahier-101-03-006.png?25}} 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]) \\ \\ {{ Images_Cahier-101-11-088.png?600}} ===== Première sauvegarde Incrémentielle ===== **-> Démarrer une sauvegarde Incrémentielle**. \\ **Démarrer la sauvegarde Incrémentielle**. |{{ Images_Cahier-101-11-089.png?400 }}| On retourne à la page d'accueil -> **127.0.0.1**. |{{ Images_Cahier-101-11-090.png?400 }}| \\ //BackupPC// indique que la sauvegarde a débutée puis, qu'elle est en cours. |{{ Images_Cahier-101-11-091.png?400 }}| |{{ Images_Cahier-101-11-092.png?400 }}| 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//. \\ \\ {{ Images_Cahier-101-11-093.png?600}} La sauvegarde Incrémentielle est commencée. \\ {{ Images_Cahier-101-11-094.png?600}} La sauvegarde Incrémentielle est terminée. \\ {{ Images_Cahier-101-11-095.png?600}} 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__. {{ Images_Cahier-101-11-096.png?200}} 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.\\ {{Images_Cahier-101-03-005.png?25}} 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. {{ Images_Cahier-101-11-097.png?200}} ==== Fusion ==== Comme l'affiche la page d'accueil, l'Incrémentielle //#1// a été Fusionnée à la Complète //#0//. \\ {{ Images_Cahier-101-11-098.png?600}} {{Images_Cahier-101-03-005.png?25}} La fusion est aussi démontrée ci-contre, par la grandeur de l'Incrémentielle //1//. \\ {{ Images_Cahier-101-11-099.png?600}} ==== Examen des fichiers ==== On peut afficher le contenu d'une sauvegarde en cliquant le numéro de celle-ci **->** "**1**". \\ {{ Images_Cahier-101-11-100.png?600}} L'arborescence des fichiers de la sauvegarde est affichée. \\ \\ {{ Images_Cahier-101-11-101.png?600}} ===== Deuxième sauvegarde Incrémentielle ===== On lance une deuxième sauvegarde Incrémentielle. \\ {{ Images_Cahier-101-11-102.png?250}} {{Images_Cahier-101-03-005.png?25}} BackupPC fusionne toutes les sauvegardes, car pour la machine //127.0.0.1//, le paramètre [[https://192.168.1.33/BackupPC?action=view&type=docs#_conf_fillcycle_|FillCycle]] est à __**1**__ indiquant de fusionner toutes les sauvegardes et de toujours les garder ainsi. {{Images_Cahier-101-11-103.png?600 }} \\ ===== Restauration d'un fichier ===== ==== Restauration vers le répertoire original ==== {{ Images_Cahier-101-11-104.png?350}} Si on veut restaurer un fichier particulier, on clique sur le numéro de la sauvegarde contenant le fichier à restaurer. \\ {{ Images_Cahier-101-11-105.png?600}} 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**. {{Images_Cahier-101-03-005.png?25}} On peut sélectionner le nombre de fichiers désirés sans aucun problème. {{ Images_Cahier-101-11-106.png?600}} On vérifie les noms des fichiers à restaurer. **-> Démarrer la restauration**. \\ {{ Images_Cahier-101-11-107.png?600}} On vérifie les chemins de la source et celui de la destination. **-> Restaurer**. \\ {{ Images_Cahier-101-11-108.png?600}} La restauration a réussie, on retourne à la page d'accueil.\\ **-> 127.0.0.1**. \\ {{ Images_Cahier-101-11-109.png?600}} On affiche le fichier journal de la machine. {{Images_Cahier-101-03-005.png?25}} 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 [[nethserver_101_cahier_11_nethserver_backuppc#Vérification]] pour la confirmation que le fichier de 1314 octets a bien été restauré. À comparer avec la capture //**Succès**// à la section [[nethserver_101_cahier_11_nethserver_backuppc#Restauration vers un répertoire différent]] lors de la restauration des mêmes fichiers, mais dans le répertoire ''/temp''. {{ Images_Cahier-101-11-110.png?600}} À 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**. |{{ Images_Cahier-101-11-111.png?400 }}| **Visionner**. Le journal //Restauration// s'affiche. |{{ Images_Cahier-101-11-112.png?400 }}| \\ {{ Images_Cahier-101-11-113.png?600}} === Erreur === Le journal //Extraction des erreurs seulement// s'affiche. \\ {{ Images_Cahier-101-11-114.png?600}} ==== Restauration vers un répertoire différent ==== {{Images_Cahier-101-03-004.png?25}} On peut choisir un autre répertoire de destination: ''/temp'' pour la restauration. **-> Démarrer la restauration**. \\ {{ Images_Cahier-101-11-115.png?600}} **-> Restaurer**. \\ {{ Images_Cahier-101-11-116.png?600}} On retourne à la page d'accueil.\\ **-> 127.0.0.1**. \\ {{ Images_Cahier-101-11-117.png?600}} //**Succès**//. \\ {{ Images_Cahier-101-11-118.png?600}} Vérification dans le //Fichier journal de la machine//. {{Images_Cahier-101-03-005.png?25}} 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 === {{ Images_Cahier-101-11-119.png?300}} 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. \\ {{ Images_Cahier-101-11-120.png?300}} === 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 ... \\ {{ Images_Cahier-101-11-121.png?600}} ==== 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 ==== {{ Images_Cahier-101-11-122.png?300}} 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. {{Images_Cahier-101-03-005.png?25}} 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//. {{Images_Cahier-101-03-006.png?25}} 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. \\ {{ Images_Cahier-101-11-124.png?600}} === 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é. \\ \\ {{ Images_Cahier-101-11-125.png?600}} === Nouvelle sauvegarde incrémentielle === **-> Démarrer la sauvegarde incrémentielle**. \\ === Vérification === {{ Images_Cahier-101-11-126.png?175}} 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 \\ {{ Images_Cahier-101-11-127.png?600}} 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. {{Images_Cahier-101-11-128.png?200}} {{ Images_Cahier-101-11-129.png?600}} === 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. |{{ Images_Cahier-101-11-130.png?400 }}| |{{ Images_Cahier-101-11-131.png?400 }}| \\ ===== Activation des sauvegardes ===== {{ Images_Cahier-101-11-132.png?300}} {{Images_Cahier-101-03-006.png?25}} 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 ===== {{ Images_Cahier-101-11-133.png?500 }} \\ {{ Images_Cahier-101-11-134.png?600}} ===== 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**//. {{Images_Cahier-101-03-003.png?22}} 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.\\ {{Images_Cahier-101-03-004.png?25}} 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**. |{{ Images_Cahier-101-11-135.png?400 }}| \\ \\ \\ **Vérification**. |{{ Images_Cahier-101-11-136.png?400 }}| \\ {{ Images_Cahier-101-11-137.png?600}} On rafraîchit la page du fureteur **-> Renvoyer**. \\ {{ Images_Cahier-101-11-138.png?600}} ==== 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**. |{{ Images_Cahier-101-11-139.png?300 }}| - Paramètres de sauvegarde.\\ - On vérifie la //pre-commande// et la //post-commande//. |{{ Images_Cahier-101-11-140.png?600 }}| **Horaire**. |{{ Images_Cahier-101-11-141.png?400 }}| \\ |{{ Images_Cahier-101-11-142.png?400 }}| \\ |{{ Images_Cahier-101-11-143.png?400 }}| {{Images_Cahier-101-03-003.png?22}} //**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.\\ {{Images_Cahier-101-03-005.png?25}} 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.\\ {{Images_Cahier-101-03-004.png?25}} Sur nos Serveurs NethServer en production, on activera les sauvegardes automatiques __seulement après avoir vérifier une sauvegarde manuelle__. **Horaire** //(suite)//. |{{ Images_Cahier-101-11-144.png?600 }}| \\ |{{ Images_Cahier-101-11-145.png?400 }}| \\ === Xfer / BackupFilesExclude === {{ Images_Cahier-101-11-146.png?600}} **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$ {{Images_Cahier-101-03-005.png?25}} Les guillemets " servent à faire exécuter une commande au serveur distant.\\ {{Images_Cahier-101-03-003.png?22}} 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 ~]# \\ \\ {{ Images_Cahier-101-11-147.png?250}} ===== 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. \\ {{ Images_Cahier-101-11-148.png?600}} La sauvegarde débute. \\ {{ Images_Cahier-101-11-149.png?600}} La sauvegarde est en cours. \\ {{ Images_Cahier-101-11-150.png?600}} Le **Fichier journal** de la machine SOURCE affiche les résultats de la sauvegarde Complète. \\ {{ Images_Cahier-101-11-151.png?600}} La page d'accueil de la machine du serveur SOURCE affiche tous les détails de la sauvegarde. {{Images_Cahier-101-03-005.png?25}} 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 ==== {{ Images_Cahier-101-11-152.png?600}} 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. |{{ Images_Cahier-101-11-153.png?300 }}| {{ Images_Cahier-101-11-154.png?600}} Sur la page d'accueil, les détails de la sauvegarde Incrémentielle //#1// sont affichés. \\ ==== Deuxième Incrémentielle ==== {{Images_Cahier-101-03-005.png?25}} On peut aussi faire une deuxième Incrémentielle pour voir ce qui se passera. Les deux Incrémentielles sont toutes deux fusionnées. |{{ Images_Cahier-101-11-155.png?300 }}| \\ {{ Images_Cahier-101-11-156.png?600}} 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. {{ Images_Cahier-101-11-157.png?650 }} \\ Serveur DESTINATION sur réseau distant. {{ Images_Cahier-101-11-158.png?650 }} \\ 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. \\ {{ Images_Cahier-101-11-159.png?600}} ===== 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 [[nethserver_101_cahier_11_nethserver_backuppc#Création du fichier TAR]]. \\ {{Images_Cahier-101-03-005.png?25}} 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. {{Images_Cahier-101-11-160.png?350 }} \\ 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 {{Images_Cahier-101-03-006.png?25}} 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//.\\ {{Images_Cahier-101-03-006.png?25}} 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.** \\ \\ {{ Images_Cahier-101-11-161.png?350}} ===== 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 ~]# {{Images_Cahier-101-03-003.png?22}} 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. {{Images_Cahier-101-03-003.png?22}} 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|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 ~]# {{Images_Cahier-101-03-004.png?25}} 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 ~]# {{Images_Cahier-101-03-003.png?22}} On garde cette session ouverte, car nous devrons l'utiliser pour envoyer la commande de post-restauration au paragraphe [[nethserver_101_cahier_11_nethserver_backuppc#Commande restore-config]]. On se connecte à l'interface Web de DESTINATION: https://IP-de-DESTINATION:980. **Administration -> Software center ->** onglet **Updates -> DOWNLOAD AND INSTALL**. |{{ Images_Cahier-101-11-162.png?400 }}| \\ \\ **Reload page**. |{{ Images_Cahier-101-11-163.png?400 }}| \\ \\ Toutes les mises à jour ont été installées. |{{ Images_Cahier-101-11-164.png?400 }}| **Tout est en place pour la restauration.** \\ ===== Arrêt du serveur SOURCE ===== {{Images_Cahier-101-03-003.png?22}} 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 ===== {{Images_Cahier-101-03-006.png?25}} 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. {{Images_Cahier-101-03-005.png?25}} 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$ {{Images_Cahier-101-03-005.png?25}} 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|http://docs.nethserver.org/projects/nethserver-devel/en/latest/nethserver-backup-config.html#restore]]. {{Images_Cahier-101-03-006.png?25}} On retourne à la session PuTTY ouverte lors de la [[nethserver_101_cahier_11_nethserver_backuppc#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. \\ {{ Images_Cahier-101-11-165.png?350}} Attendre l'écran surgissant ci-contre. {{Images_Cahier-101-03-006.png?25}} {{Images_Cahier-101-03-006.png?25}} __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 {{ Images_Cahier-101-11-166.png?350}} 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.\\ {{Images_Cahier-101-03-006.png?25}} Ê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 ~]# {{Images_Cahier-101-03-006.png?25}} 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**. |{{ Images_Cahier-101-11-167.png?400 }}| \\ \\ **Recharger la page**. |{{ Images_Cahier-101-11-168.png?400 }}| \\ Toutes les mises à jour ont été installées. |{{ Images_Cahier-101-11-169.png?400 }}| \\ {{ Images_Cahier-101-11-170.png?600}} {{Images_Cahier-101-03-003.png?22}} 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. |{{ Images_Cahier-101-11-171.png?300 }}| On se rend sur le site Web du serveur DESTINATION\\ https://www.micronator-dev.org. |{{ Images_Cahier-101-11-172.png?900 }}| \\ \\ {{NS-101_002_Banniere_Victoire.png?50}} 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: ^Version^Date^Commentaire^Auteur| |0.0.1|2018-03-05|Début.|Michel-André| |0.0.2|2018-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.3|2018-08-07|Coquilles dans "Création d'une machine pour le serveur hôte"|Michel-André| |0.1.0|2018-09-18|Révision complète.|Michel-André| |0.2.0|2019-03-16|Adaptation pour NethServer-7.6.1810.|Michel-André| |0.2.1|2019-04-23|Corrections mineures.|Michel-André| |0.3.0|2019-08-01|Ajustements pour DokuWiki.|Michel-André| |12345678901| | |12345678901|
===== 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. \\ \\