Difference between revisions of "Affa/fr"

From SME Server
Jump to navigationJump to search
 
(201 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
{{Languages|Affa}}
 
{{Languages|Affa}}
{{Level|type=Niveau de compétence: Avancé|Advanced|Les instructions dans cette page requièrent un niveau avancé. Une bonne compréhension de Linux et de SME est recommandée.}}
+
{{Warning box|type=Attention : | 1er sept 2022, un correctif récent de rysnc, rsync-3.1.2-11.el7_9.x86_64, provoque l'échec silencieux du fonctionnement d'Affa. Voir ci-dessous.}}
{{usefulnote|type=Cet article...}}
+
{{Level|type=Niveau de compétence : Avancé|Advanced|Les instructions dans cette page requièrent un niveau avancé. Une bonne compréhension de Linux et du serveur KOOZALI SME est recommandée.}}
 +
 
 +
===Attention===
 +
{{Warning box|type=Attention : | rsync-3.1.2-11.el7_9.x86_64 provoque l'échec silencieux d'Affa.}}
 +
 
 +
Vous pouvez voir l'échec dans vos journaux, mais c'est tout. Aucun fichier ne sera sauvegardé après avoir installé cette mise à jour de rsync.
 +
 
 +
Voir le lien vers le bogue 12165 ci-dessous.
 +
 
 +
Le seul correctif actuel consiste à rétrograder rsync sur le serveur Affa. Cela n'a pas d'importance sur le serveur cible.
 +
 
 +
Nous travaillons sur une solution et avons un code de test en cours d'exécution et nous proposerons un correctif dès que possible.
 +
 
 +
Veuillez contacter ReetP sur le bogue si vous voulez aider à tester. Un correctif sera disponible plus rapidement si vous le faites.
 +
 
 +
{{usefulnote/fr}}
  
 
=== Développeur ===
 
=== Développeur ===
Line 11: Line 26:
  
 
=== Versions ===
 
=== Versions ===
{{ #smeversion: affa}}
+
{{#smeversion: smeserver-affa}}
{{ #smeversion: smeserver-affa}}
+
{{Warning box|type=Attention :| il n'est pas possible de faire une mise à jour de affa vers smeserver-affa ; de même, il n'est pas possible d'utiliser les fichiers de configuration d'affa (en .pl) pour faire fonctionner smeserver-affa. Il faut tout désinstaller et installer la nouvelle contribution. La seule chose qui peut être conservée est le répertoire /var/affa.}}
  
 
=== Traducteurs ===
 
=== Traducteurs ===
Line 24: Line 39:
  
 
=== Description ===
 
=== Description ===
Le but principal de cette contribution Affa est de transformer un serveur SME en un serveur dédié de sauvegardes en quelques minutes. Affa sauvegarde autant que vous désirez de serveurs SME sur n'importe quel autre serveur ayant sshd en service et rsync installés. Une fois qu'il est configuré, Affa fonctionne sans surveillance et de manière fiable, envoyant des messages d'avertissement en cas d'erreur.  
+
Le but principal de cette contribution Affa est de transformer en quelques minutes un serveur Kooali SME en un serveur dédié aux sauvegardes. Affa sauvegarde autant de serveurs Koozali SME que vous désirez sur n'importe quel autre serveur ayant sshd en service et rsync installés. Une fois qu'il est configuré, Affa fonctionne sans surveillance et de manière fiable, envoyant des messages d'avertissement en cas d'erreur.  
  
 
Toutes les archives sont des sauvegardes complètes, puisqu'Affa utilise la technique des liens (hardlinks). Une nouvelle sauvegarde complète ne nécessite donc que l'espace disque pour les différences et les nécessités du système de fichier pour les hardlinks et les répertoires (ce qui représente généralement 2 à 3%).
 
Toutes les archives sont des sauvegardes complètes, puisqu'Affa utilise la technique des liens (hardlinks). Une nouvelle sauvegarde complète ne nécessite donc que l'espace disque pour les différences et les nécessités du système de fichier pour les hardlinks et les répertoires (ce qui représente généralement 2 à 3%).
  
Affa est fondé sur le programme rsync et supporte l'option --compress. Cela vous permet de lancer des sauvegardes via Internet ou VPN. Une configuration typique consiste en un ou plusieurs serveurs de sauvegarde Affa placés en des lieux déportés, qui sauvegardent les serveurs de production via le VPN.
+
Affa est fondé sur le programme rsync et supporte l'option --compress. Cela vous permet de lancer des sauvegardes via Internet ou VPN. Une configuration typique consiste en un ou plusieurs serveurs de sauvegarde Affa placés en des lieux déportés, qui sauvegardent les serveurs de production en VPN.
  
Une caractéristique spéciale est l'option «rise», qui vous permet de convertir votre serveur de sauvegarde en serveur de production depuis une archive sauvegardée en cas de perte totale de votre serveur de production. Cette conversion est exécutée en un temps très court, même avec une énorme quantité de données. Cette possibilité de conversion utilise les hardlinks et de ce fait n'utilise pas d'espace disque supplémentaire.
+
Une caractéristique spéciale est l'option « rise », qui vous permet de convertir votre serveur de sauvegarde en serveur de production depuis une archive sauvegardée en cas de perte totale de votre serveur de production. Cette conversion est exécutée en un temps très court, même avec une énorme quantité de données. Cette possibilité de conversion utilise les hardlinks et, de ce fait, n'utilise pas d'espace disque supplémentaire.
  
Cette caractéristique «rise» peut également être utilisée pour une mise à niveau vers une version plus récente de SME. Cela fonctionne en particulier pour passer de la 8.2 à la 9. Pour réaliser cela, il est nécessaire d'avoir 2 installations séparées de SME : l'une est l'actuel serveur de production (v.8.2) et l'autre est le serveur Affa de sauvegarde en version nouvelle (v.9) sur lequel sera exécutée la commande «rise». Plus d'information sur [[Moving_SME_to_new_Hardware]].
+
Cette caractéristique « rise » peut également être utilisée pour une mise à niveau vers une version plus récente de Koozali SME. Cela fonctionne en particulier pour passer de la 8.2 à la 9 '''MAIS CELA NE FONCTIONNE PAS DE LA VERSION 9.2 A LA 10.'''
 +
Lorsque cela est possible, il est nécessaire d'avoir 2 installations séparées de Koozali SME : l'une est l'actuel serveur de production (v.8.2, par exemple) et l'autre est le serveur Affa de sauvegarde en version nouvelle (v.9) sur lequel sera exécutée la commande « rise ». Plus d'information sur [[Moving_SME_to_new_Hardware/fr|Déplacer le serveur Koozali SME sur une nouvelle machine]].
  
Une façon simple d'avoir un serveur de production avec un maximum de disponibilité est de dupliquer le matériel. Par exemple, avoir deux serveurs en dur ou virtuels sur deux machines distinctes. L'un est l'actuel serveur de production et l'autre est le système de secours qui peut remplacer le serveur actuel en un temps très court au moyen de la commande «rise». Cela permet aussi de monter la version du système d'exploitation du Serveur SME avec un arrêt minimum !
+
Une façon simple d'avoir un serveur de production avec un maximum de disponibilité est de dupliquer le matériel. Par exemple, avoir deux serveurs en dur ou virtuels sur deux machines distinctes. L'un est l'actuel serveur de production et l'autre est le système de secours qui peut remplacer le serveur actuel en un temps très court au moyen de la commande « rise ». Cela permet aussi de monter la version du système d'exploitation du serveur Koozali SME avec un arrêt minimum !
  
 
Affa est un outil en ligne de commande pour les administrateurs système et est conçu intentionnellement sans interface graphique. De ce fait, il peut être géré efficacement depuis la console même via une connexion Internet lente.
 
Affa est un outil en ligne de commande pour les administrateurs système et est conçu intentionnellement sans interface graphique. De ce fait, il peut être géré efficacement depuis la console même via une connexion Internet lente.
 +
 +
{{Warning box|type=Attention :| le présent wiki désigne sous l’appellation Affa 3, la contribution «smeserver-affa» qui est une version dérivée de celle du développeur Michael Weinberger. Si Affa 3 devait désigner explicitement sa version pour CentOS, le wiki le dira précisément.}}
  
 
{{Note box|type=Note :|ce document fait également référence à la version Affa 2 qui n'est plus maintenue. L'information sur smeserver-affa v.3 sera ajoutée progressivement ici au fur à mesure de l'avancement des tests.}}
 
{{Note box|type=Note :|ce document fait également référence à la version Affa 2 qui n'est plus maintenue. L'information sur smeserver-affa v.3 sera ajoutée progressivement ici au fur à mesure de l'avancement des tests.}}
Line 55: Line 73:
 
* Des répertoires et fichiers peuvent être exclus de la sauvegarde.
 
* Des répertoires et fichiers peuvent être exclus de la sauvegarde.
 
* Les serveurs Linux non SME peuvent être sauvegardés en mettant la propriété SMEServer à 'no' et en utilisant une liste d'inclusion.
 
* Les serveurs Linux non SME peuvent être sauvegardés en mettant la propriété SMEServer à 'no' et en utilisant une liste d'inclusion.
* En mode ESXi, les machines virtuelles actives peuvent être sauvegardées. Voir [[Backup_of_ESXi_Virtual_Machines_using_Affa|Sauvegarde de machines virtuelles ESXi avec Affa]] en anglais.
+
* En mode ESXi, les machines virtuelles actives peuvent être sauvegardées. Voir [[Backup_of_ESXi_Virtual_Machines_using_Affa|Sauvegarde de machines virtuelles ESXi avec Affa]], en anglais.
 
* Priorité configurable (nice level) pour les process rsync sur les serveurs backup et source.
 
* Priorité configurable (nice level) pour les process rsync sur les serveurs backup et source.
 
* Possibilité de lancer des programmes personnels avant et après le lancement d'une tâche (par exemple, lancement d'une sauvegarde sur bande).
 
* Possibilité de lancer des programmes personnels avant et après le lancement d'une tâche (par exemple, lancement d'une sauvegarde sur bande).
Line 63: Line 81:
 
* Envoi d'un message d'avertissement si le serveur de backup n'a plus d'espace disque disponible.
 
* Envoi d'un message d'avertissement si le serveur de backup n'a plus d'espace disque disponible.
 
* Installe un chien de garde optionnel sur le serveur source vérifiant la disponibilité du serveur de backup (Serveur SME seulement).
 
* Installe un chien de garde optionnel sur le serveur source vérifiant la disponibilité du serveur de backup (Serveur SME seulement).
* Le chien de garde envoie des avertissements, si une sauvegarde programmée n'a pas été lancée (Serveur SME seulement).
+
* Le chien de garde envoie des avertissements, si une sauvegarde programmée n'a pas été lancée (serveur Koozali SME seulement).
* Le chien de garde envoie un message journalier de rappel tant que l'erreur n'est pas corrigée (Serveur SME seulement).
+
* Le chien de garde envoie un message journalier de rappel tant que l'erreur n'est pas corrigée (serveur Koozali SME seulement).
 
* Possibilité d'afficher l'état courant de toutes les tâches, montrant les heures de dernier et prochain lancement, la taille et l'espace disque utilisé.
 
* Possibilité d'afficher l'état courant de toutes les tâches, montrant les heures de dernier et prochain lancement, la taille et l'espace disque utilisé.
 
* Le statut des sauvegardes peut être envoyé par courriel journellement, hebdomadairement ou mensuellement.
 
* Le statut des sauvegardes peut être envoyé par courriel journellement, hebdomadairement ou mensuellement.
 
* Possibilité d'afficher toutes les archives existantes pour une tâche, montrant la date, le nombre de fichiers et l'espace disque.
 
* Possibilité d'afficher toutes les archives existantes pour une tâche, montrant la date, le nombre de fichiers et l'espace disque.
* Possibilité d'envoyer (et de retirer) la clé publique au serveur source (Serveur SME et ESXi seulement).
+
* Possibilité d'envoyer (et de retirer) la clé publique au serveur source (serveur Koozali SME et ESXi seulement).
* Option pour convertir le serveur de sauvegardes en serveur de production (Serveur SME seulement).
+
* Option pour convertir le serveur de sauvegardes en serveur de production (serveur Koozali SME seulement).
 
* La fonction de conversion ne déplace pas physiquement les données et est donc extrêmement rapide et ne nécessite (presque) pas d'espace disque.
 
* La fonction de conversion ne déplace pas physiquement les données et est donc extrêmement rapide et ne nécessite (presque) pas d'espace disque.
 
* La fonction de conversion peut être lancée à distance puisque les drivers ethernet du serveur de sauvegarde sont conservés.
 
* La fonction de conversion peut être lancée à distance puisque les drivers ethernet du serveur de sauvegarde sont conservés.
Line 78: Line 96:
 
* Les fichiers de log sont permutés hebdomadairement, avec 5 fichiers conservés.
 
* Les fichiers de log sont permutés hebdomadairement, avec 5 fichiers conservés.
  
=== Installation d'Affa 3 ===
+
<div class="mw-collapsible mw-collapsed" style="text-align:left" data-expandtext="Obsolete Affa 2 instructions &darr;" data-collapsetext="less &uarr;">{{Warning box|SME v7/8/9 are no longer supported.}}
{{Note box|type=Note :|Affa est incompatible avec AutoBlock. Noter qu'AutoBlock est activé par défaut dans le Serveur SME 9. Utiliser de préférence [https://wiki.contribs.org/Fail2ban Fail2ban.]}}
+
 
 +
</div>
 +
 
 +
=== Installation d'Affa v.3 ===
 +
====Pour SME 9====
 +
{{Note box|type=Note :|Affa est incompatible avec AutoBlock. Noter qu'AutoBlock est activé par défaut dans le Serveur SME 9. Utiliser de préférence [https://wiki.contribs.org/Fail2ban Fail2ban.]
 +
Pour vérifier qu'AutoBlock est bien désactivé :
 +
db configuration show sshd
 +
Si ce n'est pas le cas, voir sur [http://wiki.contribs.org/AutoBlock AutoBlock SSH] pour le désactiver}}
  
Les instructions suivantes supposent qu'une nouvelle installation d'Affa 3 est faite sur un nouveau Serveur SME dédié qui sert de serveur de sauvegarde dédié (dénommé par la suite «affabox»). Les tâches ne sont pas migrées depuis Affa 2. Pour utiliser une Serveur SME existant, il suffit de sauter les instructions relatives à l'installation d'un nouveau Serveur SME.
+
Les instructions suivantes supposent qu'une nouvelle installation d'Affa v.3 est faite sur un nouveau Serveur SME dédié qui sert de serveur de sauvegarde dédié (dénommé par la suite «affabox»). Les tâches ne sont pas migrées, ni migrables depuis Affa v.2. Pour utiliser un Serveur SME existant, il suffit de sauter les instructions relatives à l'installation d'un nouveau Serveur SME.
  
Installer à partir d'un CDROM une machine dédiée en version 8.2 ou 9.1. Utiliser l'exemple suivant de configuration :
+
Installer à partir d'un CDROM une machine dédiée en version 9.x. Utiliser l'exemple suivant de configuration :
  
 
<ol><li>Nom de domaine : chezmoi.xx (utiliser votre nom de domaine existant) ;</li>
 
<ol><li>Nom de domaine : chezmoi.xx (utiliser votre nom de domaine existant) ;</li>
Line 96: Line 122:
 
<li>Le nouveau serveur sera ensuite redémarré avec les réglages ci-dessus.</li></ol>
 
<li>Le nouveau serveur sera ensuite redémarré avec les réglages ci-dessus.</li></ol>
  
Pour mettre à jour votre serveur, se connecter en «root» sur la console locale. Utiliser la commande 'top' pour visualiser les tâches en fonctionnement. Attendre jusqu'à ce que 'yum' ait arrêté toute tâche en cours.
+
Pour mettre à jour votre serveur, se connecter en « root » sur la console locale. Utiliser la commande 'top' pour visualiser les tâches en fonctionnement. Attendre jusqu'à ce que 'yum' ait arrêté toute tâche en cours.
  
 
  yum clean all
 
  yum clean all
Line 103: Line 129:
 
  signal-event post-upgrade
 
  signal-event post-upgrade
 
  signal-event reboot
 
  signal-event reboot
Le serveur redémarrera. Après cela, il est prêt pour l'installation d'Affa 3.
+
Le serveur redémarrera. Après cela, il est prêt pour l'installation d'Affa v.3.
  
Se connecter en «root» en local ou par une console SSH à distance sur ''affabox'' (le serveur de sauvegarde sur lequel on installe Affa).
+
Se connecter en « root » en local ou par une console SSH à distance sur ''affabox'' (le serveur de sauvegarde sur lequel on installe Affa).
  
Pour installer Affa3, saisir la commande suivante :
+
====Pour SME 10====
  
= For SME8 =
+
Il existe une nouvelle version : la 3.3.1.
 +
Cependant, Affa est un objet très compliqué avec un grand nombre d'options et beaucoup n'ont probablement pas été suffisamment testées malgré les demandes de tests et de retours. La plupart des principaux composants devraient fonctionner, mais il se peut qu'il y ait une pléthore de cas extrêmes qui échouent.
  
yum install smeserver-affa --enablerepo=smecontribs
+
{{Warning box|type=Attention : | ne comptez pas sur Affa comme votre seule sauvegarde. Assurez-vous également d'avoir un autre type de sauvegarde.}}
= For SME9 =
 
  
  yum install smeserver-affa --enablerepo=smecontribs
+
{{Warning box|type=Attention : | n'utilisez AUCUNE version affa de Koozali SME v9 avec la v10. Cela cassera probablement à la fois vos sauvegardes et votre nouveau serveur.}}
<headertabs/>
+
 
 +
Nous avons effectué des tests très minimes sur la migration de la v9 vers la v10.
 +
 
 +
Voir https://bugs.contribs.org/show_bug.cgi?id=11024
 +
 
 +
Dans des circonstances normales, vous exécuteriez ceci pour installer :
 +
 
 +
  yum install smeserver-extrarepositories-epel smeserver-extrarepositories-openfusion
 +
 
 +
signal-event yum-modify
 +
 
 +
config set UnsavedChanges no
 +
 
 +
yum install --enablerepo=smecontribs,epel,openfusion smeserver-affa
 +
 
 +
Durant le développement, l'installation peut être effectuuée par :
 +
yum install --enablerepo=smedev,epel,openfusion,smedev smeserver-affa
 +
 
 +
Veuillez publier des rapports de bogues dans le [http://bugs.contribs.org bug tracker]
 +
 
 +
Le serveur doit, à nouveau, être mis à jour :
  
The server again need to be updated.
 
 
  signal-event post-upgrade
 
  signal-event post-upgrade
 
  signal-event reboot
 
  signal-event reboot
The server will reboot. Afterwards Affa 3 is ready for use.
 
  
Now manually create directory for archive files:
+
Le serveur redémarrera. Ensuite, Affa 3 est prêt à être utilisé.
mkdir /var/affa
 
==== Smecontribs pour SME 8 ====
 
yum install -–enablerepo=smecontribs smeserver-affa
 
  
Si Affa est installé pour la première fois, entrez la commande suivante pour initialiser la base de données d'Affa.
+
{{Warning box|type=Attention : |notez que sur SME10, une fonctionnalité SSH [https://wiki.contribs.org/AutoBlock AutoBlock] interfère avec l'exigence d'Affa de connexions SSH normales ! Vous devrez peut-être désactiver cette fonctionnalité ou augmenter notablement le paramètre « MaxAuthtries » pour permettre à Affa de fonctionner correctement.}}
affa -–make-cronjob
 
  
et déconnectez-vous puis reconnectez-vous à la console pour que le complément automatique de bash (touche TAB) prenne effet .
+
{{Note box|type=Note :| noter qu'AutoBlock est activé par défaut dans le Serveur SME 10. Utiliser de préférence [https://wiki.contribs.org/Fail2ban Fail2ban.]
 +
Pour vérifier qu'AutoBlock est bien désactivé :
 +
db configuration show sshd
 +
Si ce n'est pas le cas, voir sur [http://wiki.contribs.org/AutoBlock AutoBlock SSH] pour le désactiver.}}
  
==== Ancienne méthode d'installation / méthode pour sme7 ====
+
=== Création de tâches de sauvegarde ===
{{Note box|SME7 est maintenant en fin de vie et a été transféré dans le répertoire obsolète}}
+
Les configurations des tâches d'Affa 3 ne sont plus rangées dans une base de données de style « e-smith ». Elles sont rangées dans des fichiers de configuration situés dans ''/etc/affa''. Créez vos fichiers de configuration dans ce répertoire, par exemple :
Version SME7: '''smeserver-affa-2.0.0-rc4.noarch.rpm'''
+
  touch /etc/affa/backup-smeserver.conf
wget <nowiki>http://mirror.contribs.org/smeserver/contribs/michaelw/sme7/Affa2/smeserver-affa-2.0.0-rc4.noarch.rpm</nowiki>
+
où ''backup-smeserver'' est le nom de votre tâche, et ajoutez du contenu comme décrit ci-dessous.
wget <nowiki>http://mirror.contribs.org/smeserver/contribs/michaelw/sme7/Affa2/perl-Compress-Bzip2-2.09-1.2.el4.rf.i386.rpm</nowiki>
 
  /usr/bin/yum --enablerepo=smecontribs localinstall \
 
smeserver-affa-2.0.0-rc4.noarch.rpm \
 
perl-Compress-Bzip2-2.09-1.2.el4.rf.i386.rpm
 
  
 +
==== Exemple de démarrage rapide ====
 +
Vous avez un serveur SME de production avec comme nom d'hôte 'smeserver‘ et d'IP 192.168.0.2.<br>
 +
Vous avez un second serveur SME comme serveur de sauvegarde avec comme nom d'hôte 'affabox‘ et d'IP 192.168.0.10.
 +
<ol><li>Connectez-vous à 'affabox' en tant que « root » et installez la contribution comme indiqué ci-dessus.
  
Version SME8: SME8 est basé sur CentOS5, c'est pourquoi perl-Compress-Bzip2 el5 rpm doit être utilisé.  
+
</li><li>Editez ''/etc/affa/backup-smeserver.conf''. En utilisant, par exemple, l'éditeur ''nano'', créez le fichier de configuration de tâche à partir de l’exemple suivant ayant pour nom de tâche ''backup-smeserver'' :<br>
 +
[backup-smeserver]<br>
 +
remoteHostName=192.168.0.2<br>
 +
SMEServer=yes<br>
 +
Watchdog=yes<br>
 +
RPMCheck=yes<br>
 +
ConnectionCheckTimeout=120<br>
 +
Debug=no<br>
 +
Description=Backup of 192.168.0.2 smeserver.athome.xx<br>
 +
DiskSpaceWarn=strict<br>
 +
RootDir=/var/affa<br>
 +
TimeSchedule=0630<br>
 +
localNice=15<br>
 +
remoteNice=15<br>
 +
rsync--inplace=yes<br>
 +
rsyncCompress=no<br>
 +
rsyncTimeout=900<br>
 +
scheduledKeep=1<br>
 +
dailyKeep=7<br>
 +
weeklyKeep=4<br>
 +
monthlyKeep=12<br>
 +
yearlyKeep=1<br>
 +
status=enabled<br>
  
Pour SME8 32 bits:
+
Si vous avez un certificat Letsencrypt sur le serveur de production, alors vous devez ajouter la ligne :<br>
  wget <nowiki>http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/perl-Compress-Bzip2-2.09-1.2.el5.rf.i386.rpm</nowiki>
+
  Include=/etc/dehydrated<br>
/usr/bin/yum --enablerepo=smecontribs localinstall \
+
Sauvegardez ensuite votre fichier de configuration de tâche.
smeserver-affa-2.0.0-rc4.noarch.rpm \
 
perl-Compress-Bzip2-2.09-1.2.el5.rf.i386.rpm
 
  
Pour SME8 64 bits:
+
</li><li>Désactiver le fichier de configuration inutilisé :<br>
wget http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/perl-Compress-Bzip2-2.09-1.2.el5.rf.x86_64.rpm
 
/usr/bin/yum --enablerepo=smecontribs localinstall \
 
smeserver-affa-2.0.0-rc4.noarch.rpm \
 
perl-Compress-Bzip2-2.09-1.2.el5.rf.x86_64.rpm
 
  
Après la première installation d'Affa, lancez la commande suivante pour initialiser la base de données Affa.
+
mv /etc/affa/localhost.conf /etc/affa/localhost.conf.sample
  affa --make-cronjobs
+
</li><li>Vérifiez maintenant que votre configuration est correcte :<br>
et déconnectez-vous puis reconnectez-vous à la console pour que le complément automatique de bash (touche TAB) prenne effet
+
  affa --configcheck<br>
 +
Cela ne devrait révéler aucune erreur.
  
</div>
+
</li><li>Maintenant créez vos clés rsa et envoyez votre clé publique à votre serveur SME de production :<br>
 +
affa --send-key backup-smeserver<br>
 +
<br>
 +
{{Note box|type=Note :|initialement, lorsque vous faites cette étape, vous devez temporairement mettre « oui » à « Autoriser l'authentification par SSH à l'aide de mots de passe standards » dans l'accès à distance sur le serveur de production. [[https://wiki.contribs.org/SME_Server:Documentation:Administration_Manual:Chapter11/fr#11.1._Acc.C3.A9s_.C3.A0_distance]]}}
  
=== Exemple de démarrage rapide ===
+
Les sorties suivantes doivent apparaître sur la console :
 +
 +
Job backup-smeserver: Generating RSA keys...
 +
Successfully created RSA key pair.
 +
root@192.168.0.2's password:                        <Entrer le mot de passe de 192.168.0.2/smeserver et appuyer sur la touche ENTRÉE>
 +
Public key sent to 192.168.0.2<br>
  
{{warning box|type=Attention :|la suite de cette page n'est pas à jour : passer pour l'instant sur la version anglaise.}}
+
{{Note box|type=Note :|si tout s'est bien déroulé, remettez immédiatement « non » à « Autoriser l'authentification par SSH à l'aide de mots de passe standards » dans l'accès à distance sur le serveur de production.}}
 +
</li><li>Maintenant, lancez votre tâche manuellement, tant à des fins de test que pour valider à l'occasion de la première connexion l'authenticité du serveur de production qui présente ses clés :<br>
  
Vous avez un serveur de production SME 7 dont le nom est 'prodbox' et l'IP 10.200.48.1. Installez un second SME 7 comme serveur de sauvegardes avec le nom 'affabox' et l'IP 10.200.48.2.
+
affa --run backup-smeserver<br>
  
<ol></li><li>loggez-vous dans 'affabox' et installez les paquetages mentionnés ci-dessus.
+
Les sorties suivantes doivent apparaître sur la console :<br>
</li><li>copiez le script d'exemple de configuration
 
cp /usr/lib/affa/jobconfig-sample.pl /root/prodbox-job.pl
 
</li><li>editez /root/prodbox-job.pl et mettez
 
my $jobname='prodbox';
 
et
 
'remoteHostName‘=>'10.200.48.1',
 
Eventuellement, si le port du serveur distant est configuré, par exemple, en 2222, mettez
 
'sshPort'=>2222,
 
</li><li>sauvegardez et lancez le fichier 'prodbox-job.pl'. Cela enregistrera la configuration (et crée les entrées de base de données et les tâches cron)
 
/root/prodbox-job.pl
 
</li><li>Générez les clés DSA et envoyez la clé publique à la 'prodbox'
 
{{Note box|Initialement, lorsque vous faites cette étape, vous devez temporairement mettre oui à "Autoriser l'authentification par SSH à l'aide de mots de passe standards" dans l'accès à distance sur le serveur de production}}
 
affa --send-key prodbox
 
</li><li>Lancez la tâche à la main
 
 
 
affa --run prodbox
 
</li></ol>
 
 
 
=== Configuration ===
 
La configuration est stockée dans une base de données style e-smith. Utilisez la commande db pour configurer Affa.
 
Le nom de tâche est la clé d'enregistrement de type 'job'.<br>Pour configurer un nouveau travail avec le nom 'prodbox', entrez :
 
  
db affa set prodbox job
+
  The authenticity of host 'smeserver (192.168.0.2)' can't be established.<br>
 +
  ED25519 key fingerprint is SHA256:Zgq4J....<br>
 +
  ED25519 key fingerprint is MD5:83:82:5f...<br>
 +
  Are you sure you want ton continue connecting (yes/no)?                          <Tapez : yes><br>
 +
<br>
 +
Maintenant votre sauvegarde devrait fonctionner pour la première fois. En fonction du volume des fichiers, cela prend un certain temps.<br>
  
Puis positionnez les propriétés
+
<br>
 +
{{Warning box|type=Attention :|du fait de la probable durée importante de la première sauvegarde, on peut légitimement être tenté de mettre une éperluète («&») à la fin de cette commande pour récupérer la main et pouvoir vérifier par une commande («top» ou autre) que la sauvegarde fonctionne... au lieu de se rendre compte plusieurs heures plus tard qu'elle ne fonctionne pas... Comme il faut accepter la clé RSA, il ne faut surtout pas le faire ! Solution : se connecter en ssh au serveur de sauvegarde pour vérifier que tout fonctionne bien.}}<br>
  
db affa setprop prodbox remoteHostName 192.168.1.1
+
</li><li>Une fois la tâche terminée, vérifier que l'archive est disponible :<br>
db affa setprop prodbox TimeSchedule '0030,0730,1130,1330,1730,2030'
+
  affa --list-archives<br>
  db affa setprop prodbox Description 'My Production Server'
+
<br>
  db affa setprop prodbox status enabled
+
ou lancez la tâche une seconde fois :<br>
et ainsi de suite...
+
<br>
 +
  affa --run backup-smeserver<br>
 +
<br>
 +
Notez que le mot de passe ne vous est plus demandé. Notez aussi que cette seconde exécution de la tâche ''backup-smeserver'' s’exécutera considérablement plus vite, parce que tous les fichiers ne sont pas copiés de nouveau : seule la différence par rapport à la première exécution est sauvegardée, le reste est enregistré sous la forme de liens vers les copies des fichiers de la première sauvegarde.
  
Alternativement, vous pouvez utiliser un script comme décrit ci-dessus dans le chapitre 'Démarrage rapide'.
+
Vérifiez que la seconde archive est aussi disponible :<br>
 +
affa --list-archives
 +
<br>
 +
À partir d'ici, vous pouvez travailler comme avec Affa 2. Modifiez votre fichier de configuration comme prescrit et décrit ci-dessous. Automatisez la sauvegarde en utilisant la commande ''affa --make-cronjobs'', voir ci-dessous.
  
Pour vérifier votre travail, tapez :
+
==== Modèles de configuration ====
 +
Vous trouverez dans /etc/affa des exemples de fichiers de configuration qu'il suffit de copier et de renommer avec une terminaison en .conf pour qu'ils soient pris en compte par le système.
 +
Ces exemples couvrent plusieurs situations : sauvegardes entre 2 serveurs SME, sauvegarde vers une connexion USB, ...
  
db affa show prodbox
+
Lorsqu'une tâche est démarrée, affa installe un script «chien de garde» sur la source dans /etc/cron.d/, qui envoie un message d'avertissement, si la prochaine tâche planifiée (extraite de la propriété TimeSchedule + 10 minutes) n'a pas été exécutée. Cela garantit que vous serez averti même en cas de panne d'un serveur affa. Le script de chien de garde envoie un message de rappel quotidien, si l'erreur persiste. Le prochain travail d'exécution remplace le script de chien de garde par un nouveau temps de déclenchement.
 +
==== Propriétés de configuration d'une tâche ====
 +
'''Note 1 :''' les valeurs par défaut indiquées dans cette table sont les valeurs par défaut du programme Affa et ne doivent pas être confondues avec les valeurs prédéfinies des fichiers de configuration de tâche, par exemple, «backup-smeserver.conf».
  
Pour finir, mettez en place les tâches cron :
+
'''Note 2 :''' la documentation complète sur les configurations d'Affa 3 est disponible (en anglais) sur [http://affa.sourceforge.net/AffaPdfMan.pdf]. Elle doit être prise en considération !
affa --make-cronjobs
 
  
==== Propriétés de configuration de tâches ====
+
'''Note 3 :''' Affa 3 pour SME (smeserver-affa) est un programme dérivé de [http://affa.sourceforge.net/ Affa 3 pour CentOS]. Il rétablit quelques options qui avaient été enlevées par le développeur lorsqu'il a abandonné SME pour CentOS en passant de la version 2 à la version 3. Généralement, les propriétés de configuration décrites [http://wiki.nikoforge.org/Affa_Configuration ici] s'appliquent. Arnaud a rétabli les fonctions suivantes pour SME :
'''Note:''' Les valeurs par défaut données dans ce tableau sont celles du programme Affa et ne doivent pas être confondues avec les valeurs prépositionnées dans les scripts d'aide, par exemple jobconfig-sample.pl.
+
<ul>
{| border="1" cellpadding="3" cellspacing=0
+
<li>le paramètre «SMEServer» ;</li>
 +
<li>le paramètre et la fonction «Watchdog» ;</li>
 +
<li>le paramètre et la fonction «RPMCheck» ;</li>
 +
<li>les fonctions «--rise» and «--undo-rise».</li>
 +
</ul>
 +
En conséquence,  la liste ci-dessous devrait reproduire la liste de la version Affa 3 originale, en ajoutant en plus les propriétés ci-dessus. Pour des détails, se référer au [https://www.guedel.eu/index.php/informatique/sme-server-8/affa-v3 site Internet d'Arnaud].
 +
{| border="1" cellspacing="0" cellpadding="3"
 
|-
 
|-
| '''Propriété''' || '''Valeur''' || '''Defaut''' || '''Description'''  
+
| '''Propriété''' || '''Valeur''' || '''Valeur multiple''' || '''Par défaut''' || '''Description'''  
 
|-
 
|-
 
| remoteHostName  
 
| remoteHostName  
| FQHN ou IP || || FQHN ou IP de l'hôte source (obligatoire)
+
| FQHN ou IP
 +
| non
 +
| <aucune>
 +
| FQHN ou IP de l'hôte source (obligatoire).
 +
|-
 +
| remoteUser
 +
| utilisateur
 +
| non
 +
| root
 +
| Le compte d'utilisateur à utiliser pour toutes les connexions ssh. Peut être sensible à la casse, par exemple le compte Administrateur sur Windows.
 +
|-
 +
| Description
 +
| chaîne de texte
 +
| non
 +
| <aucune>
 +
| Tout texte qui décrit la tâche.
 
|-
 
|-
 
| TimeSchedule  
 
| TimeSchedule  
| HHMM,HHMM,... || || N'a pas besoin d'être ordonné. Au moins une heure est obligatoire. '''Important:''' Utiliser le bon format HHMM est essentiel. Affa ne le vérifie pas. Un TimeSchedule mal formatté provoquera d'étranges erreurs Perl.  
+
| HHMM
 +
| oui
 +
| 2230
 +
| L'horaire à laquelle la tâche s'exécutera. Utiliser exactement 4 chiffres, pas de virgule, pas de point. '''Important :''' l'utilisation du format correct HHMM est essentielle. Des horaires mal formatés causeront d’étranges erreurs Perl. Pour obtenir plusieurs sauvegardes par jour, répéter la ligne : une ligne pour chaque horaire désiré.
 
|-
 
|-
| Description
+
| status
| texte || ||  
+
| enabled ''ou'' disabled
 +
| non
 +
| enabled
 +
| S'il est réglé à désactivé (disabled), aucune entrée «cron» ne sera faite. Vous pouvez cependant lancer une tâche manuellement.
 +
|-
 +
| DiskSpaceWarn
 +
| strict ''ou'' normal ''ou'' risky ''ou'' none
 +
| non
 +
| strict
 +
| Lance une vérification de l'espace disque après qu'une tâche soit terminée. Avec le niveau 'strict' un message d'avertissement sera envoyé si l'espace disponible est moins que la taille de la sauvegarde qui vient de s'achever. Avec les niveaux 'normal'/'risky' le message est envoyé si moins de 50%/10% de la taille de la sauvegarde reste disponible.
 +
'''Note :''' lorsque RootDir est un lien symbolique vers un autre système de fichiers, l'espace disque utilisé du système de fichiers local est vérifié à la place de celui du système de fichiers lié. Positionnez le point de montage comme RootDir pour avoir une vérification correcte.
 +
|-
 +
| Include
 +
| chemin complet
 +
| oui
 +
| <aucun>
 +
| Fichier(s) ou répertoire(s) à inclure dans la sauvegarde.
 +
|-
 +
| Exclude
 +
| chemin complet
 +
| oui
 +
| <aucun>
 +
| Fichier(s) ou répertoire(s) à exclure de la sauvegarde.
 +
|-
 +
| RootDir
 +
| chemin complet
 +
| non
 +
| /var/affa
 +
| Répertoire où stocker les archives de sauvegarde. Ne pas utiliser /home/e-smith ou /root parce que ces répertoires sont inclus dans la sauvegarde. Par conséquent, l'option «rise» ne fonctionnera pas ! Recommandée : /var/affa.
 
|-
 
|-
 
| scheduledKeep
 
| scheduledKeep
| entier >= 1 || 1|| Combien de sauvegardes programmées doivent être conservées
+
| entier >= 1
 +
| non
 +
| 1
 +
| Nombre de sauvegardes programmées à conserver.
 +
|-
 +
| dailyKeep
 +
| entier >= 0
 +
| non
 +
| 7
 +
| Nombre de sauvegardes journalières à conserver.
 
|-
 
|-
| dailyKeep<br>weeklyKeep<br>monthlyKeep<br>yearlyKeep
+
| weeklyKeep
| entier >= 0 || 7<br>4<br>12<br>2<br>|| Combien de sauvegardes quotidiennes, hebdomadaires, mensuelles ou annuelles doivent être conservées
+
| entier >= 0
 +
| non
 +
| 4
 +
| Nombre de sauvegardes hebdomadaires à conserver.
 
|-
 
|-
| SMEServer
+
| monthlyKeep
| yes ''ou'' no || yes || Positionné à 'yes', les répertoires e-smith par défaut sont automatiquement inclus et la propriété RPMCheck=yes peut être utilisée
+
| entier >= 0
 
+
| non
 +
| 12
 +
| Nombre de sauvegardes mensuelles à conserver.
 +
|-
 +
| yearlyKeep
 +
| entier >= 0
 +
| non
 +
| 2
 +
| Nombre de sauvegardes annuelles à conserver.
 +
|-
 +
| EmailAddress
 +
| nom@domaine.com
 +
| oui
 +
| root
 +
| Mettre une virgule en séparation des adresses de courriel où les messages seront envoyés.<br>'''Note :''' par défaut, Affa envoie seulement des messages en cas d'erreurs, jamais en en cas de succès (voir la propriété chattyOnSuccess).
 +
|-
 +
| RetryAttempts
 +
| entier >= 0
 +
| non
 +
| 4
 +
| Quand la valeur est > 0, Affa re-exécute une tâche en échec «RetryAttempts» fois après un délai de «RetryAfter» secondes.
 +
|-
 +
| RetryAfter
 +
| secondes >= 0
 +
| non
 +
| 900
 +
| Quand la valeur est > 0, Affa attend «RetryAfter» secondes avant de ré-exécuter la tâche après une erreur. Applicable seulement si «RetryAttempts» > 0.
 +
|-
 +
| RetryNotification
 +
| yes ''ou'' no
 +
| non
 +
| no
 +
| Quand la valeur est réglée à «non», Affa n'envoie pas de message d'erreur quand une tâche a échoué et que «RetryAttempts» est configuré (c-a-d > 0). Un message d’erreur est envoyé seulement si la dernière tentative échoue.
 
|-
 
|-
| Include[0]<br>Include[1]<br>...
+
| NRPEtrigger
| full path || || Fichiers ou répertoires supplémentaires à inclure à la sauvegarde
+
| heures
 +
| non
 +
| 24
 +
| NRPE signale une tâche comme critique quand la dernière exécution réussie date de plus de «NRPEtrigger» heures. Pour exclure la tâche de ce contrôle, mettre une valeur négative.
 
|-
 
|-
| Exclude[0]<br>Exclude[1]<br>...
+
| SambaShare
| full path || || Fichiers ou répertoires supplémentaires à exclure de la sauvegarde
+
| yes ''ou'' no
 +
| non
 +
| no
 +
| Accès aux archives de la tâche via le protocole CIFS.
 
|-
 
|-
| RPMCheck
+
| SambaValidUser
| yes ''ou'' no || no || Seulement applicable aux tâches qui sauvegardent un serveur SME 7.<br>Compares les RPM de l'hôte source avec ceux de l'hôte de sauvegarde affa. Envoie un message avec une liste de différences s'il n'y a pas correspondance. Cette vérification est utile, si vous voulez avoir la possibilité de convertir le serveur de sauvegarde en serveur de production.
+
| compte local
 +
| oui
 +
| affa
 +
| Utilisateur(s) qui a(ont) la permission d'accéder aux archives de la tâche via le protocole CIFS.
 
|-
 
|-
| DiskSpaceWarn
+
| preJobCommand<br> preJobCommandRemote
| strict ''ou'' normal ''ou'' risky ''ou'' none || strict || lance une vérification de l'espace disque après qu'une tâche soit terminée. Avec le niveau 'strict' un message d'avertissement sera envoyé si l'espace disponible est moins que la taille de la sauvegarde qui vient de s'achever. Avec les niveaux 'normal'/'risky' le message est envoyé si moins de 50%/10% de la taille de la sauvegarde reste disponible.
+
| chemin relatif vers /etc/affa/scripts/
'''Note:''' Lorsque RootDir est un lien symbolique vers un autre système de fichiers, l'espace disque utilisé du système de fichiers local est vérifié à la place de celui du système de fichiers lié. Positionnez le point de montage comme RootDir pour avoir une vérification correcte.
+
| oui
 +
| <none>
 +
| Scripts à exécuter avant le fonctionnement d'une tâche. Le nom de la tâche et le type («scheduled», «daily», etc.) sont passés en arguments au programme. Les scripts «preJobCommandRemote» sont copiés sur le serveur distant (serveur de production) puis y sont exécutés. Les scripts sont exécutés pas ordre alphabétique. Utiliser un préfixe numérique si vous avez besoin d'un ordre particulier, par exemple, 01scriptB, 02remotescriptA, 03scriptA. Utiliser les exemples inclus - prescript-sample.pl et prescriptRemote-sample.pl - comme point de départ de vos propres scripts.<br>'''Note :''' si vous utilisez le paramètre «SMEServer=yes», vous pouvez effacer le paramètre «Included» relatif aux répertoires par défaut de SME dans jobconfig.ini : ils seront sauvegardés automatiquement.
 
|-
 
|-
| localNice
+
| postJobCommand<br> postJobCommandRemote
| -19...+19 || 0 || lance le process local rsync par nice.  
+
| chemin relatif vers /etc/affa/scripts/
 +
| oui
 +
| <none>
 +
| Scripts à exécuter après le fonctionnement d'une tâche. Le nom de la tâche et le type («scheduled», «daily», etc.) sont passés en arguments au programme. Les scripts «postJobCommandRemote» sont copiés sur le serveur distant (serveur de production) puis y sont exécutés. Les scripts sont exécutés pas ordre alphabétique. Utiliser un préfixe numérique si vous avez besoin d'un ordre particulier, par exemple, 01scriptB, 02remotescriptA, 03scriptA. Utiliser les exemples inclus - postscript-sample.pl et postscriptRemote-sample.pl - comme point de départ de vos propres scripts.<br>'''Note :''' si vous utilisez le paramètre «SMEServer=yes», vous pouvez effacer le paramètre «Included» relatif aux répertoires par défaut de SME dans jobconfig.ini : ils seront sauvegardés automatiquement.
 
|-
 
|-
| remoteNice
+
| dedup
| -19...+19 || 0 || lance le process rsync de la source par nice.  
+
| yes ''ou'' no
 +
| non
 +
| no
 +
| Le but de la dé-duplication est de supprimer les fichiers dupliqués pour économiser de l'espace de sauvegarde. Quand elle est réglée à 'yes', la dé-duplication de fichier s'exécute après la fin de la synchronisation. Elle recherche les fichiers qui ont des contenus, des propriétaires, des groupes et des droits identiques et les remplace par des liens durs. La dé-duplication scanne l'archive qui vient d'être terminée et la précédente, qui sont habituellement «scheduled.0» et «daily.0» ou «scheduled.0» et «scheduled.1». Considérer ce scénario : un utilisateur a renommé des sous-répertoires ou des fichiers. «Rsync» va les voir comme des nouveaux et va les copier. La dé-duplication trouvera les copies identiques dans l'archive précédente et les remplacera par des liens durs. Pour faire fonctionner la dé-duplication, le programme «Freedup» doit être installé. Affa exécute actuellement : freedup -upg scheduled.0 <archive_précédente>.
 
|-
 
|-
| Watchdog
+
| dedupKill
| yes ''ou'' no || yes || Seulement applicable aux tâches qui sauvegardent un serveur SME 7.<br>Quand une tâche est lancée, affa installe un script chien de garde sur la source dans /etc/cron.d/, qui envoie un message d'avertissement si la prochaine tâche programmée (prise dans la propriété TimeSchedule + 10 minutes) n'a pas été lancée. Cela garantit que vous serez prévenu même en cas de panne du serveur affa. Le script chien de garde envoie un message de rappel quotidien si l'erreur persiste. La tâche lancée suivante remplace le script chien de garde avec un nouveau temps de déclenchement.  
+
| yes ''ou'' no
 +
| non
 +
| no
 +
| Quand le paramètre est réglé à 'no', la tâche ignore «affa --kill» ou «affa --killall» quand la dé-duplication est en exécution. C'est utile dans le contexte de «killAt» qui est ttypiquemment utilisé pour arrêter l'utilisation de la bande passante.
 
|-
 
|-
 
| sshPort
 
| sshPort
| port du service || 22 || Lorsque sshd sur le serveur source ou votre firewall écoute sur un port non standard, précisez le port ici.
+
| port de service
 +
| non
 +
| 22
 +
| Quand sshd de l'hôte distant (le serveur de production) écoute sur un port non-standard, régler le port ici.
 
|-
 
|-
 
| ConnectionCheckTimeout
 
| ConnectionCheckTimeout
| secondes || 120 || Avant que le process rsync démarre sur l'hôte source distant, affa vérifie la connexion ssh et se termine avec une erreur après le temps configuré, si l'hôte ne répond pas.
+
| secondes
 +
| non
 +
| 120
 +
| Affa vérifie la connexion ssh avant de démarrer le processus «rsync» et s'arrête en déclenchant une erreur au bout de la durée configurée si l'hôte ne répond pas.
 +
|-
 +
| BandwidthLimit
 +
| entier>=0 kilobits par seconde
 +
| non
 +
| 0
 +
| Limite le taux de transfert des données. La valeur 0 indique aucune limite.
 
|-  
 
|-  
 
| rsyncTimeout
 
| rsyncTimeout
| secondes || 900 || Rsync se termine si aucune donnée n'est transférée pendant le temps configuré. Cela évite un gelage permanent dans le cas d'une erreur sur le réseau.
+
| secondes
 +
| non
 +
| 900
 +
| Rsync s'arrête lorsque la durée configurée est dépassée si aucune donnée n'a été transférée. Cela évite une attente infinie en cas d'erreur réseau.
 
|-  
 
|-  
| BandwidthLimit
+
| rsyncCompress
| entier>=0 Ko/s || 0 || Limite la vitesse de transfert des données. A valeur à zero specifie qu'il n'y a pas de limite.
+
| yes ''or'' no
 +
| non
 +
| yes
 +
| Compresse les données transférées. Peut être utile avec les connections Internet lentes. Augmente la charge CPU sur les hôtes sauvegardé et distant.
 
|-  
 
|-  
| rsyncCompress
+
| rsync--inplace
| yes ''ou'' no || no || Compresse les données transférées. Peut être utile avec les connexions internet lentes. Cela augmente la charge CPU sur les hôtes source et de sauvegarde.
+
| yes ''or'' no
 +
| non
 +
| yes
 +
| Configurer à «no» si la version de «rsync» sur l'hôte distant ne prend pas en charge cette option.
 +
|-
 +
| rsync--modify-window
 +
| integer >= 0
 +
| non
 +
| 0
 +
|Lors de la comparaison de deux horodatages, «rsync» traite les horodatages comme étant égaux s'ils ne diffèrent pas plus que la valeur «modify-window». C'est normalement 0 pour une correspondance exacte. Une valeur >= 0 est utile si vous ne pouvez pas synchroniser les horloges de l'hôte distant et du serveur Affa.
 +
|-
 +
| rsyncOptions
 +
| string
 +
| non
 +
| <none>
 +
| Séquence d'option supplémentaire à transmettre à «rsync».
 
|-
 
|-
| EmailAddresses
+
| localNice
| name@domain.com,name@domain.com,... || admin|| Liste séparée par des virgules des adresses email où les messages seront envoyés.<br>'''Note:''' Par défaut, Affa n'envoie de messages que pour les erreurs, jamais en cas de succès (voir la propriété chattyOnSuccess).
+
| -19...+19
 +
| non
 +
| 0
 +
| Facteur de priorité de «rsync» sur la machine locale.
 
|-
 
|-
| RetryAttempts
+
| remoteNice
| entier >= 0 || 3 || Quand positionné à une valeur >0, Affa relance une tâche échouée RetryAttemps fois avec un délai de RetryAfter secondes.
+
| -19...+19
 +
| non
 +
| 0
 +
| Facteur de priorité de «rsync» sur la machine distante.
 
|-
 
|-
| RetryAfter
+
| killAt
| secondes >= 3 || 600 || Quand positionné à une valeur >0, attend RetryAfter secondes avant de relancer la tâche suite à une erreur. Utile seulement avec RetryAttempts>0
+
| HHMM
 +
| non
 +
| <none>
 +
| L'heure à laquelle la tâche sera arrêtée si elle était encore en fonctionnement. Vous pouvez, par exemple, utiliser ceci pour arrêter en début de matinée des tâches qui fonctionnent au travers d'Internet de façon à ce que vos utilisateurs aient toute la bande passante disponible pendant les heures de bureau.  
 
|-
 
|-
| RetryNotification
+
| resumeKilledAt
| yes ''ou'' no || yes || Quand positionné à no, Affa n'envoie pas de message d'erreur lorsqu'une tâche a échoué et que RetryAttemps est configuré. Un message d'erreur n'est envoyé que lorsque le dernier essai a échoué.
+
| HHMM
 +
| non
 +
| <none>
 +
| L'heure à laquelle une tâche arrêtée sera reprise. Cela vous permet de commencer plus tôt dans la soirée que l'heure prévue pour la sauvegarde.
 
|-
 
|-
| RetryAttempts
+
| chattyOnSuccess
| entier >= 0 || 0 || Quand positionné à une valeur >0, Affa envoie un message pour les tâches terminées avec succès et décrémente la valeur chattyOnSuccess. Lorsque la valeur atteint 0, Affa revient à son comportement par défaut et n'envoie plus de messages qu'en cas d'erreur.
+
| entier >= 0
 +
| non
 +
| 0  
 +
| Lorsqu'elle est définie sur une valeur supérieure à 0, Affa envoie un message lors de l'exécution d'une tâche réalisée avec succès et décrémente la valeur chattyOnSuccess d'une unité. Lorsque la valeur a atteint zéro, Affa revient au comportement par défaut et n'envoie des messages qu'en cas d'erreurs.
 
|-
 
|-
 
| AutomountDevice<br>AutomountPoint
 
| AutomountDevice<br>AutomountPoint
| full path  || || Unité et point de montage de l'unité de sauvegarde (ex. disque USB). L'unité est montée automatiquement avant qu'une tâche soit lancées et démontée après la fin de la tâche. Les deux propriétés doivent être remplies pour que la fonction Automount soit active.
+
| chemin complet
 +
| non
 +
| <none>
 +
| Périphérique et point de montage du périphérique de sauvegarde (par exemple, disque USB). Le périphérique est monté automatiquement avant qu'une tâche démarre et démonté après la fin de la tâche. Avec les deux propriétés vides, aucun montage automatique n'est effectué.
 
|-
 
|-
 
| AutomountOptions
 
| AutomountOptions
| chaine de caractères || || Une chaine d'options passées à la commande de montage automatique
+
| chaîne de caractères
 +
| non
 +
| <none>
 +
| Une chaîne de caractère d'options appliquée à la commande «mount».
 
|-
 
|-
 
| AutoUnmount  
 
| AutoUnmount  
| yes ''ou'' no || yes || Quand positionné à 'no' l'unité montée automatiquement reste montée après l'exécution d'Affa.
+
| yes ''ou'' no
 +
| non
 +
| yes
 +
| Configuré à «no», le périphérique monté automatiquement reste monté après le fonctionnement d'Affa.
 
|-
 
|-
| preJobCommand<br>postJobCommand
+
| Debug
| full path || || Programmes (locaux sur le serveur affa) à exécuter avant/après qu'une tâche soit lancée. Le nom de la tâche et le type (programmée, journalière etc.) sont passés en arguments au programme. Le code de sortie est de plus passé à la commande de programme post-tâche. Voir /usr/lib/affa/ pour des exemples de scripts perl.
+
| yes ''ou'' no
|-
+
| non
| RootDir
+
| no
| full path || /var/affa || Où stocker les archives de sauvegarde. N'utilisez pas /home/e-smith ou /root puisqu'ils sont inclus dans les répertoires à sauvegarder, ce qui empêcherait la fonction de conversion de fonctionner ! Répertoire conseillé : /var/affa
+
| Configurer à «yes» pour augmenter la verbosité du journal.
|-
 
| SambaShare
 
| yes ''ou'' no|| yes || Accède aux archives de la tâche via SMB.
 
 
|-
 
|-
| Debug
+
| remoteRsyncBinary
| yes ''ou'' no || no || Positionné à 'yes', donne plus de détails dans le fichier de log.
+
| chemin complet
 +
| non
 +
| /usr/bin/rsync
 +
| Si le programme «rsync» du serveur distant est situé à un emplacement non conventionnel, configurez-le ici.
 
|-
 
|-
| status
+
| remoteNiceBinary
| enabled ''ou'' disabled || enabled || Positionné à 'disable', aucune entrée cron ne sera faite. Vous pouvez encore lancer les tâches à la main.
+
| chemin complet
 +
| non
 +
| /bin/nice
 +
| Si le programme «nice» du serveur distant est situé à un emplacement non conventionnel, configurez-le ici.
 
|-
 
|-
| rsync--inplace
+
| localRsyncBinary
| yes ''ou'' no || yes || Positionné à 'no', si la version rsync de la source ne supporte pas cette option (comme rsync sur SME6)
+
| chemin complet
 +
| non
 +
| /usr/bin/rsync
 +
| Si le programme «rsync» local est situé à un emplacement non conventionnel, configurez-le ici.
 
|-
 
|-
| rsync--modify-window
+
| localNiceBinary
| entier >= 0 || 0 || En comparant deux horodatages, rsync les traite comme étant égaux s'ils ne diffèrent pas de plus de la valeur modify-window. C'est normalement 0 pour une correspondance exacte. Une valeur >= 0 est pratique si vous ne pouvez pas garder les horloges de la source et du serveur Affa synchonisées.
+
| chemin complet
 +
| non
 +
| /bin/nice
 +
| Si le programme «nice» local est situé à un emplacement non conventionnel, configurez-le ici.
 
|-
 
|-
| rsyncOptions
+
| RemoteAuthorizedKeysFile
| texte || || chaine d'options aditionnelles à passer à rsync.
+
| chemin relatif au «home» de l'utilisateur distant ou chemin complet
 +
| non
 +
| .ssh/authorized_keys2
 +
| Si l'hôte distant enregistre le fichier des clés autorisées à un emplacement non conventionnel, configurez-le ici.
 
|-
 
|-
 
| rsyncdMode
 
| rsyncdMode
| yes ''ou'' no || no || Positionné à yes pour se connecter au démon rsync de l'hôte distant (au lieu de lancer rsync over ssh).
+
| yes ''ou'' no
 +
| non
 +
| no
 +
| Configurer à «yes» pour se connecter au démon «rsync» de l'hôte distant (au lieu de le faire au travers de ssh).
 
|-
 
|-
 
| rsyncdModule
 
| rsyncdModule
| texte || AFFA || Le nom du module rsyncd (seulement applicable avec rsyncdMode=yes)
+
| chaîne de caractères
 +
| non
 +
| AFFA
 +
| Le nom du module «rsyncd» (applicable uniquement avec rsyncdMode=yes).
 
|-
 
|-
 
| rsyncdUser
 
| rsyncdUser
| texte || affa || Le nom d'utilisateur pour authentification au démon rsync (seulement applicable avec rsyncdMode=yes)
+
| chaîne de caractères
 +
| non
 +
| affa
 +
| Le nom d'utilisateur pour l'authentification au démon «rsync» (applicable seulement avec rsyncdMode=yes).
 
|-
 
|-
 
| rsyncdPassword
 
| rsyncdPassword
| texte || || Le mot de passe pour authentification au démon rsync (seulement applicable avec rsyncdMode=yes)
+
| chaîne de caractères
 +
| non
 +
| <none>
 +
| Le mot de passe pour l'authentification au démon «rsync» (applicable seulement avec rsyncdMode=yes).
 
|-
 
|-
| remoteOS
+
| globalStatus
| cygwin || || avec remoteOS=cygwin les options --send-key et --revoke-key utilisent le compte 'Administrator' et le chemin correct pour la clé publique sur un hôte distant sous Windows/Cygwin. 
+
| enabled ''ou'' disabled ''ou'' jobs
|-
+
| non
| ESXi
+
| jobs
| yes ''ou'' no || no || active le mode de sauvegarde VMware ESXi pour les machines virtuelles.<br>Voir [[Sauvegarde des machines virtuelles ESXi avec Affa]]
+
| Configurer à «enabled» ou «disabled» pour écraser les configurations des états de toutes les sections des tâches (par les réglages enregistrés dans la section [GlobalAffaConfig]). Configurée à la valeur «jobs», les configurations des états des sections des tâches sont actives.<br>'''Note :''' cette propriété n'est autorisée que dans la section [GlobalAffaConfig].
 
|-
 
|-
| ESXiVMName
+
| sendStatus
| texte || || Le nom de la VM tel qu'affiché dans le client VI.
+
| daily ''ou'' weekly ''ou'' monthly ''ou'' never
 +
| non
 +
| weekly
 +
| Définit à quelle fréquence le rapport sera envoyé.<br>'''Note :''' cette propriété n'est autorisée que dans la section [GlobalAffaConfig].  
 
|-
 
|-
| ESXiUsername
+
| SMEServer
| texte || || Le nom du client VI avec la permission de créer et détruire les instantanés (snapshots).
+
| yes ''ou'' no
 +
| non
 +
| no
 +
| Configuré à «yes», les répertoires «e-smith» par défaut sont automatiquement inclus et la propriété RPMCheck=yes peut être utilisée.<br>'''Note :''' cette propriété n'est pas implémentée dans «Affa 3 pour CentOS» ; elle a été ajoutée spécifiquement à la branche (fork) pour SME.
 
|-
 
|-
| ESXiPassword
+
| RPMCheck
| texte || || Le mot de passe de l'utilisateur ESXiUsername
+
| yes ''ou'' no
 +
| non
 +
| no
 +
| Applicable uniquement aux tâches qui sauvegardent un serveur SME. Compare l'installation des paquets de l'hôte source avec celle de l'hôte de sauvegarde affa. Envoie un message avec la liste des différences en cas de non synchronisation. Cette vérification est utile, si vous voulez avoir l'option de basculer le serveur de sauvegarde en un serveur de production à partir d'une sauvegarde. <br> '''Note :''' cette propriété n'est pas implémentée dans «Affa 3 pour CentOS» ; elle a été ajoutée spécifiquement à la branche (fork) pour SME.
 
|-
 
|-
| chunkFiles
+
| Watchdog
| texte || || Noms de fichiers qu'Affa devrait découper et compresser. Plusieurs noms doivent être séparés par un slash (/), ex. 'mysql.dump/pgsql.dump' découpe les deux fichiers mysql.dump et pgsql.dump. Avec ESXi=yes c'est implicitement positionné à '*.vmdk'. Voir aussi les options de ligne de commande --chunk-archive et --unchunk-archive
+
| yes ''ou'' no
 +
| non
 +
| yes
 +
| Applicable uniquement aux tâches qui sauvegardent un serveur SME. Lorsqu'une tâche est démarrée, affa installe un script «watchdog» sur la source dans /etc/cron.d/, qui envoie un message d'avertissement, si la prochaine tâche planifiée (extraite de la propriété TimeSchedule à laquelle est ajoutée 10 minutes) n'a pas été exécutée. Cela garantit que vous serez averti même en cas de panne du serveur affa. Le script du chien de garde envoie un message de rappel quotidien, si l'erreur persiste. La prochaine tâche d'exécution remplace le script de chien de garde par une nouvelle durée de déclenchement.<br>'''Note :''' cette propriété n'est pas implémentée dans «Affa 3 pour CentOS» ; elle a été ajoutée spécifiquement à la branche (fork) pour SME.
 
|}
 
|}
  
==== Propriétés de la configuration par défaut ====
+
==== Propriétés de configuration par défaut ====
Toutes les propriétées peuvent être positionnées par défaut dans l'enregistrement DefaultAffaConfig. C'est pratique, lorsque vous configurez plusieurs tâches similaires.  
+
Pour toutes les propriétés de type 'nom=valeur', les valeurs par défaut peuvent être configurées dans la section [GlobalAffaConfig] et sont utilisées dans toutes les configurations de tâche où la propriété correspondante est omise. Par exemple, quand ces propriétés sont fixées dans la section [GlobalAffaConfig], elles peuvent être omises dans les configurations de tâche spécifiques. C'est utile quand vous créez de nombreuses tâches similaires.  
  
Exemple : Vous voulez positionner la propriété 'localNice' à 19 pour toutes les tâches. Tapez
+
Exemple : vous voulez configurer la propriété 'localNice' à 19 pour toutes les tâches. Ajoutez alors la section suivante dans l'un de vos fichiers de configuration :
  db affa setprop DefaultAffaConfig localNice 19
+
et ne positionnez pas cette propriété pour les tâches.
+
[GlobalAffaConfig]
Les propriétés positionnées dans les tâches sont prioritaires sur les propriétés par défaut.
+
  localNice=19
  
La propriété spéciale 'sendStatus' ne s'applique que dans l'enregistrement DefaultAffaConfig. Elle contrôle le rapport d'état (status) envoyé par mail et peut prendre les valeurs 'none', 'daily', 'weekly' ou 'monthly'.  
+
Vous pouvez aussi mettre cette section dans le fichier de configuration dédié '''/etc/affa/GlobalAffaConfig.conf''' : elle sera plus facile à retrouver.
 +
En conséquence, vous n'avez pas besoin de configurer cette propriété dans vos tâches individuelles. Les propriétés définies dans cette section remplacent les valeurs par défaut.
  
Pour configurer un rapport hebdomadaire, tapez :
+
==== Propriétes des configurations globales ====
  db affa setprop DefaultAffaConfig sendStatus weekly
+
Les propriétés spéciales suivantes sont applicables à la seule section [GlobalAffaConfig] :
puis configurez cronjob :
+
<ul>
affa --make-cronjobs
+
<li>sendStatus</li>
 +
<li>globalStatus</li>
 +
</ul>
 +
 
 +
Toutes les tâches peuvent êtres désactivées à travers «cronjobs» en configurant «globalStatus» à «disabled».
 +
 +
[GlobalAffaConfig]
 +
globalStatus=disabled
 +
 
 +
Pour les remettre en service, soit effacer la ligne de configuration ci-dessus, soit configurer :
 +
   
 +
globalStatus=jobs
 +
 
 +
qui est la valeur par défaut.
  
==== Désactivation globale ====
+
Vous pouvez aussi configurer la valeur à :
Toutes les tâches peuvent être désactivées en positionnant l'enregistrement AffaGlobalDisable sur 'yes'.
+
   
  db affa set AffaGlobalDisable yes
+
globalStatus=enabled
affa --make-cronjobs
 
  
Pour réactiver :
+
qui assure l'exécution de la tâche au travers de «cronjobs» et écrase les valeurs spécifiques dans la section spécifique de la tâche.
db affa set AffaGlobalDisable no
 
affa --make-cronjobs
 
  
 
=== Utilisation et options de ligne de commande ===
 
=== Utilisation et options de ligne de commande ===
{{Note box|Les options peuvent être abrégées tant qu'elles restent uniques, ex. --mak est identique à --make-cronjobs}}
+
{{Note box|type=Note :|les options peuvent être abrégées tant qu'elles restent uniques, ex. --mak est identique à --make-cronjobs.}}
 
  '''affa --run JOB'''
 
  '''affa --run JOB'''
 +
 
Lance une tâche. Normalement effectué par cronjob.  
 
Lance une tâche. Normalement effectué par cronjob.  
  
 +
'''affa --make-cronjobs'''
 +
 +
Configure les tâches cron comme programmées dans les enregistrements de tâches. Exécutez cette commande pour appliquer les modifications des propriétés liées au temps, c’est-à-dire TimeSchedule, killAt et resumeKilledAt. Exécutez cette commande pour que les changements de configuration liés au temps, c'est-à-dire les propriétés de TimeSchedule, killAt et resumeKilledAt, soient efficients. Toutes les 15 minutes, Affa vérifie si un fichier de configuration est plus récent que le fichier cronjob et exécute la commande make-cronjobs si tel est le cas. Donc, vous n'avez pas besoin d'exécuter cette commande manuellement, vous pouvez également attendre au maximum 15 minutes avant l'entrée en vigueur de vos mises à jour.
  
  '''affa --make-cronjobs'''
+
  '''affa --configcheck'''
Configure les tâches cron comme programmées dans les enregistrements de tâches.
 
  
 +
Vérifie la syntaxe et les valeurs dans tous les fichiers de configuration trouvés dans /etc/affa/. Exécutez cette commande après avoir modifié la configuration. Les erreurs des minuscules / minuscules dans les noms de propriétés sont corrigées automatiquement.
  
 
  '''affa --send-key JOB'''
 
  '''affa --send-key JOB'''
 
  '''affa --send-key --host=TARGETHOST [--port=PORT] [--remoteOS=cygwin]'''
 
  '''affa --send-key --host=TARGETHOST [--port=PORT] [--remoteOS=cygwin]'''
Génère d'abord la clé DSA pour le serveur Affa, si cela n'a pas déjà été fait. Envoie ensuite la clé publique à l'hôte 'remoteHostName' comme configuré dans l'enregistrement de la tâche et génère l'entrée ssh known host (hôte connu) spécifique à la tâche.
 
{{Note box|Initialement, lorsque vous faites cette étape, vous aurez besoin d'activer temporairement "Autoriser l'authentification par SSH à l'aide de mots de passe standards" sur le serveur de production.}}
 
{{Note box|<nowiki>l'option --send-key fonctionne pour SME Server comme serveur distant et pour les systèmes sur lesquels les clés publiques sont stockées dans /root/.ssh/authorized_keys2 et sur lesquels les commandes /bin/cat, /bin/touch, /bin/grep et /bin/mv sont disponibles. Avec remoteOS=cygwin cela fonctionne pour les serveurs distants sous Cygwin/Windows.</nowiki>}}
 
  
 +
Génère d'abord la clé RSA pour le serveur Affa, si cela n'a pas déjà été fait. Envoie ensuite la clé publique à l'hôte 'remoteHostName' comme configuré dans l'enregistrement de la tâche et génère l'entrée ssh known host (hôte connu) spécifique à la tâche.
 +
{{Note box|type=Note :|initialement, lorsque vous faites cette étape, vous aurez besoin d'activer '''temporairement''' «Autoriser l'authentification par SSH à l'aide de mots de passe standards» sur le serveur de production.}}
 +
{{Note box|type=Note :|<nowiki>l'option --send-key fonctionne pour SME Server comme serveur distant et pour les systèmes sur lesquels les clés publiques sont stockées dans /root/.ssh/authorized_keys2 et sur lesquels les commandes /bin/cat, /bin/touch, /bin/grep et /bin/mv sont disponibles. Avec remoteOS=cygwin cela fonctionne pour les serveurs distants sous Cygwin/Windows.</nowiki>}}
 +
 +
'''affa --check-connections [JOB JOB ...]'''
 +
 +
Vérifie la connexion ssh et, si nécessaire, rsyncd auth, pour toutes les tâches données en arguments. Sans aucun argument, toutes les tâches sont vérifiées. Pour les tâches pour lesquelles la clé publique n'avait pas encore été envoyée, il vous sera demandé le mot de passe et la clé sera envoyée ensuite.
  
 
  '''affa --full-restore JOB [ARCHIVE]'''
 
  '''affa --full-restore JOB [ARCHIVE]'''
Effectue une restauration totale depuis l'archive de sauvegarde [ARCHIVE] sur le serveur source distant comme défini dans l'enregistrement JOB. Si [ARCHIVE] n'est pas donnée, l'archive 'scheduled.0' est utilisée comme défaut. La restauration totale reconstruit le serveur comme il était au moment de la sauvegarde. Après la restauration l'hôte source est redémarré.
 
  
 +
Effectue une restauration totale depuis l'archive de sauvegarde [ARCHIVE] sur le serveur source distant comme défini dans l'enregistrement JOB. Si [ARCHIVE] n'est pas donnée, l'archive 'scheduled.0' est utilisée par défaut. La restauration totale reconstruit le serveur comme il était au moment de la sauvegarde. Après la restauration, l'hôte source est redémarré.
 +
Avec l'option --preserve-newer=yes, les fichiers du serveur distant avec un heure de modification plus récente que celle de la sauvegarde ne sont pas écrasés.
 +
Avec l'option --delete=yes, tous les fichiers du serveur distant, qui ne sont pas dans la sauvegarde, sont effacés.
  
'''affa --rise [--all] JOB [ARCHIVE]'''
+
Si le paramètre "SMEServer=yes" est défini, «signal-event pre-restore» et «signal-event post-upgrade» seront automatiquement exécutés.
Lance une restauration totale depuis l'archive de sauvegarde [ARCHIVE] sur le serveur Affa <b>(!)</b> comme défini dans l'enregistrement JOB. Autrement dit, une fois terminée, le serveur de sauvegarde reboote comme un clone du serveur source. Assurez-vous d'avoir arrêté le serveur source avant de rebooter le serveur de sauvegardes, sinon l'interface réseau ne sera pas activée. Cela est important, lorsque vous lancez --rise à distance. La fonction --rise ne fonctionne qu'avec les serveurs SME 7et ne devrait être utilisée que sur les serveurs de sauvegardes dédiés.
 
  
Avec l'option --all, tous les fichiers et répertoires de l'archive tels que définis par les propriétés include[] sont restaurés. Les fichiers et répertoires avec le même nom sur le serveur Affa seront écrasés et ne peuvent pas être restaurés par un undoris. Cela ne devrait pas poser de problème sur un serveur Affa dédié qui ne contient aucune autre donnée. Après un éventuel undorise ces données aditionnelles restaurées doivent être supprimées manuellement.
+
'''affa --list-archives JOB'''
  
Remarquez que le processus rise sauvegarde le serveur Affa lui-même avant d'effectuer la restauration de l'archive. Cette sauvegarde est utilisée par un éventuel undorise pour restaurer le serveur Affa. Seulement les fichiers et répertoires standards sont sauvegardés. Les données dans des endroits non standard (comme /opt) ne sont pas touchées et existeront encore après le rise. Voir aussi : [[Backup_server_config#Standard_backup_.26_restore_inclusions]]
+
Affiche un tableau de toutes les archives actuelles de la tâche «JOB» avec la date, le nombre de fichiers, la taille et les octets reçus. Tandis que la colonne «buTime» affiche l'heure de synchronisation réelle, la colonne «ddTime» montre la durée de l'exécution de la déduplication. «DdYld» est le rendement de déduplication gagné en bits.
  
 +
<small><pre>
 +
Affa version 3.2.2.3-7 on affa-3.mondomaine.com
 +
+------------------------------------------------------------------------------+
 +
| Job: fshare-ak                                                              |
 +
| Description: Fileserver AK                                                  |
 +
| Directory: /var/affa/fshare-ak/                                              |
 +
| Hostname: 10.204.104.4                                                      |
 +
| Email: sysadmin@mondomaine.com                                                |
 +
+-----+----------------------+--------+--------+-------+-------+-------+-------+
 +
| Run | Completion date      | buTime | ddTime | ddYld | Files | Size  | Recvd |
 +
+-----+----------------------+--------+--------+-------+-------+-------+-------+
 +
| Y 0 | Wed 2010-06-23 20:26 | 11m53s |      - |    - |  412k |  143G |  470M |
 +
+-----+----------------------+--------+--------+-------+-------+-------+-------+
 +
| M11 | Sun 2010-08-29 20:22 |  7m50s |      - |    - |  417k |  153G |  14M |
 +
| M10 | Sun 2010-09-26 20:23 | 8m57s  |      - |    - |  430k |  156G |  14M |
 +
| M 9 | Sun 2010-10-31 20:25 | 10m05s |      - |    - |  448k |  161G |  15M |
 +
| M 8 | Sun 2010-11-28 20:31 | 16m42s |      - |    - |  463k |  167G |  17M |
 +
| M 7 | Sun 2011-01-02 20:48 | 33m07s |      - |    - |  486k |  173G |  1.1G |
 +
| M 6 | Sun 2011-01-30 20:33 | 18m54s |      - |    - |  493k |  176G |  24M |
 +
| M 5 | Sun 2011-02-27 20:28 | 13m31s |      - |    - |  490k |  176G |  19M |
 +
| M 4 | Sun 2011-03-27 20:28 | 13m08s |      - |    - |  491k |  175G |  17M |
 +
| M 3 | Sun 2011-05-01 20:30 | 15m41s |      - |    - |  493k |  179G |  18M |
 +
| M 2 | Sun 2011-05-29 20:28 | 13m40s |      - |    - |  494k |  182G |  31M |
 +
| M 1 | Sun 2011-06-19 20:26 | 11m20s |      - |    - |  493k |  183G |  17M |
 +
| M 0 | Sun 2011-07-03 20:28 | 13m46s |      - |    - |  496k |  183G |  18M |
 +
+-----+----------------------+--------+--------+-------+-------+-------+-------+
 +
| W 3 | Sun 2011-07-10 20:28 | 13m38s |      - |    - |  479k |  180G |  16M |
 +
| W 2 | Mon 2011-07-11 20:35 | 20m27s |      - |    - |  479k |  180G |  301M |
 +
| W 1 | Fri 2011-07-15 20:30 | 15m53s |      - |    - |  480k |  180G |  62M |
 +
| W 0 | Sun 2011-07-24 19:39 |  9m25s |      - |    - |  482k |  181G |  16M |
 +
+-----+----------------------+--------+--------+-------+-------+-------+-------+
 +
| D 6 | Thu 2011-07-28 19:42 | 12m22s |      - |    - |  483k |  182G |  176M |
 +
| D 5 | Fri 2011-07-29 23:29 | 11m10s |  5h33m |  45G |  483k |  182G |  16M |
 +
| D 4 | Sat 2011-07-30 19:53 | 23m26s |  2h30m |  8.3G |  483k |  182G |  17M |
 +
| D 3 | Sun 2011-07-31 20:07 | 37m31s |  4m47s |  8.3G |  483k |  182G |  17M |
 +
| D 2 | Mon 2011-08-01 20:44 |  1h14m |  7h50m |  8.5G |  484k |  182G |  630M |
 +
| D 1 | Tue 2011-08-02 20:02 | 32m28s | 12h20m |  8.3G |  484k |  182G |  74M |
 +
| D 0 | Wed 2011-08-03 19:58 | 28m46s | 11h01m |  8.5G |  484k |  182G |  214M |
 +
+-----+----------------------+--------+--------+-------+-------+-------+-------+
 +
| S 0 | Thu 2011-08-04 20:00 | 30m28s | 11h52m |  8.5G |  484k |  182G |  203M |
 +
+-----+----------------------+--------+--------+-------+-------+-------+-------+
 +
</pre></small>
  
  '''affa --undo-rise'''
+
  '''affa --list-archives [--csv] JOB'''
Cette fonction reconvertit en serveur de sauvegarde un serveur Affa préalablement converti en serveur de production. Après un redémarrage, toutes les tâches configurées fonctionneront à nouveau.
 
  
 +
Avec l'option --csv, la sortie est dans le format séparé par des points virgules pour la lecture machine.
 +
<small><pre>
 +
Archive:Count;Date;Files;Size;RootDirFilesystemAvail;RootDirFilesystemUsed;valid;TotalBytesReceived;ExecutionTime;DedupTotalFiles;DedupReplacedFiles;DedupSavedBytes;DedupExectime;DedupDate
 +
monthly;00000;201509270631;393237;37252509103;166889260;47876936;yes;1327370;1160638358;99;;;;;
 +
weekly;00003;201510040531;390273;37042612135;164566692;50199504;yes;1117726;45430532;59;;;;;
 +
weekly;00002;201510110531;395553;37299589800;162612204;52153992;yes;1117092;92369237;64;;;;;
 +
weekly;00001;201510180531;403831;37707599172;161855844;52910352;yes;1317083;148317764;64;;;;;
 +
weekly;00000;201510250531;406509;38146200127;161041156;53725040;yes;1104759;64083948;63;;;;;
 +
daily;00006;201510310531;415663;39248862982;162979176;51787020;yes;1958110;198060283;66;;;;;
 +
daily;00005;201511010531;411014;38563389171;163061136;51705060;yes;1156506;48903675;75;;;;;
 +
daily;00004;201511020531;408910;38612857040;162359124;52407072;yes;1007434;210812387;75;;;;;
 +
daily;00003;201511030531;410615;37815861577;162026060;52740136;yes;1524069;162697515;67;;;;;
 +
daily;00002;201511040531;414784;38131734213;161990024;52776172;yes;1571657;134250735;63;;;;;
 +
daily;00001;201511050531;420780;38433895988;161906580;52859616;yes;2021507;149388808;103;;;;;
 +
daily;00000;201511060531;425920;38677614350;161778812;52987384;yes;1987971;166510621;71;;;;;
 +
scheduled;00000;201511070531;425663;38815712018;161612600;53153596;yes;2003540;139603231;68;;;;;
 +
</pre></small>
  
  '''affa --unchunk-archive JOB ARCHIVE'''
+
  '''affa --status [--csv]'''
Concatène et décompresse tous les fichiers découpés dans l'archive ARCHIVE de la tâche JOB pour rendre l'archive prête pour une restauration. Notez que l'archives la plus récente scheduled.0 n'est jamais découpée et donc qu'elle peut être restaurée telle quelle sans re-concaténation préalable.
 
  
 +
Affiche un tableau de toutes les tâches configurées avec le statut de validation, l'heure de la dernière et la prochaine exécution, la taille de l'archive la plus récente, la durée d'exécution de la dernière exécution et le nombre de sauvegardes conservées ce jour (S), quotidiennement (D), hebdomadaire (W) mensuelles (M) et annuelles (Y). Si la dernière fois indique «échoué», le travail n'a pas fonctionné dans les dernières 24 h. Pour les tâches désactivées, «Last» affiche toujours «échoué» après 24 h. Pour voir la date et l'heure de la dernière exécution de ces tâches, utilisez l'option --list-archives. La colonne «Suivant» indique l'heure à laquelle la prochaine exécution sera lancée, si «Activé» est à «oui». La colonne «ddYld» indique le rendement de déduplication en bits.
  
  '''affa --chunk-archive JOB ARCHIVE'''
+
<small><pre>
Découpe et compresse tous les fichiers dont les noms correspondent à la propriété chunkFiles pour économiser l'espace disque. Cela ne devrait être utilisé que comme l'inverse de --unchunk-archive. Les découpages sont stockés en fichiers bzip2 dans un répertoire nommé FILENAME.affa-chunks avec 8 niveaux de profondeur.
+
Affa version 3.2.2.3-7 on affa-3.mondomaine.com
 +
+--------------+-----+-------+--------+-------+-------+-------+----------------+
 +
| Job          | ENA |  Last |  Time | Next |  Size | ddYld | N of S,D,W,M,Y |
 +
+--------------+-----+-------+--------+-------+-------+-------+----------------+
 +
| ads-ak      | yes | 20:20 |  0m29s | 20:20 |  28M |    - |  1, 7, 2, 0, 0 |
 +
| ak-user-ma.. | yes | 22:31 |  1m51s | 22:30 |  170M |    - |  3, 7, 4, 6, 0 |
 +
| azubi-1      | yes | 03:39 |  3h24m | 00:15 |  44G |  1.2G |  1, 7, 4,10, 1 |
 +
| dcpant      | yes | 03:06 |  1m03s | 03:05 |  1.3G |    - |  1, 7, 4,10, 1 |
 +
| eshare      | yes | 21:06 | 21m01s | 20:45 |  24G |  178M |  1, 7, 4,10, 1 |
 +
| etherpad    | yes | 20:40 |  0m13s | 20:40 |  3.1M |    - |  1, 7, 4, 2, 0 |
 +
| fazubi      | yes | 08:16 | 11h16m | 21:00 |  132G |  3.3G |  1, 7, 4,10, 1 |
 +
| fschare-rh  | yes | de-duplicating (pid 9719)              |  1, 7, 4,10, 1 |
 +
| fsh-02      | yes | 07:53 | 12h23m | 19:30 |  182G |  8.5G |  1, 7, 4,10, 1 |
 +
| fshare-ak2  | yes | 00:30 |  0m26s | 00:30 |  415M |  544k |  1, 7, 4,10, 1 |
 +
| helpdesk    | yes | 21:27 |  2m16s | 21:25 |  895M |  138k |  1, 7, 4,10, 0 |
 +
| it-share    | yes | running rsync (pid 9744)              |  1, 7, 1, 0, 0 |
 +
| lightroom    | yes | waiting (pid 9528)                    |  1, 7, 4, 2, 0 |
 +
| localhost    | yes | 02:15 |  0m08s | 02:15 |  395k |    - |  1, 7, 2, 0, 0 |
 +
| mediawiki    | yes | 16:10 |  0m06s | 19:40 |  1.1G |  6.7M |  3, 7, 4,10, 1 |
 +
| mshare      | yes | 00:48 |  1h33m | 23:15 |  18G |  2.4G |  1, 7, 4,10, 1 |
 +
| wshare      | yes | 00:34 |  1h49m | 22:45 |  23G |  484M |  1, 7, 4,10, 1 |
 +
+--------------+-----+-------+--------+-------+-------+-------+----------------+
 +
2 tâches désactivées ne sont pas listées. Utilisez l'option --all pour les afficher.
 +
</pre></small>
 +
Avec l'option --csv,  la sortie est dans le format séparé par des points virgules pour la lecture machine.
  
 +
'''affa --show-config-pathes [--csv] [JOB JOB ...]'''
  
 +
Imprime les chemins d'accès complets du fichier où la section de la tâche JOB est définie.
  
  '''affa --create-backup-file JOB [ARCHIVE] [--outfile=FILE]'''
+
  '''affa --show-default-config'''
Crée une archive tar gzippée FILE depuis l'ARCHIVE de la tâche JOB. Pendant la création la somme MD5 est calculée puis le fichier tar enregistré lui est comparé. L'archive par défaut est schedule.0 et le fichier FILE par défaut est./smeserver.tg. La somme de contrôle est écrite dans FILE.md5sum.
 
  
Un fichier smeserver.tgz stocké sur un disque USB peut être utilisé pour restauration lors d'une nouvelle installation de SME Server.
+
Imprime une liste de tous les noms de propriétés autorisés avec leurs valeurs par défaut. Ces valeurs sont utilisées, lorsqu'elles sont omises dans les sections de tâche.
  
 +
'''affa --show-schedule [--all]'''
  
'''affa --list-archives [--csv] JOB'''
+
Imprime un calendrier «graphique» pour tous les travaux activés. La résolution est de 30 minutes. Un caractère 'S' marque les heures de début programmées. La durée des travaux est marquée avec des caractères «=».
Affiche un tableau de toutes les archives de la tâche JOB existantes, avec la date, le nombre de fichiers, la taille et l'espace disque utilisé.  
 
 
<small><pre>
 
<small><pre>
Affa version 2.0.0-rc4 on affa1.mydomain.de (10.204.48.2)
+
Affa version 3.2.2.3-7 on affa-3.mondomaine.com
+------------------------------------------------------------------------------+
+
              TIME 12:00    16:00    20:00    0:00    4:00    8:00
| Job: primmail                                                                |
+
            fsh-02 -------- -------S ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ --------
| Description: Mailserver Albstadt                                            |
+
            ads-ak -------- -------- S------- -------- -------- --------
| Directory: /var/affa/primmail/                                              |
+
          etherpad -------- -------- -S------ -------- -------- --------
| Hostname: 10.204.144.2                                                      |
+
            eshare -------- -------- -S~----- -------- -------- --------
| Email: admin@mydomain.de                                            |
+
            fazubi -------- -------- --S~~~~~ ~~~~~~~~ ~~~~~~~~ ~-------
+-------+-----------------------+-----------+----------------+--------+--------+
+
          helpdesk -------- -------- --S----- -------- -------- --------
| Run  | Completion date      | Exec Time |          Files |  Size |  Recvd |
+
          it-share -------- -------- ---S=~~~ ~~~~~~~~ ~~~~~~~- -------- busy
+-------+-----------------------+-----------+----------------+--------+--------+
+
            wshare -------- -------- -----S~~ ~~------ -------- --------
| M 9  | Sun 2008 Mar 02 06:11 |  0h29m47s |        679010 |  80GB |  60MB |
+
ak-user-management -------- -------- -----S-- -------- -------- --------
| M 8  | Sun 2008 Mar 30 06:12 |  0h26m59s |        701683 |  83GB |  48MB |
+
         fschare-rh -------- -------- -----S=- -------- --~----- -------- busy
| M 7  | Sun 2008 Apr 27 06:16 |  0h28m01s |        731332 |  87GB |  47MB |
+
            mshare -------- -------- ------S= ~~------ -------- --------
| M 6  | Sun 2008 Jun 01 06:20 |  0h27m37s |        755529 |  90GB |  50MB |
+
          azubi-1 -------- -------- -------- S=~~~~~~ -------- --------
| M 5  | Sun 2008 Jun 29 06:24 |  0h28m39s |        800200 |  94GB |  52MB |
+
         fshare-ak2 -------- -------- -------- -S------ -------- --------
| M 4  | Sun 2008 Jul 27 06:28 |  0h29m10s |        835398 |  99GB |  59MB |
+
        mediawiki -------- -------- -------- ---S---- -------- ----S---
| M 3  | Sun 2008 Aug 31 06:34 |  0h34m53s |        869409 |  101GB |  65MB |
+
        localhost -------- -------- -------- ----S--- -------- --------
| M 2  | Sun 2008 Sep 28 06:38 |  0h33m19s |        910889 |  106GB |  59MB |
+
            dcpant -------- -------- -------- ------S- -------- --------
| M 1  | Sun 2008 Oct 26 06:42 |  0h38m41s |        932627 |  110GB |  61MB |
+
        lightroom -------- -------- -------- -------- -------- S------- busy
| M 0  | Sun 2008 Nov 30 06:48 |  0h51m44s |        954090 |  116GB |  75MB |
+
Symboles: S=programmé K=stoppé R=reprise '='=rsync '~'=deduplication
+-------+-----------------------+-----------+----------------+--------+--------+
+
2 tâches désactivées ne sont pas listées. Utilisez l'option --all pour les afficher.
| W 3  | Sun 2008 Dec 14 06:50 |  0h53m34s |         962267 |  118GB |  68MB |
 
| W 2  | Sun 2008 Dec 21 06:52 |  0h53m11s |        974914 |  120GB |  69MB |
 
| W 1  | Wed 2008 Dec 24 06:52 |  0h48m58s |        974536 |  120GB |  64MB |
 
| W 0  | Sun 2008 Dec 28 06:58 |  0h39m01s |        977003 |  120GB |  61MB |
 
+-------+-----------------------+-----------+----------------+--------+--------+
 
| D 6  | Tue 2008 Dec 30 06:52 |  0h54m45s |        976872 |  120GB |  77MB |
 
| D 5  | Wed 2008 Dec 31 06:52 |  0h49m10s |        977764 |  120GB |  63MB |
 
| D 4  | Thu 2009 Jan 01 06:28 |  0h28m09s |        977879 |  120GB |  60MB |
 
| D 3  | Fri 2009 Jan 02 06:53 |  0h53m21s |        978144 |  120GB |  68MB |
 
| D 2  | Sat 2009 Jan 03 06:53 |  0h53m15s |        978072 |  120GB |  60MB |
 
| D 1   | Sun 2009 Jan 04 06:53 |  0h53m16s |        976478 |  120GB |  70MB |
 
| D 0  | Mon 2009 Jan 05 06:52 |  0h52m42s |         977062 |  120GB |  61MB |
 
+-------+-----------------------+-----------+----------------+--------+--------+
 
| S 1  | Mon 2009 Jan 05 17:57 |  0h27m48s |        976353 |  120GB |  98MB |
 
| S 0  | Tue 2009 Jan 06 06:52 |  0h52m55s |        976539 |  120GB |  70MB |
 
+-------+-----------------------+-----------+----------------+--------+--------+
 
 
</pre></small>
 
</pre></small>
Avec --csv, le tableau est généré selon un format séparé par des deux-points (:) lisible par les programmes.
 
  
 +
'''affa --log-tail [JOB]'''
  
'''affa --status [--csv]'''
+
Affiche la fin du fichier journal de la tâche JOB avec la mise à jour en direct. Cette commande est identique à :
Affiche un tableau de toutes les tâches actives (status enabled), avec l'heure de dernier et prochain lancement, la taille, l'espace disque utilisé par la plus récente archive, la date d'exécution du dernier lancement, et le nombre d'archives programmées (S), quotidiennes (D), hebdomadaires (W), mensuelles (M) et annuelles (Y). Le dernier lancement (colonne 'Last') affiche 'failed' si une tâche n'a pas été lancée dans les dernières 24h.  Pour les tâches désactivées, 'Last' affiche toujours 'failed' au bout de 24 h. Pour voir la date et l'heure du dernier lancement de ces tâches, utilisez l'option --list-archives. La colonne 'Next' montre l'heure à laquelle le prochain lancement aura lieu, si 'Enabled' est à 'yes'.
+
   
<small><pre>
+
tail -n 50 -f /path/to/logfile
Affa version 2.0.0-rc4 on backup.mydomain.de (10.204.48.2)
+
 
+----------------+-----+-------+-----------+-------+-------+----------------+
+
Sans l'argument JOB, le fichier journal global est affiché.
| Job            | ENA |  Last | Exec Time |  Next |  Size | N of S,D,W,M,Y |
+
 
+----------------+-----+-------+-----------+-------+-------+----------------+
+
  '''affa --send-status'''
| erp-alb-rsyncd | yes | 00:20 |  0h00m14s | 00:20 |  46MB |  1, 7, 4,10, 0 |
 
| erp-fra-rsyncd | yes | 02:46 |  0h01m03s | 02:45 | 712MB | 1, 7, 4,10, 0 |
 
| esxi-TS-W2K    | yes | 00:37 |  4h22m08s | 20:15 |  60GB |  1, 7, 1, 0, 0 |
 
| esxi-W2KR2    | yes | 02:22 |  3h52m09s | 22:30 |  40GB |  1, 7, 1, 0, 0 |
 
| helpdesk      | yes | 00:25 |  0h00m47s | 00:25 | 117MB |  1, 7, 4,10, 0 |
 
| imageserv      | yes | running (pid 16477)              |  1, 7, 4,10, 0 |
 
| intraweb      | yes | 06:34 |  0h04m50s | 18:00 | 2.1GB |  2, 7, 4,10, 0 |
 
| pdcalb        | yes | 21:19 |  0h14m27s | 21:05 |  89GB |  1, 7, 4,10, 0 |
 
| pdcfra        | yes | 04:18 | 0h03m33s | 04:15 |  33GB |  1, 7, 4,10, 0 |
 
| primmail      | yes | 06:52 |  0h52m55s | 17:30 | 120GB |  2, 7, 4,10, 0 |
 
| rayofhope      | yes | 21:52 |  0h07m40s | 21:45 |  26GB |  1, 7, 4,10, 0 |
 
| smecrmpg      | yes | 22:35 |  0h00m21s | 22:35 |  70MB |  1, 7, 4,10, 0 |
 
| sozserv        | yes | 02:09 |  0h04m03s | 02:05 | 5.9GB |  1, 7, 4,10, 0 |
 
| wiki          | yes | 03:45 |  0h00m27s | 03:45 | 278MB |  1, 7, 4, 8, 0 |
 
+----------------+-----+-------+-----------+-------+-------+----------------+
 
| az32share      |  no | -    |  0h00m22s | 03:05 | 1.3GB |  1, 7, 4, 8, 0 |
 
+----------------+-----+-------+-----------+-------+-------+----------------+
 
</pre></small>
 
Avec --cxv, le tableau est généré selon un format séparé par des deux-points (:) lisible par les programmes.
 
  
 +
Envoie la table d'état, la liste de l'utilisation du disque et de l'archive de toutes les tâches aux adresses de messagerie configurées dans la section [GlobalAffaConfig].
  
 
  '''affa --disk-usage'''
 
  '''affa --disk-usage'''
Affiche l'utilisation actuelle du disque pour les répertoires racine de tous les systèmes de fichiers.
+
 
 +
Indique l'utilisation actuelle du disque de tous les systèmes de fichiers de répertoire racine.
 +
 
 
<small><pre>
 
<small><pre>
Affa version 2.0.0-rc4 on backup2.mydomain.de (10.204.0.52)
+
Affa version 3.2.2.3-7 on affa-3.mondomaine.de
 
+------+--------+--------+----------------------------------------------------+
 
+------+--------+--------+----------------------------------------------------+
 
| Use% |  Used |  Avail | Root Dir                                          |
 
| Use% |  Used |  Avail | Root Dir                                          |
Line 506: Line 849:
 
+------+--------+--------+----------------------------------------------------+
 
+------+--------+--------+----------------------------------------------------+
 
</pre></small>
 
</pre></small>
Avec --cxv, le tableau est généré selon un format séparé par des deux-points (:) lisible par les programmes.
+
Avec l'option --csv, la sortie est dans le format séparé par des points virgules pour la lecture machine.
 +
 
 +
'''affa --cleanup JOB'''
 +
 
 +
Après avoir abaissé une valeur de conservation, par ex. par ScheduleKeep, les archives avec un indice plus élevé que configuré, ne seront plus supprimées automatiquement et existeront toujours. Cette option trouve ces archives et les supprime définitivement après confirmation. Lors de l'exécution de la commande de nettoyage sur un disque USB connecté localement, montez manuellement le disque USB AVANT d'exécuter cette commande. Lorsque vous avez terminé, démontez manuellement le disque USB. Cette exigence peut s’appliquer à certaines des autres commandes répertoriées ici.
 +
 
 +
'''affa --rename-job JOB NouveauNom'''
 +
 
 +
Renomme la tâche JOB en NouveauNom y compris dans le nom de section et dans les répertoires d'archivage.
 +
 
 +
'''affa --move-archive JOB NouveauRepertoireRacine'''
 +
 
 +
Déplace le répertoire d'archivage de la tâche JOB vers le répertoire racine NouveauRepertoireRacine et ajuste la valeur de la propriété RootDir. NouveauRepertoireRacine doit être un chemin complet commençant par une barre oblique. Comme le déplacement à travers le système de fichiers (par ex. d'un disque USB externe vers un disque local) n'est pas possible, Affa utilise une commande «copie» dans ce cas et efface le répertoire source après. En fonction de la taille de l'archive, la copie à travers les systèmes de fichiers peut durer longtemps.
 +
{{Tip box|type=Astuce :|voir également le paragraphe 8.2, plus bas.}}
 +
 
 +
'''affa --delete-job [--revoke-key] JOB'''
 +
 
 +
Efface irréversiblement une tâche, y compris toutes les archives, la configuration et les bases de données attachées. En passant l'option '--revoke-key', la clé publique sur le serveur distant sera détruite.
  
 +
'''affa --revoke-key JOB'''
 +
'''affa --revoke-key --host=TARGETHOST [--port=PORT] [--remoteOS=cygwin]'''
  
'''affa --show-schedule [--all]'''
+
Détruit la clé RSA publique sur le serveur distant.
Affiche un calendrier 'graphique' de toutes les tâches actives. La résolution est de 30 minutes. Un 'X' indique les heures de lancement programmés. La durée de la dernière exécution est marquée avec des '='.
+
{{Note box|type=Note :|<nowiki>l'option --revoke-key seule fonctionne sur SME Server comme serveur distant et pour les systèmes où les clés sont stockées dans /root/.ssh/authorized_keys2 Avec remoteOS=cygwin cela fonctionne pour les serveurs distants sous Cygwin/Windows.</nowiki>}}
<small><pre>
 
Affa version 2.0.0-rc4 on backup.mydomain.de (10.204.48.2)
 
          TIME 0:00    4:00    8:00    12:00    16:00    20:00
 
erp-alb-rsyncd X------- -------- -------- -------- -------- --------
 
      helpdesk X------- -------- -------- -------- -------- --------
 
    esxi-W2KR2 =====--- -------- -------- -------- -------- -----X==
 
  esxi-TS-W2K ==------ -------- -------- -------- -------- X=======
 
    imageserv ---X---- -------- -------- -------- -------- --------
 
      sozserv ----X--- -------- -------- -------- -------- --------
 
erp-fra-rsyncd -----X-- -------- -------- -------- -------- --------
 
          wiki -------X -------- -------- -------- -------- --------
 
        pdcfra -------- X------- -------- -------- -------- --------
 
      primmail -------- ----X=-- -------- -------- ---X---- --------
 
      intraweb -------- -----X-- -------- -------- ----X--- --------
 
        pdcalb -------- -------- -------- -------- -------- --X-----
 
    rayofhope -------- -------- -------- -------- -------- ---X----
 
      smecrmpg -------- -------- -------- -------- -------- -----X--
 
1 disabled jobs not listed. Use --all to display.
 
</pre></small>
 
  
  
  '''affa --send-status'''
+
  '''affa --kill JOB'''
Envoie le tableau d'état, l'espace disque utilisé et la liste des archives de toutes les tâches à l'adresse email configurée dans l'enregistrement 'DefaultAffaConfig'. Cette commande est utilisée par la tâche cron 'affa status'.
 
  
 +
Termine la tâche en cours JOB et tous les processus fils (les processus rsync).
  
  '''affa --mailtest JOB'''
+
  '''affa --killall'''
Envoie un email de test aux adresses email configurées dans l'enregistrement de la tâche. Avec la propriété 'Watchdog' à 'yes', un email de test est envoyé depuis le serveur distant aussi. Utilisez cela pour vérifier que l'envoi des mails fonctionne.<br>
 
'''Note:''' Par défaut, Affa n'envoie des messages qu'en cas d'erreur, jamais en cas de succès (voir la propriété 'chattyOnSuccess').
 
  
 +
Terminates all running jobs.
  
  '''affa --cleanup JOB'''
+
  '''affa --mailtest JOB'''
Après que vous ayez diminué le temps de conservation (scheduledKeep), les archives avec un indice plus élevé ne seront plus supprimées automatiquement et existeront toujours. Cette option trouve ces archives et les supprime.
 
  
 +
Envoie un courriel de test aux adresses électroniques configurées dans l'enregistrement de la tâche. Avec la propriété 'Watchdog' à 'yes', un courriel de test est aussi envoyé depuis le serveur distant. Utilisez cette fonctionnalité pour vérifier que l'envoi des courriels fonctionne.<br>
  
'''affa --rename-job JOB NEWNAME'''
+
{{Note box|type=Note :|par défaut, Affa n'envoie des messages qu'en cas d'erreur, jamais en cas de succès (voir la propriété 'chattyOnSuccess').}}
Renomme la tâche JOB en NEWNAME, y compris tous les enregistrements de la base de données et les répertoires d'archive.
 
  
 +
'''affa --nrpe [JOB JOB ...]'''
  
'''affa --move-archive JOB NEWROOTDIR'''
+
Checks for jobs that were not run the last NRPRtrigger hours and reports them as failed. A Nagios/ICINGA NRPE complient message is printed and exit status returned.
Déplace le répertoire d'archive de JOB vers NEWROOTDIR et ajuste la propriété RootDir. NEWROOTDIR doit être un chemin complet (full path) commençant par un slash. Comme le déplacement d'un système de fichiers à un autre (par exemple d'un disque USB à un disque local) n'est pas possible, Affa se sert dans ce cas d'une commande de copie et efface ensuite le répertoire source. Selon la taille de l'archive, la copie d'un système de fichiers à l'autre peut prendre longtemps.
 
  
 +
'''affa --version'''
  
'''affa --delete-job [--revoke-key] JOB'''
+
Displays the Affa version number and checks Samba and Freedup installation.
Efface irréversiblement une tâche, y compris toutes les archives, la configuration et les bases de données attachées. En passant l'option '--revoke-key', la clé publique sur le serveur distant sera détruite.
 
  
 +
'''affa --warranty'''
  
'''affa --revoke-key JOB'''
+
Displays the disclaimer of liability.
'''affa --revoke-key --host=TARGETHOST [--port=PORT] [--remoteOS=cygwin]'''
 
Détruit la clé DSA publique sur le serveur distant.
 
{{Note box|<nowiki>L'option --revoke-key seule fonctionne sur SME Server comme serveur distant et pour les systèmes où les clés sont stockées dans /root/.ssh/authorized_keys2 Avec remoteOS=cygwin cela fonctionne pour les serveurs distants sous Cygwin/Windows.</nowiki>}}
 
  
 +
'''affa --license'''
  
'''affa --check-connections'''
+
Displays the license Affa is released under.
Contrôle le login ssh pour toutes les tâches configurées. Pour les tâches pour lesquelles la clé publique n'avait pas encore été envoyée, il vous sera demandé le mot de passe et la clé sera envoyée ensuite.
 
  
 +
'''affa --help'''
  
'''affa --kill JOB'''
+
Displays a short help.
Termine la tâche en cours JOB et tous les processus fils (les processus rsync)..
 
  
 
  '''affa --debug'''
 
  '''affa --debug'''
 +
 
Active un journal verbeux. Remplace la tâche et les configurations globales.
 
Active un journal verbeux. Remplace la tâche et les configurations globales.
 +
 +
===Options d'utilisation et de lignes de commande spécifiques à SME===
 +
 +
{{Note box|type=Note :| les commandes ci-dessous sont implémentées dans le programme dérivé «smeserver-affa» du projet Affa 3 pour une utilisation avec le Serveur SME. '''Elles ne font pas partie du projet Affa 3 pour CentOS'''.}}
 +
====La fonction 'rise' pour le serveur SME ====
 +
'''affa --rise [--all] JOB [ARCHIVE]'''
 +
 +
Lance une restauration totale depuis l'archive de sauvegarde [ARCHIVE] sur le serveur Affa <b>(!)</b> comme défini dans l'enregistrement JOB. Autrement dit, une fois terminée, le serveur de sauvegarde redémarre comme un clone du serveur source. Assurez-vous d'avoir arrêté le serveur source avant de rebooter le serveur de sauvegardes, sinon l'interface réseau ne sera pas activée. Cela est important, lorsque vous lancez --rise à distance. La fonction --rise ne fonctionne qu'avec les serveurs SME et ne devrait être utilisée que sur les serveurs de sauvegardes dédiés.
 +
 +
Avec l'option --all, tous les fichiers et répertoires de l'archive tels que définis par les propriétés include[] sont restaurés. Les fichiers et répertoires avec le même nom sur le serveur Affa seront écrasés et ne peuvent pas être restaurés par un undo-rise. Cela ne devrait pas poser de problème sur un serveur Affa dédié qui ne contient aucune autre donnée. Après un éventuel undo-rise, ces données additionnelles restaurées doivent être supprimées manuellement.
 +
 +
Remarquez que le processus rise sauvegarde le serveur Affa lui-même avant d'effectuer la restauration de l'archive. Cette sauvegarde est utilisée par un éventuel undo-rise pour restaurer le serveur Affa. Seuls les fichiers et répertoires standards sont sauvegardés. Les données dans des endroits non normalisés (comme /opt) ne sont pas touchées et existeront encore après le rise '''si elles n'ont pas été écrasées par les données de la sauvegarde''' (c'est-à-dire si la sauvegarde contient aussi le répertoire /opt, par exemple). Voir aussi : [[Backup_server_config#Standard_backup_.26_restore_inclusions]]
 +
 +
 +
 +
'''affa --undo-rise'''
 +
 +
Cette fonction reconvertit en serveur de sauvegarde un serveur Affa préalablement converti en serveur de production. Après un redémarrage, toutes les tâches configurées pour des fichiers et des répertoires normalisés (pour SME) fonctionneront à nouveau.
 +
 +
 +
'''affa --unchunk-archive JOB ARCHIVE'''
 +
 +
Concatène et décompresse tous les fichiers découpés dans l'archive ARCHIVE de la tâche JOB pour rendre l'archive prête pour une restauration. Notez que l'archives la plus récente scheduled.0 n'est jamais découpée et donc qu'elle peut être restaurée telle quelle sans re-concaténation préalable.
 +
 +
 +
'''affa --chunk-archive JOB ARCHIVE'''
 +
 +
Découpe et compresse tous les fichiers dont les noms correspondent à la propriété chunkFiles pour économiser l'espace disque. Cela ne devrait être utilisé que comme l'inverse de --unchunk-archive. Les découpages sont stockés en fichiers bzip2 dans un répertoire nommé FILENAME.affa-chunks avec 8 niveaux de profondeur.
 +
 +
 +
 +
'''affa --create-backup-file JOB [ARCHIVE] [--outfile=FILE]'''
 +
 +
Crée une archive tar gzippée FILE depuis l'ARCHIVE de la tâche JOB. Pendant la création la somme MD5 est calculée puis le fichier tar enregistré lui est comparé. L'archive par défaut est schedule.0 et le fichier FILE par défaut est./smeserver.tg. La somme de contrôle est écrite dans FILE.md5sum.
 +
 +
Un fichier smeserver.tgz stocké sur un disque USB peut être utilisé pour restauration lors d'une nouvelle installation de SME Server.
 +
 +
 +
'''affa --disk-usage'''
 +
 +
Affiche l'utilisation actuelle du disque pour les répertoires racine de tous les systèmes de fichiers.
 +
<small><pre>
 +
Affa version 2.0.0-rc4 on backup2.mydomain.de (10.204.0.52)
 +
+------+--------+--------+----------------------------------------------------+
 +
| Use% |  Used |  Avail | Root Dir                                          |
 +
+------+--------+--------+----------------------------------------------------+
 +
|  71% |  938GB |  365GB | /var/affa                                          |
 +
|  20% |  194GB |  759GB | /mnt/affadev                                      |
 +
+------+--------+--------+----------------------------------------------------+
 +
</pre></small>
 +
Avec --cxv, le tableau est généré selon un format séparé par des deux-points (:) lisible par les programmes.
  
 
=== Exemples de configuration ===
 
=== Exemples de configuration ===
==== Serveur de sauvegarde dédié  ====
+
===== Serveur de sauvegarde dédié  =====
 
* Configurez une tâche pour chaque serveur que vous voulez sauvegarder
 
* Configurez une tâche pour chaque serveur que vous voulez sauvegarder
 
* Envoyez les clés publiques à chaque serveur.
 
* Envoyez les clés publiques à chaque serveur.
 
  affa --send-key JOBNAME
 
  affa --send-key JOBNAME
* Envoie la clé DSA correspontante à la tâche JOBNAME.
+
* Envoie la clé RSA correspontante à la tâche JOBNAME.
 
  affa --check-connections
 
  affa --check-connections
 
* Vérifie que les connexions sans mot de passe fonctionnent.
 
* Vérifie que les connexions sans mot de passe fonctionnent.
Line 588: Line 979:
 
* Vérifie l'état après 24 heures.
 
* Vérifie l'état après 24 heures.
  
 
+
===== Sauvegarder une ibay individuellement  =====
==== Sauvegarder une ibay individuellement  ====
 
 
Supposons que nous voulions sauvegarder les ibays 'staff1' et 'staff2' de notre serveur de production dont l'adresse IP WAN est 82.123.1.1 sur un serveur Affa déporté via internet, toutes les nuits à 2h30.
 
Supposons que nous voulions sauvegarder les ibays 'staff1' et 'staff2' de notre serveur de production dont l'adresse IP WAN est 82.123.1.1 sur un serveur Affa déporté via internet, toutes les nuits à 2h30.
 
* On se connecte sur le serveur Affa et on installe les paquetages comme décrit ci-dessus.
 
* On se connecte sur le serveur Affa et on installe les paquetages comme décrit ci-dessus.
Line 596: Line 986:
 
* On édite /root/ibay-staff-job.pl pour y mettre :
 
* On édite /root/ibay-staff-job.pl pour y mettre :
 
  my $jobname='ibay-staff';
 
  my $jobname='ibay-staff';
 +
 
et
 
et
  'remoteHostName‘=>'82.123.1.1',
+
   
 +
'remoteHostName‘=>'82.123.1.1',
 
  'TimeSchedule'=>'0230',
 
  'TimeSchedule'=>'0230',
 
  'SMEServer'=>'no',
 
  'SMEServer'=>'no',
Line 612: Line 1,004:
 
  ls /var/affa/ibay-staff
 
  ls /var/affa/ibay-staff
  
==== Deux serveurs de production qui se sauvegardent mutuellement ====
+
===== Deux serveurs de production qui se sauvegardent mutuellement =====
 
Vous avez deux sites connectés via un VPN et un serveur SME fonctionnant sur chaque site. Dans ce cas, vous n'avez pas besoin d'un serveur de sauvegarde Affa dédié. Les deux serveurs de production peuvent en plus agir chacun comme un serveur Affa sauvegardant le serveur de l'autre site. Installez simplement Affa et configurez une tâche qui sauvegarde l'autre serveur. Vous pouvez utiliser toutes les fonctionnalités Affa excepté la fonctionnalité rise.  
 
Vous avez deux sites connectés via un VPN et un serveur SME fonctionnant sur chaque site. Dans ce cas, vous n'avez pas besoin d'un serveur de sauvegarde Affa dédié. Les deux serveurs de production peuvent en plus agir chacun comme un serveur Affa sauvegardant le serveur de l'autre site. Installez simplement Affa et configurez une tâche qui sauvegarde l'autre serveur. Vous pouvez utiliser toutes les fonctionnalités Affa excepté la fonctionnalité rise.  
 
En utilisant la fonctionnalité rise, le serveur devient n'importe lequel des systèmes sauvegardés, ce qui est moins utile dans ce scénario puisque cela vous donnerait une copie fonctionnelle du serveur de l'autre site lorsque celui-ci est en panne.
 
En utilisant la fonctionnalité rise, le serveur devient n'importe lequel des systèmes sauvegardés, ce qui est moins utile dans ce scénario puisque cela vous donnerait une copie fonctionnelle du serveur de l'autre site lorsque celui-ci est en panne.
Line 620: Line 1,012:
 
Attention de ne pas sauvegarder à nouveau les archives de l'autre site. Configurez la propriété RootDir vers un chemin qui n'est pas inclu dans la liste de sauvegarde par défaut de SME. En laissant la propriété RootDir par défaut sur '/var/affa', cela est garanti.
 
Attention de ne pas sauvegarder à nouveau les archives de l'autre site. Configurez la propriété RootDir vers un chemin qui n'est pas inclu dans la liste de sauvegarde par défaut de SME. En laissant la propriété RootDir par défaut sur '/var/affa', cela est garanti.
  
==== Sauvegarde d'un ordinateur Windows ====
+
===== Utiliser Affa pour sauvegarder un NAS monté par NFS ou un disque USB local =====
Sauvegarder les données d'un système Windows nécessite que le démon Rsyncd Cygwin soit installé et configuré sous Windows. La procédure "rsync over ssh" ne fonctionne pas, puisque le processus rsync Cigwin se plante systématiquement après le transfert de quelques fichiers.
 
 
 
===== Configuration de Rsyncd sur l'ordinateur Windows =====
 
Installez la base Cygwin, le paquetage rsync puis configurez le service Rsyncd comme décrit dans ce document : [[Rsyncd setup on a windows computer for use with Affa backup]]'.
 
L'installation du service sshd est optionnelle et n'est pas nécessaire pour la sauvegarde elle-même, mais avoir une connexion ssh peut être très utile pour l'administration et pour exécuter des scripts sur le système Windows. Affa supporte l'envoi de la clé publique vers un ordinateur Windows Cygwin pour une connexion sans mot de passe.
 
 
 
Note: Affa ne sauvegarde pas l'information Windows Access Control List (ACL). Vous pourriez avoir à corriger les ACLs après une restauration.
 
 
 
===== Configuration du mode Affa Rsyncd (exemple de démarrage rapide) =====
 
Vous voulez sauvegarder les répertoires ''Mes Documents''des utilisateurs ''ssorglos'' et ''bsimpson'' depuis l'ordinateur Windows 'ws001' avec l'IP 192.168.1.65 sur votre serveur Affa 'affabox' avec l'IP 192.168.1.3.
 
* connectez-vous sur 'affabox' et copiez le script exemple de configuration Cygwin
 
cp /usr/lib/affa/jobconfig-cygwin-sample.pl /root/ws001-mydocs-job.pl
 
* editez /root/ws001-mydocs-job.pl et mettez
 
my $jobname='ws001-mydocs';
 
et
 
'remoteHostName‘=>'192.168.1.65',
 
'rsyncdPassword'=>'<i>secretword</i>',
 
'Include[0]'=>'/c/Documents and Settings/ssorglos/My Documents/', ''# N'utilisez pas les backslashes dans les chemins !''
 
'Include[1]'=>'/c/Documents and Settings/bsimpson/My Documents/',
 
où ''secretword'' doit être remplacé par le mot de passe que vous avez choisi dans rsyncd.secretsfile sur l'ordinateur Windows.
 
* Enregistrez la configuration (cela crée les entrées de base de données et configure les tâches cron.
 
/root/ws001-mydocs-job.pl
 
* Lancez la tâche manuellement. Après l'achèvement, vérifiez l'archive /var/affa/ws001-mydocs/scheduled.0 et le journal /var/log/affa/ws001-mydocs.log.
 
affa --run ws001-mydocs
 
 
 
===== Configuration manuelle d'Affa en mode Rsyncd =====
 
Au cas où vous voudriez configurer manuellement en utilisant les commandes db, voici les paramètres obligatoires pour le mode Rsyncd Cygwin.
 
db affa setprop JOB rsyncdMode yes
 
db affa setprop JOB rsyncdModule AFFA
 
db affa setprop JOB rsyncdUser affa
 
db affa setprop JOB rsyncdPassword ''secretword''
 
db affa setprop JOB SMEServer no
 
db affa setprop JOB RPMCheck no
 
db affa setprop JOB Watchdog no
 
Optionel pour une connexion ssh.
 
db affa setprop JOB remoteOS cygwin
 
 
 
 
 
==== Utiliser Affa pour sauvegarder un NAS monté par NFS ou un disque USB local ====
 
  
 
On désire sauvegarder notre serveur SME 7 de production dont le nom d'hôte est 'prodbox' et l'IP 10.200.48.1 sur un système de fichiers monté plutôt que de configurer un serveur Affa dédié.
 
On désire sauvegarder notre serveur SME 7 de production dont le nom d'hôte est 'prodbox' et l'IP 10.200.48.1 sur un système de fichiers monté plutôt que de configurer un serveur Affa dédié.
  
===== Configuration du NAS =====
+
====== Configuration du NAS ======
 
On dispose d'un serveur FREENAS dont l'adresse IP est 10.200.48.2 en fonction et avec le service NFS activé. Le disque est monté sur /mnt/affashare. On a autorisé l'adresse IP de notre serveur de production à accéder au partage /mnt/affashare.
 
On dispose d'un serveur FREENAS dont l'adresse IP est 10.200.48.2 en fonction et avec le service NFS activé. Le disque est monté sur /mnt/affashare. On a autorisé l'adresse IP de notre serveur de production à accéder au partage /mnt/affashare.
 
* On se logge sur 'prodbox' et on installe les paquetages NFS :
 
* On se logge sur 'prodbox' et on installe les paquetages NFS :
Line 670: Line 1,023:
 
  config setprop portmap status enabled
 
  config setprop portmap status enabled
 
  service portmap start
 
  service portmap start
 
 
* On monte le partage NFS :
 
* On monte le partage NFS :
 
  mkdir -p /mnt/affadevice
 
  mkdir -p /mnt/affadevice
Line 676: Line 1,028:
  
  
===== Alternative : configuration du disque USB =====
+
====== Alternative : configuration du disque USB ======
 
* On se logge sur 'prodbox'
 
* On se logge sur 'prodbox'
 
* On connecte le disque USB sur le bus USB. On doit maintenant déterminer sur quel 'device' le noyau a placé le lecteur. On regarde /var/log/messages et on cherche la ligne d'initialisation correspondante (Initializing USB Mass Storage driver). Quelques lignes plus bas, on trouve le nom du device. Supposons qu'il s'agisse de 'sdh'. Si ce n'est pas le cas, on remplacera dans les instructions ci-après /dev/sdh par la valeur trouvée.
 
* On connecte le disque USB sur le bus USB. On doit maintenant déterminer sur quel 'device' le noyau a placé le lecteur. On regarde /var/log/messages et on cherche la ligne d'initialisation correspondante (Initializing USB Mass Storage driver). Quelques lignes plus bas, on trouve le nom du device. Supposons qu'il s'agisse de 'sdh'. Si ce n'est pas le cas, on remplacera dans les instructions ci-après /dev/sdh par la valeur trouvée.
Line 682: Line 1,034:
  
 
  fdisk /dev/sdh
 
  fdisk /dev/sdh
 +
 
On trouvera probablement une partition dos vfat, qu'on devra d'abord détruire. Supposons que nous ayons créé une seule partition  ''/dev/sdh1''.
 
On trouvera probablement une partition dos vfat, qu'on devra d'abord détruire. Supposons que nous ayons créé une seule partition  ''/dev/sdh1''.
 
* On formatte avec un système ext3 :
 
* On formatte avec un système ext3 :
Line 694: Line 1,047:
 
  df
 
  df
  
===== Copier une archive Affa d'un disque dur USB sur un nouveau disque =====
+
====== Copier une archive Affa d'un disque dur USB sur un nouveau disque ======
 
Affa utilise un grand nombre de liens matériels (hard links) pour compresser et préserver de la place sur le disque pour les sauvegardes. Dans la situation où l'on voudrait copier un disque contenant une archive Affa sur un autre disque (de taille plus importante), il est nécessaire de s'assurer que les liens matériels ont été copiés correctement au risque que la copie devienne considérablement plus volumineuse que l'archive source.
 
Affa utilise un grand nombre de liens matériels (hard links) pour compresser et préserver de la place sur le disque pour les sauvegardes. Dans la situation où l'on voudrait copier un disque contenant une archive Affa sur un autre disque (de taille plus importante), il est nécessaire de s'assurer que les liens matériels ont été copiés correctement au risque que la copie devienne considérablement plus volumineuse que l'archive source.
  
Line 708: Line 1,061:
 
   
 
   
  
===== Configuration d'Affa =====
+
====== Configuration d'Affa ======
 
On veut lancer des sauvegardes à 11h30, 15h30, 19h30 et on veut garder les 3 dernières, 7 journalières, 5 hebdomadaires, 12 mensuelles et 1 annuelle.
 
On veut lancer des sauvegardes à 11h30, 15h30, 19h30 et on veut garder les 3 dernières, 7 journalières, 5 hebdomadaires, 12 mensuelles et 1 annuelle.
 
* On se logge sur 'prodbox' et on installe les paquetages Affa comme indiqué ci-dessus.
 
* On se logge sur 'prodbox' et on installe les paquetages Affa comme indiqué ci-dessus.
Line 715: Line 1,068:
 
* On édite /root/prodbox-job.pl pour y mettre :
 
* On édite /root/prodbox-job.pl pour y mettre :
 
  my $jobname='prodbox';
 
  my $jobname='prodbox';
 +
 
et
 
et
  'remoteHostName‘=>'localhost',
+
   
 +
'remoteHostName‘=>'localhost',
 
  'TimeSchedule'=>'1130,1530,1930',
 
  'TimeSchedule'=>'1130,1530,1930',
 
  'scheduledKeep'=>3,
 
  'scheduledKeep'=>3,
Line 724: Line 1,079:
 
  'yearlyKeep'=>1,
 
  'yearlyKeep'=>1,
 
  'RootDir=>'/mnt/affadevice',
 
  'RootDir=>'/mnt/affadevice',
 +
 
On vérifie les autres propriétés et on les change si besoin.
 
On vérifie les autres propriétés et on les change si besoin.
 
* On enregistre la configuration
 
* On enregistre la configuration
Line 732: Line 1,088:
  
  
===== Limitations =====
+
====== Limitations ======
 
Avec ce type de configuration, on ne peut pas utiliser la fonction 'rise' (conversion du serveur de sauvegarde en serveur de production), puisqu'elle nécessite que l'archive soit sur le même système de fichiers que le serveur. La fonction 'rise' utilise les hardlinks, qui ne fonctionnent pas entre systèmes de fichiers différents.
 
Avec ce type de configuration, on ne peut pas utiliser la fonction 'rise' (conversion du serveur de sauvegarde en serveur de production), puisqu'elle nécessite que l'archive soit sur le même système de fichiers que le serveur. La fonction 'rise' utilise les hardlinks, qui ne fonctionnent pas entre systèmes de fichiers différents.
  
===== Automount : montage automatique =====
+
====== Automount : montage automatique ======
 
Avoir les archives de sauvegarde sur le même système de fichiers est toujours un risque, qui peut être minimisé en utilisant la fonction automount. Ainsi, le système de fichiers externe n'est monté que durant le déroulement d'une tâche.
 
Avoir les archives de sauvegarde sur le même système de fichiers est toujours un risque, qui peut être minimisé en utilisant la fonction automount. Ainsi, le système de fichiers externe n'est monté que durant le déroulement d'une tâche.
  
 
Dans l'exemple NAS, configurez :
 
Dans l'exemple NAS, configurez :
  'AutomountDevice=>'10.200.48.2:/mnt/affashare',
+
   
 +
'AutomountDevice=>'10.200.48.2:/mnt/affashare',
 
  'AutomountPoint =>'mnt/affadevice',
 
  'AutomountPoint =>'mnt/affadevice',
 +
 
et sautez l'étape 2
 
et sautez l'étape 2
  
 
Dans l'exemple du disque USB, configurez :
 
Dans l'exemple du disque USB, configurez :
  'AutomountDevice=>'/dev/sdc1',
+
   
 +
'AutomountDevice=>'/dev/sdc1',
 
  'AutomountPoint =>'mnt/affadevice',
 
  'AutomountPoint =>'mnt/affadevice',
 +
 
et sautez les étapes 5 à 8.
 
et sautez les étapes 5 à 8.
  
 
Le point de montage sera automatiquement créé, s'il n'existe pas. <br>
 
Le point de montage sera automatiquement créé, s'il n'existe pas. <br>
 
Pour accéder au répertoire de l'archive, vous devez le monter à la main.
 
Pour accéder au répertoire de l'archive, vous devez le monter à la main.
 +
==== Copier une archive Affa d'un disque dur USB sur un nouveau disque ====
 +
Affa utilise un grand nombre de liens matériels (hard links) pour compresser et préserver de la place sur le disque pour les sauvegardes. Dans la situation où l'on voudrait copier un disque contenant une archive Affa sur un autre disque (de taille plus importante), il est nécessaire de s'assurer que les liens matériels ont été copiés correctement au risque que la copie devienne considérablement plus volumineuse que l'archive source.
 +
 +
Une méthode pour copier à travers des systèmes de fichiers distincts (par ex. entre 2 disques usb différents) et préserver les liens matériels est la suivante:
 +
* monter les deux disques usb avec des points de montage différents, par exemple /media/backup1 et /media/backup2 et effectuer alors :
 +
mkdir /media/backup2/archive
 +
cd /media/backup1/archive
 +
tar cpf - . | ( cd /media/backup2/archive && tar xpf - )
 +
en remplaçant '''archive''' par le véritable nom de l'archive (job) Affa que l'on souhaite placer sur l'autre disque.
  
 
=== Restauration ===
 
=== Restauration ===
 +
Procédure valable pour Affa v.2 et v.3.
 
==== Restauration de fichiers ou répertoires individuels ====
 
==== Restauration de fichiers ou répertoires individuels ====
'''Example 1:'''  Nous sommes le Mardi 6 Janvier 2009 quand l'utilisateur 'briedlin' vous demande de restaurer les messages de sa boite 'orders' qu'il a malencontreusement détruite Lundi.
+
'''Example 1 :'''  Nous sommes le Mardi 6 Janvier 2009 quand l'utilisateur 'briedlin' vous demande de restaurer les messages de sa boite 'orders' qu'il a malencontreusement détruite lundi.
  
 
* Vous devez d'abord regarder quelles sont les archives disponibles.  Le nom de tâche de ce serveur de sauvegardes est 'primmail. Pour avoir une liste de toutes les archives, lancez  
 
* Vous devez d'abord regarder quelles sont les archives disponibles.  Le nom de tâche de ce serveur de sauvegardes est 'primmail. Pour avoir une liste de toutes les archives, lancez  
 
  affa --list-archives primmail
 
  affa --list-archives primmail
 +
 
''(voir la liste exemple dans le chapitre [[Affa#Usage_and_command_line_options]]''
 
''(voir la liste exemple dans le chapitre [[Affa#Usage_and_command_line_options]]''
 
* Choisissez l'archive daily.0, qui a été créée la nuit de Lundi. Maintenant, restaurez la mailbox 'orders' en utilisant la commande rsync.
 
* Choisissez l'archive daily.0, qui a été créée la nuit de Lundi. Maintenant, restaurez la mailbox 'orders' en utilisant la commande rsync.
Line 766: Line 1,137:
  
 
  export RDIR=/home/e-smith/files/users/briedlin/Maildir/.orders/  ''# cette variable est utilisée pour raccourcir la ligne de commande suivante''
 
  export RDIR=/home/e-smith/files/users/briedlin/Maildir/.orders/  ''# cette variable est utilisée pour raccourcir la ligne de commande suivante''
  rsync -av -e 'ssh -p 2222' /var/affa/primmail/daily.0/$RDIR 10.204.48.1:$RDIR
+
  rsync -av -e 'ssh -i /root/.ssh/id_rsa_affa -p 2222' /var/affa/primmail/daily.0/$RDIR 10.204.48.1:$RDIR
  
  
  
'''Example 2:''' Un utilisateur a effacé le fichier orderform.pdf dans l'ibay 'docs' du serveur 10.204.48.1 et vous demande de le restaurer.
+
'''Example 2 :''' Un utilisateur a effacé le fichier orderform.pdf dans l'ibay 'docs' du serveur 10.204.48.1 et vous demande de le restaurer.
  
 
* Vous avez cherché et trouvé la dernière version de ce fichier dans l'archive hebdomadaire de la tâche 'prodserv'.
 
* Vous avez cherché et trouvé la dernière version de ce fichier dans l'archive hebdomadaire de la tâche 'prodserv'.
Line 778: Line 1,149:
  
 
Si les serveurs sont configurés pour utiliser un port ssh différent, ex. 2222, à la place faites :
 
Si les serveurs sont configurés pour utiliser un port ssh différent, ex. 2222, à la place faites :
  export RFILE=/home/e-smith/files/ibays/docs/files/orderform.pdf  ''# cette variable est utilisée pour raccourcir la ligne de commande suivante''
+
   
  rsync -av -e 'ssh -p 2222' /var/affa/prodserv/weekly.1/$RFILE 10.204.48.1:$RFILE
+
export RFILE=/home/e-smith/files/ibays/docs/files/orderform.pdf  ''# cette variable est utilisée pour raccourcir la ligne de commande suivante''
 +
  rsync -av -e 'ssh -i /root/.ssh/id_rsa_affa -p 2222' /var/affa/prodserv/weekly.1/$RFILE 10.204.48.1:$RFILE
  
  
  
'''Example 3:''' Restaurer un fichier avec un caractère spécial dans le chemin
+
'''Example 3 :''' Restaurer un fichier avec un caractère spécial dans le chemin
  
 
N'utilisez pas les variables shell pour raccourcir la commande. Cela compliquerait les choses plus que cela aiderait.
 
N'utilisez pas les variables shell pour raccourcir la commande. Cela compliquerait les choses plus que cela aiderait.
 
Mettez entre guillemets les chemins source et destination. Dans le chemin de destination, echappez les caractères blancs avec un double backslash et les parenthèses avec un simple backslash. Sur le serveur de sauvegardes AFFA lancez :
 
Mettez entre guillemets les chemins source et destination. Dans le chemin de destination, echappez les caractères blancs avec un double backslash et les parenthèses avec un simple backslash. Sur le serveur de sauvegardes AFFA lancez :
  rsync -av "/var/affa/fileshare/daily.4/home/e-smith/files/ibays/mechfiles/files/Valve Control (Design Gr)/VALVE LIST FOR ISSUED.xls" "192.168.1.7:/home/e-smith/files/ibays/mechfiles/files/Valve\\ Control\\ \(Design\\ Gr\)/VALVE\\ LIST\\ FOR\\ ISSUED.xls"
+
   
 +
rsync -av "/var/affa/fileshare/daily.4/home/e-smith/files/ibays/mechfiles/files/Valve Control (Design Gr)/VALVE LIST FOR ISSUED.xls" "192.168.1.7:/home/e-smith/files/ibays/mechfiles/files/Valve\\ Control\\ \(Design\\ Gr\)/VALVE\\ LIST\\ FOR\\ ISSUED.xls"
  
 
Si les serveurs sont configurés pour utiliser un port ssh différent, ex. 2222, à la place faites :
 
Si les serveurs sont configurés pour utiliser un port ssh différent, ex. 2222, à la place faites :
  
  rsync -av -e 'ssh -p 2222' "/var/affa/fileshare/daily.4/home/e-smith/files/ibays/mechfiles/files/Valve Control (Design Gr)/VALVE LIST FOR ISSUED.xls" "192.168.1.7:/home/e-smith/files/ibays/mechfiles/files/Valve\\ Control\\ \(Design\\ Gr\)/VALVE\\ LIST\\ FOR\\ ISSUED.xls"
+
  rsync -av -e 'ssh -i /root/.ssh/id_rsa_affa -p 2222' "/var/affa/fileshare/daily.4/home/e-smith/files/ibays/mechfiles/files/Valve Control (Design Gr)/VALVE LIST FOR ISSUED.xls" "192.168.1.7:/home/e-smith/files/ibays/mechfiles/files/Valve\\ Control\\ \(Design\\ Gr\)/VALVE\\ LIST\\ FOR\\ ISSUED.xls"
  
 
==== Restauration complète ====
 
==== Restauration complète ====
 
Pour lancer une restauration complète des utilisateurs et des données de configuration, lancez sur le serveur Affa
 
Pour lancer une restauration complète des utilisateurs et des données de configuration, lancez sur le serveur Affa
  affa --full-restore <JOB> [<ARCHIVE>]
+
   
Cela synchroniste (par rsync) les données de la sauvegarde ARCHIVE vers l'ordinateur 'remoteHostname' défini dans la configuration de la tâche JOB.  
+
affa --full-restore <JOB> [<ARCHIVE>]
 +
 
 +
Cela synchronise (par rsync) les données de la sauvegarde ARCHIVE vers l'ordinateur 'remoteHostname' défini dans la configuration de la tâche JOB.  
  
 
Exemple:
 
Exemple:
 
Vous avez sauvegardé votre serveur de production 'prodsrv' par une tâche 'prodbox'. Pour restaurer la dernière sauvegarde, lancez
 
Vous avez sauvegardé votre serveur de production 'prodsrv' par une tâche 'prodbox'. Pour restaurer la dernière sauvegarde, lancez
  affa --full-restore prodbox
+
   
 +
affa --full-restore prodbox
  
 
Pour restaurer la plus ancienne archive daily.3, lancez  
 
Pour restaurer la plus ancienne archive daily.3, lancez  
  affa --full-restore prodbox daily.3
+
   
 
+
affa --full-restore prodbox daily.3
{{Warning box| Une restauration complète reconstruit le serveur tel qu'il était au moment de la sauvegarde. Cela signifie que tous les fichiers créés ou les changement de configuration due serveur effectués après la sauvegarde seront perdus. Après la restauration, le serveur restauré redémarre automatiquement. }}
 
  
==== Migration d'un serveur SME7 vers un nouveau matériel en utilisant la fonctionnalité "Affa rise" ====
+
{{Warning box|type=Attention :| une restauration complète reconstruit le serveur tel qu'il était au moment de la sauvegarde. Cela signifie que tous les fichiers créés ou les changement de configuration du serveur effectués après la sauvegarde seront perdus. Après la restauration, le serveur restauré redémarre automatiquement. }}
Merci de consulter cet Howto: [[Moving SME to new Hardware]]
 
  
 +
==== Migration d'un serveur SMEx vers un nouveau matériel en utilisant la fonctionnalité «Affa rise» ====
 +
Merci de consulter cet Howto : [[Moving SME to new Hardware/fr]].
  
 
==== Restauration d'un disque USB sur un nouveau serveur ====
 
==== Restauration d'un disque USB sur un nouveau serveur ====
Line 827: Line 1,203:
 
Avec SMEServer=no aucun.
 
Avec SMEServer=no aucun.
  
Avec SMEServer=yes la liste par défaut des sauvegardes SME. TLa commande suivante affiche la liste :
+
Avec SMEServer=yes la liste par défaut des sauvegardes SME. La commande suivante affiche la liste :
  perl -e 'use esmith::Backup;$b=new esmith::Backup;print join("\n",$b->restore_list)."\n"'  
+
   
 +
perl -e 'use esmith::Backup;$b=new esmith::Backup;print join("\n",$b->restore_list)."\n"'  
  
  
Line 834: Line 1,211:
  
 
Oui. Supposant que vous voulez sauvegarder tous les fichiers gif et jpg du répertoire /home/e-smith/files/ibays/pictures/files utilisez cette configuration
 
Oui. Supposant que vous voulez sauvegarder tous les fichiers gif et jpg du répertoire /home/e-smith/files/ibays/pictures/files utilisez cette configuration
  db affa setprop JOBNAME SMEServer no          # Ne pas inclure les répertoires et fichiers par défaut  de SME Server
+
   
 +
db affa setprop JOBNAME SMEServer no          # Ne pas inclure les répertoires et fichiers par défaut  de SME Server
 
  db affa setprop JOBNAME Include[0] '/home/e-smith/files/ibays/pictures/files' # Commencer à chercher ici
 
  db affa setprop JOBNAME Include[0] '/home/e-smith/files/ibays/pictures/files' # Commencer à chercher ici
 
  db affa setprop JOBNAME Include[1] '*/'        # Chercher récursivement dans l'arborescence
 
  db affa setprop JOBNAME Include[1] '*/'        # Chercher récursivement dans l'arborescence
Line 843: Line 1,221:
  
  
'''Comment puis-je déplacer une archive de sauvegarde de mon serveur de production dans une agence distante vers le serveur Affa en utilisant un disque USB ? Je veux éviter de télécharger la première sauvegarde complète depuis internet.
+
'''Comment puis-je déplacer une archive de sauvegarde de mon serveur de production vers une agence distante dans le serveur Affa en utilisant un disque USB ? Je veux éviter de télécharger la première sauvegarde complète depuis Internet.'''
Installez Affa sur votre serveur de production, connectez et montez le disque USB.'''  Configurez une tâche pour enregistrer la sauvegarde sur le disque USB. Une fois la tâche exécutée, connectez le disque USB à votre serveur Affa et configurez la tâche de la même manière. Utilisez le script de configuration du répertoire d'archive. Vous n'avez à mofier que la propriété "remoteHostName". Maintenant, utilisez l'option --move-archive pour transférer l'archive sur le disque local. Si ce n'est pas déjà fait, envoyez la clé publique à votre serveur de production. C'est fait.
+
 
 +
Installez Affa sur votre serveur de production, connectez et montez le disque USB. Configurez une tâche pour enregistrer la sauvegarde sur le disque USB. Une fois la tâche exécutée, connectez le disque USB à votre serveur Affa et configurez la tâche de la même manière. Utilisez le script de configuration du répertoire d'archive. Vous n'avez à mofier que la propriété "remoteHostName". Maintenant, utilisez l'option --move-archive pour transférer l'archive sur le disque local. Si ce n'est pas déjà fait, envoyez la clé publique à votre serveur de production. C'est fait.
  
  
 
'''Comment je sauvegarde deux serveurs SME derrière un pare-feu ?'''
 
'''Comment je sauvegarde deux serveurs SME derrière un pare-feu ?'''
 +
 
D'abord, vous devez configurer les port forwardings pour le service ssh sur votre pare-feu. Utilisez un port non standard, par ex. 2200->22, pour votre second serveur. Configurez une tâche sur votre serveur de sauvegarde Affa pour chacun de vos serveurs de production. Configurez la propriété sshPort=2200 pour votre second serveur.
 
D'abord, vous devez configurer les port forwardings pour le service ssh sur votre pare-feu. Utilisez un port non standard, par ex. 2200->22, pour votre second serveur. Configurez une tâche sur votre serveur de sauvegarde Affa pour chacun de vos serveurs de production. Configurez la propriété sshPort=2200 pour votre second serveur.
  
Line 854: Line 1,234:
  
 
Lancez les commandes suivantes pour chaque tâche :
 
Lancez les commandes suivantes pour chaque tâche :
  affa --revoke-key JOBNAME
+
   
 +
affa --revoke-key JOBNAME
 
  affa --delete-job JOBNAME
 
  affa --delete-job JOBNAME
 +
 
Verifie que toutes les tâches ont été supprimées.
 
Verifie que toutes les tâches ont été supprimées.
  affa --status
+
   
 +
affa --status
 +
 
 
Suprime le paquetage Affa
 
Suprime le paquetage Affa
  rpm -e smeserver-affa
+
   
 +
rpm -e smeserver-affa
 +
 
 
et, si ces paquetages ne sont pas des dépendances d'autres paquetages :
 
et, si ces paquetages ne sont pas des dépendances d'autres paquetages :
  Nettoyage général
+
   
 +
Nettoyage général
 
  rm -f /etc/cron.d/affa /etc/cron.d/affa-status
 
  rm -f /etc/cron.d/affa /etc/cron.d/affa-status
 
  rm -rf /home/e-smith/db/affa /home/e-smith/db/affa-report
 
  rm -rf /home/e-smith/db/affa /home/e-smith/db/affa-report
Line 867: Line 1,254:
  
 
=== Résolution de problèmes ===
 
=== Résolution de problèmes ===
==== Affa cesse de fonctionner après que prodserver ait été restauré. ====
+
==== Affa cesse de fonctionner après que prodserver ait été restauré ====
'''Description:'''
+
'''Description :'''
* Affa cesse de fonctionner ou est endommagé
+
* Affa cesse de fonctionner ou est endommagé.
* prodserver ne peut plus réaliser de connexion via ssh vers affaserver
+
* prodserver ne peut plus réaliser de connexion via ssh vers affaserver.
 
* Le message "SSH connection to ''prodserver ip'' failed. Did you send the public key" est présent dans le fichier /var/log/affa/''nom_du_job''.log
 
* Le message "SSH connection to ''prodserver ip'' failed. Did you send the public key" est présent dans le fichier /var/log/affa/''nom_du_job''.log
* Réenvoyer les clés ssh ne résout pas le problème
+
* Renvoyer les clés ssh ne résout pas le problème.
  
'''Solution:'''
+
'''Solution :'''
 
* Ceci vient probablement du fait que la clé pour prodserver, qui est présente sur affaserver, ne correspond plus avec la clé de prodserver.
 
* Ceci vient probablement du fait que la clé pour prodserver, qui est présente sur affaserver, ne correspond plus avec la clé de prodserver.
* Il faut alors effacer la clé existante afin que la clé soit réenvoyée par prodserver à la prochaine connexion ssh.
+
* Il faut alors effacer la clé existante afin que la clé soit renvoyée par prodserver à la prochaine connexion ssh.
* En ligne de commande, éditer le fichier /root/.ssh/known_hosts et enlever la ligne correspondant à prodserver. Cette dernière débute par: ''prodserver ip'' ssh-rsa
+
* En ligne de commande, éditer le fichier /root/.ssh/known_hosts et enlever la ligne correspondant à prodserver. Cette dernière débute par : ''prodserver ip'' ssh-rsa
  
 
==== Impossibilité d'envoyer des emails après un "rise". ====
 
==== Impossibilité d'envoyer des emails après un "rise". ====
'''Description:'''
+
'''Description :'''
* impossibilité d'envoyer de emails après un "rise" sur le server de sauvegardes en restaurant de SME7 à SME8
+
* impossibilité d'envoyer des courriels après un "rise" sur le serveur de sauvegardes en restaurant de SME7 à SME8
* le journal qpsmtpd affiche:
+
* le journal qpsmtpd affiche :
 
  @400000005125f42409a8cd1c 4280 vvirus::clamav plugin (data_post): clamscan results: /var/spool/qpsmtpd/1361441818:4280:0: Access denied. ERROR
 
  @400000005125f42409a8cd1c 4280 vvirus::clamav plugin (data_post): clamscan results: /var/spool/qpsmtpd/1361441818:4280:0: Access denied. ERROR
 
  @400000005125f42409aa9624 4280 virus::clamav plugin (data_post): ClamAV error: /usr/bin/clamdscan --stdout  --config-file=/etc/clamd.conf --no-summary /var/spool/qpsmtpd/1361441818:4280:0 2>&1: 2
 
  @400000005125f42409aa9624 4280 virus::clamav plugin (data_post): ClamAV error: /usr/bin/clamdscan --stdout  --config-file=/etc/clamd.conf --no-summary /var/spool/qpsmtpd/1361441818:4280:0 2>&1: 2
 
* problème de permission sur /var/spool
 
* problème de permission sur /var/spool
  #Sur le serveur fonctionnel:
+
  #Sur le serveur fonctionnel :
 
  ls -al /var/spool
 
  ls -al /var/spool
 
  drwxr-s---  2 qpsmtpd clamav 4096 Jun 10 12:31 qpsmtpd
 
  drwxr-s---  2 qpsmtpd clamav 4096 Jun 10 12:31 qpsmtpd
+
  #Sur le serveur cassé (restauré) :
  #Sur le serveur cassé (restauré):
 
 
  ls -al /var/spool
 
  ls -al /var/spool
 
  drwxr-x---  2 qpsmtpd clamav 4096 Jun 10 10:46 qpsmtpd
 
  drwxr-x---  2 qpsmtpd clamav 4096 Jun 10 10:46 qpsmtpd
+
  #Sur la nouvelle installation avant la restauration :
  #Sur la nouvelle installation avant la restauration:
 
 
  ls -al /var/spool
 
  ls -al /var/spool
 
  drwxr-s---  2 qpsmtpd clamav 4096 Apr 17 13:47 qpsmtpd
 
  drwxr-s---  2 qpsmtpd clamav 4096 Apr 17 13:47 qpsmtpd
 +
 
voire [http://bugs.contribs.org/show_bug.cgi?id=4399| SME bug #4399]
 
voire [http://bugs.contribs.org/show_bug.cgi?id=4399| SME bug #4399]
  
  
 
'''Solution:'''
 
'''Solution:'''
en ligne de commande sur le server de sauvegardes après le "Rise":
+
en ligne de commande sur le server de sauvegardes après le "Rise" :
 
chmod g+s /var/spool/qpsmtpd
 
chmod g+s /var/spool/qpsmtpd
  
 
==== Les utilisateurs ne peuvent se connecter au serveur – Important. ====
 
==== Les utilisateurs ne peuvent se connecter au serveur – Important. ====
 
Après une restauration complète ou un "rise" par Affa sur SME8, tout semble fonctionner, mais les utilisateurs ne peuvent se connecter sur le serveur (samba, horde, etc...). Les comptes utilisateurs apparaissent bien dans le server-manager voir [[bugzilla:6983]] et [[bugzilla:7687]]<br />
 
Après une restauration complète ou un "rise" par Affa sur SME8, tout semble fonctionner, mais les utilisateurs ne peuvent se connecter sur le serveur (samba, horde, etc...). Les comptes utilisateurs apparaissent bien dans le server-manager voir [[bugzilla:6983]] et [[bugzilla:7687]]<br />
{{Warning box|msg=Travaux en cours: veuillez lire le contenu du bug car il semble y avoir d'autres problèmes avec cette solution temporaire}}
+
{{Warning box|type = Attention :|msg=Travaux en cours : veuillez lire le contenu du bug car il semble y avoir d'autres problèmes avec cette solution temporaire}}
 
La cause est une incomplète restauration / conversion des fichiers contenus dans le répertoire /etc, en particulièrement les fichiers contenant les identifiants et les mots de passe. La première chose à faire après un "affa --full-restore prodserv" est de ne pas effacer la sauvegarde existante de Affa. Si un "affa --rise --all prodserv" a été effectué, ne pas continuer avec "/bin/rm -rf /var/affa" comme indiqué dans le wiki (ne pas effacer non plus l'archive de quelque manière que ce soit).
 
La cause est une incomplète restauration / conversion des fichiers contenus dans le répertoire /etc, en particulièrement les fichiers contenant les identifiants et les mots de passe. La première chose à faire après un "affa --full-restore prodserv" est de ne pas effacer la sauvegarde existante de Affa. Si un "affa --rise --all prodserv" a été effectué, ne pas continuer avec "/bin/rm -rf /var/affa" comme indiqué dans le wiki (ne pas effacer non plus l'archive de quelque manière que ce soit).
 
* Si la fonction rise a été utilisée:
 
* Si la fonction rise a été utilisée:
Line 912: Line 1,298:
  
 
  mkdir /etc/backup
 
  mkdir /etc/backup
 
 
  cp -r /etc/{passwd,samba,e-smith,group,gshadow,shadow,ssh,sudoers} /etc/backup
 
  cp -r /etc/{passwd,samba,e-smith,group,gshadow,shadow,ssh,sudoers} /etc/backup
 
 
  yes | cp -r /var/affa/"JOBNAME"/"ARCHIVE"/etc/* /etc/
 
  yes | cp -r /var/affa/"JOBNAME"/"ARCHIVE"/etc/* /etc/
  
Line 920: Line 1,304:
  
 
  signal-event post-upgrade; signal-event reboot
 
  signal-event post-upgrade; signal-event reboot
 
+
* Si la fonction « full-restore » a été utilisée :
* Si la fonction « full-restore » a été utilisée:
 
 
Effectuer les étapes 1, 2 et 3 ci-dessus
 
Effectuer les étapes 1, 2 et 3 ci-dessus
Se connecter en "root" sur le server de sauvegardes (server Affa) et entrer en ligne de commande:
+
Se connecter en "root" sur le serveur de sauvegardes (serveur Affa) et entrer en ligne de commande :
  
 
  export RDIR=/var/affa/"NOM_DU_JOB"/"ARCHIVE"/etc/
 
  export RDIR=/var/affa/"NOM_DU_JOB"/"ARCHIVE"/etc/
 
 
  rsync -av $RDIR "PRODSERV-IP":/etc/
 
  rsync -av $RDIR "PRODSERV-IP":/etc/
  
 
Sur le serveur de production "PRODSERV", entrer par ssh dans un terminal
 
Sur le serveur de production "PRODSERV", entrer par ssh dans un terminal
  signal-event post-upgrade; signal-event reboot
+
   
 +
signal-event post-upgrade; signal-event reboot
 +
 
 +
=== Extinction du serveur de sauvegarde ===
 +
En travaux...
 +
 
 +
Extrait du wiki d'Arnaud : https://wiki.guedel.eu/doku.php?id=Welcome:Fedora:BackupPC légèrement modifié pour un serveur de sauvegarde de type SME.
 +
 
 +
À une heure précise, le serveur SME «réveille» donc la machine client via un wake-on-lan pour que ce dernier effectue la sauvegarde. Pour des raisons évidentes d'économie d'énergie, j'ai souhaité que la machine cliente s'éteigne automatiquement une fois la sauvegarde effectuée.
 +
 
 +
Le problème est alors le suivant : Affa ne prend la sauvegarde en considération seulement une fois le « post-job » positivement achevé.
 +
Donc si la commande d'extinction est située dans le post-job, celui-ci ne renvoie jamais de retour positif à Affa, vu que la machine sur laquelle il tourne est éteinte avant !!!
 +
 
 +
La création de scripts d'extinction enfants du post-job, avec des commandes pour récupérer le prompt avant la fin de l'exécution de la tâche (entre autre le « & ») s'est révélée infructueuse sur toute la ligne car Affa s'entête à attendre la fin de chaque script enfant.
 +
 
 +
C'est quelque part sur la toile que j'ai trouvé la solution à ce problème : il faut que le post-job d'Affa se contente de créer un fichier drapeau. L'extinction est, elle, réalisée via cron.d qui surveille la présence ou non de ce drapeau et qui déclenche l'arrêt de la machine le cas échéant.
 +
 
 +
Voilà mon script pre-job (qui au passage envoie le signal-event pre-backup à la SME) :
 +
 
 +
#!/bin/bash
 +
ssh root@IP_SME /sbin/e-smith/signal-event pre-backup
 +
touch /etc/BackupPC/dump-start.flg
 +
exit 0;
 +
 
 +
Voilà mon script post-job (qui au passage envoie le signal-event post-backup à la SME) :
 +
 
 +
#!/bin/bash
 +
ssh root@IP_SME /sbin/e-smith/signal-event post-backup
 +
mv /etc/BackupPC/dump-start.flg /etc/BackupPC/dump-end.flg
 +
exit 0;
 +
 
 +
Ainsi que l'entrée cron.d: /etc/cron.d/backuppc-halt
 +
 
 +
*/5 * * * * root [ -f /etc/BackupPC/dump-end.flg ] && sleep 3m && [ ! -f /etc/BackupPC/dump-start.flg ] && [ "$(/usr/bin/users)" = "(unknown)" ] && rm /etc/BackupPC/dump-end.flg && /usr/sbin/shutdown -h now
 +
 
 +
Pas besoin de relancer cron.d: les modifications sous le répertoire /etc/cron.d sont rescannées toutes les minutes.
  
 +
Explications : cron cherche la présence du fichier « dump-end » toutes les 5 minutes. Si le fichier est présent, on attend 3 minutes au cas où une autre sauvegarde Affa devrait se lancer, on vérifie qu'il n'y a pas de backup en cours (fichier dump-start), on vérifie qu'aucune session n'est ouverte, on efface le fichier drapeau et on éteint la machine.
  
 +
Génialement simple, simplement génial et…… efficace!
 +
Et voilà !!!
  
 
=== Rapport de bugs ===
 
=== Rapport de bugs ===
 
Affa est répertorié dans [http://bugs.contribs.org/enter_bug.cgi?product=SME%20Contribs&component=smeserver-affa bugtracker contribs section].
 
Affa est répertorié dans [http://bugs.contribs.org/enter_bug.cgi?product=SME%20Contribs&component=smeserver-affa bugtracker contribs section].
SVP, rapportez là tous les bugs, demandes de nouvelles fonctionnalités et problèmes de documentation.  
+
SVP, rapportez là tous les bugs, demandes de nouvelles fonctionnalités et problèmes de documentation.
 +
 
 +
{{#bugzilla:columns=id,product,version,status,summary |sort=id |order=desc |component=smeserver-affa|noresultsmessage="No open bugs found."}}
  
 
=== Informations complémentaires ===
 
=== Informations complémentaires ===
Pour les détails de performance, la liste des modifications etc. voyez [[:Affa:Additional information]]
+
Pour les détails de performance, la liste des modifications, etc., voyez [[:Affa:Additional information]].
  
 
=== Références ===
 
=== Références ===
 
* Article Wikipedia http://en.wikipedia.org/wiki/Rsync
 
* Article Wikipedia http://en.wikipedia.org/wiki/Rsync
 
* Site Rsync http://rsync.samba.org/
 
* Site Rsync http://rsync.samba.org/
* Article Wiki [[Moving SME to new Hardware]]
+
* Article Wiki [[Moving SME to new Hardware/fr]]
 
* Article Wiki [[Backup with Affa and FreeDup]]
 
* Article Wiki [[Backup with Affa and FreeDup]]
 
* Article Wiki [[Rsyncd setup on a windows computer for use with Affa backup]]
 
* Article Wiki [[Rsyncd setup on a windows computer for use with Affa backup]]

Latest revision as of 14:51, 28 November 2023


Warning.png Attention :
1er sept 2022, un correctif récent de rysnc, rsync-3.1.2-11.el7_9.x86_64, provoque l'échec silencieux du fonctionnement d'Affa. Voir ci-dessous.


PythonIcon.png Niveau de compétence : Avancé
Les instructions dans cette page requièrent un niveau avancé. Une bonne compréhension de Linux et du serveur KOOZALI SME est recommandée.


Attention

Warning.png Attention :
rsync-3.1.2-11.el7_9.x86_64 provoque l'échec silencieux d'Affa.


Vous pouvez voir l'échec dans vos journaux, mais c'est tout. Aucun fichier ne sera sauvegardé après avoir installé cette mise à jour de rsync.

Voir le lien vers le bogue 12165 ci-dessous.

Le seul correctif actuel consiste à rétrograder rsync sur le serveur Affa. Cela n'a pas d'importance sur le serveur cible.

Nous travaillons sur une solution et avons un code de test en cours d'exécution et nous proposerons un correctif dès que possible.

Veuillez contacter ReetP sur le bogue si vous voulez aider à tester. Un correctif sera disponible plus rapidement si vous le faites.

Est-ce que cet article vous a été utile ?
Svp, envisagez de faire un don ou du volontariat.
Merci !

Développeur

Développeur : Michael Weinberger. Le développement et la maintenance d'Affa pour SME Server ont été interrompus. La nouvelle version Affa 3.X pour CentOS est disponible sur Sourceforge.

Mainteneurs

Mainteneurs(s) de smeserver-affa : Arnaud, stephdl

Versions

Devel 10:
Contrib 10:
Contrib 9:
smeserver-affa
The latest version of smeserver-affa is available in the SME repository, click on the version number(s) for more information.


Warning.png Attention :
il n'est pas possible de faire une mise à jour de affa vers smeserver-affa ; de même, il n'est pas possible d'utiliser les fichiers de configuration d'affa (en .pl) pour faire fonctionner smeserver-affa. Il faut tout désinstaller et installer la nouvelle contribution. La seule chose qui peut être conservée est le répertoire /var/affa.


Traducteurs

jibe

Pour la mise à jour: Arnaud

Affa signifie Automatische Festplatten Fernarchivierung, soit, approximativement, en français : sauvegarde automatique de disque dur à distance.


Warning.png Attention :
Affa est incompatible avec AutoBlock. Noter qu'AutoBlock est activé par défaut dans le Serveur SME 9. Utiliser de préférence Fail2ban.


Description

Le but principal de cette contribution Affa est de transformer en quelques minutes un serveur Kooali SME en un serveur dédié aux sauvegardes. Affa sauvegarde autant de serveurs Koozali SME que vous désirez sur n'importe quel autre serveur ayant sshd en service et rsync installés. Une fois qu'il est configuré, Affa fonctionne sans surveillance et de manière fiable, envoyant des messages d'avertissement en cas d'erreur.

Toutes les archives sont des sauvegardes complètes, puisqu'Affa utilise la technique des liens (hardlinks). Une nouvelle sauvegarde complète ne nécessite donc que l'espace disque pour les différences et les nécessités du système de fichier pour les hardlinks et les répertoires (ce qui représente généralement 2 à 3%).

Affa est fondé sur le programme rsync et supporte l'option --compress. Cela vous permet de lancer des sauvegardes via Internet ou VPN. Une configuration typique consiste en un ou plusieurs serveurs de sauvegarde Affa placés en des lieux déportés, qui sauvegardent les serveurs de production en VPN.

Une caractéristique spéciale est l'option « rise », qui vous permet de convertir votre serveur de sauvegarde en serveur de production depuis une archive sauvegardée en cas de perte totale de votre serveur de production. Cette conversion est exécutée en un temps très court, même avec une énorme quantité de données. Cette possibilité de conversion utilise les hardlinks et, de ce fait, n'utilise pas d'espace disque supplémentaire.

Cette caractéristique « rise » peut également être utilisée pour une mise à niveau vers une version plus récente de Koozali SME. Cela fonctionne en particulier pour passer de la 8.2 à la 9 MAIS CELA NE FONCTIONNE PAS DE LA VERSION 9.2 A LA 10. Lorsque cela est possible, il est nécessaire d'avoir 2 installations séparées de Koozali SME : l'une est l'actuel serveur de production (v.8.2, par exemple) et l'autre est le serveur Affa de sauvegarde en version nouvelle (v.9) sur lequel sera exécutée la commande « rise ». Plus d'information sur Déplacer le serveur Koozali SME sur une nouvelle machine.

Une façon simple d'avoir un serveur de production avec un maximum de disponibilité est de dupliquer le matériel. Par exemple, avoir deux serveurs en dur ou virtuels sur deux machines distinctes. L'un est l'actuel serveur de production et l'autre est le système de secours qui peut remplacer le serveur actuel en un temps très court au moyen de la commande « rise ». Cela permet aussi de monter la version du système d'exploitation du serveur Koozali SME avec un arrêt minimum !

Affa est un outil en ligne de commande pour les administrateurs système et est conçu intentionnellement sans interface graphique. De ce fait, il peut être géré efficacement depuis la console même via une connexion Internet lente.


Warning.png Attention :
le présent wiki désigne sous l’appellation Affa 3, la contribution «smeserver-affa» qui est une version dérivée de celle du développeur Michael Weinberger. Si Affa 3 devait désigner explicitement sa version pour CentOS, le wiki le dira précisément.



Important.png Note :
ce document fait également référence à la version Affa 2 qui n'est plus maintenue. L'information sur smeserver-affa v.3 sera ajoutée progressivement ici au fur à mesure de l'avancement des tests.


Un coup d’œil aux caractéristiques d'Affa

  • Affa est sûr : tous les transferts et connexions sont faits en utilisant le protocole ssh avec une authentification par clés publique/privée.
  • Lance périodiquement des sauvegardes complètes sans intervention.
  • Seules les différences avec la sauvegarde complète précédente sont transférées par le réseau.
  • Utilise rsync avec l'option de compression pour les connexions lentes, ce qui permet des sauvegardes via internet/VPN.
  • Utilise la technique des hardlink pour réduire l'espace disque physique à seulement ce qui est nécessaire pour les différences entre deux sauvegardes complètes.
  • Mémorise un nombre configurable de sauvegardes automatisées, journalières, hebdomadaires, mensuelles et annuelles.
  • On peut naviguer dans les archives sans avoir à les décompresser. Il n'est pas nécessaire de les décompresser d'abord.
  • Les archives peuvent être attachées à un partage Samba.
  • Les tâches de sauvegarde sont démarrées par le démon cron.
  • Les travaux interrompus continuent au redémarrage en tenant compte des données déjà transférées.
  • Sauvegarde les répertoires et fichiers e-smith par défaut, lorsque la propriété SMEServer est mise à 'yes'.
  • Des répertoires et fichiers supplémentaires peuvent être inclus.
  • Des répertoires et fichiers peuvent être exclus de la sauvegarde.
  • Les serveurs Linux non SME peuvent être sauvegardés en mettant la propriété SMEServer à 'no' et en utilisant une liste d'inclusion.
  • En mode ESXi, les machines virtuelles actives peuvent être sauvegardées. Voir Sauvegarde de machines virtuelles ESXi avec Affa, en anglais.
  • Priorité configurable (nice level) pour les process rsync sur les serveurs backup et source.
  • Possibilité de lancer des programmes personnels avant et après le lancement d'une tâche (par exemple, lancement d'une sauvegarde sur bande).
  • Vérification de l'espace disque disponible après le lancement d'une tâche avec niveaux d'avertissement strict, normal ou risqué.
  • Vérification étendue des conditions d'échec.
  • Envoi de messages d'échec à une liste configurable d'adresses courriels.
  • Envoi d'un message d'avertissement si le serveur de backup n'a plus d'espace disque disponible.
  • Installe un chien de garde optionnel sur le serveur source vérifiant la disponibilité du serveur de backup (Serveur SME seulement).
  • Le chien de garde envoie des avertissements, si une sauvegarde programmée n'a pas été lancée (serveur Koozali SME seulement).
  • Le chien de garde envoie un message journalier de rappel tant que l'erreur n'est pas corrigée (serveur Koozali SME seulement).
  • Possibilité d'afficher l'état courant de toutes les tâches, montrant les heures de dernier et prochain lancement, la taille et l'espace disque utilisé.
  • Le statut des sauvegardes peut être envoyé par courriel journellement, hebdomadairement ou mensuellement.
  • Possibilité d'afficher toutes les archives existantes pour une tâche, montrant la date, le nombre de fichiers et l'espace disque.
  • Possibilité d'envoyer (et de retirer) la clé publique au serveur source (serveur Koozali SME et ESXi seulement).
  • Option pour convertir le serveur de sauvegardes en serveur de production (serveur Koozali SME seulement).
  • La fonction de conversion ne déplace pas physiquement les données et est donc extrêmement rapide et ne nécessite (presque) pas d'espace disque.
  • La fonction de conversion peut être lancée à distance puisque les drivers ethernet du serveur de sauvegarde sont conservés.
  • Comparaison optionnelle des RPMs installés entre les serveurs source et de sauvegarde. Envoie un avertissement s'il n'y a pas correspondance.
  • Annulation de la conversion pour remise en service du serveur de sauvegardes.
  • Configurable par commandes style e-smith db, avec un enregistrement pour chaque tâche et un enregistrement par défaut commun à toutes les tâches.
  • Logs dans /var/log/affa/JOB.log et /var/log/affa/affa.log avec option debug pour plus de détails.
  • Les fichiers de log sont permutés hebdomadairement, avec 5 fichiers conservés.
Warning.png Warning:
SME v7/8/9 are no longer supported.

Installation d'Affa v.3

Pour SME 9

Important.png Note :
Affa est incompatible avec AutoBlock. Noter qu'AutoBlock est activé par défaut dans le Serveur SME 9. Utiliser de préférence Fail2ban.

Pour vérifier qu'AutoBlock est bien désactivé :

db configuration show sshd

Si ce n'est pas le cas, voir sur AutoBlock SSH pour le désactiver


Les instructions suivantes supposent qu'une nouvelle installation d'Affa v.3 est faite sur un nouveau Serveur SME dédié qui sert de serveur de sauvegarde dédié (dénommé par la suite «affabox»). Les tâches ne sont pas migrées, ni migrables depuis Affa v.2. Pour utiliser un Serveur SME existant, il suffit de sauter les instructions relatives à l'installation d'un nouveau Serveur SME.

Installer à partir d'un CDROM une machine dédiée en version 9.x. Utiliser l'exemple suivant de configuration :

  1. Nom de domaine : chezmoi.xx (utiliser votre nom de domaine existant) ;
  2. Nom d'hôte : affabox (ne doit pas correspondre à un hôte existant) ;
  3. Adresse IP : 192.168.0.10 (ne doit pas correspondre à une adresse IP existante) ;
  4. Sous-réseau : 255.255.255.0 ;
  5. Mode : Server only ;
  6. Passerelle : 192.168.0.1 (utiliser sa passerelle existante) ;
  7. DHCP: désactiver ;
  8. Serveur DNS : 192.168.0.1 (utiliser votre serveur DNS existant) ;
  9. Activer les changements : oui ;
  10. Le nouveau serveur sera ensuite redémarré avec les réglages ci-dessus.

Pour mettre à jour votre serveur, se connecter en « root » sur la console locale. Utiliser la commande 'top' pour visualiser les tâches en fonctionnement. Attendre jusqu'à ce que 'yum' ait arrêté toute tâche en cours.

yum clean all
yum update

Le nouveau serveur doit être mis à jour.

signal-event post-upgrade
signal-event reboot

Le serveur redémarrera. Après cela, il est prêt pour l'installation d'Affa v.3.

Se connecter en « root » en local ou par une console SSH à distance sur affabox (le serveur de sauvegarde sur lequel on installe Affa).

Pour SME 10

Il existe une nouvelle version : la 3.3.1. Cependant, Affa est un objet très compliqué avec un grand nombre d'options et beaucoup n'ont probablement pas été suffisamment testées malgré les demandes de tests et de retours. La plupart des principaux composants devraient fonctionner, mais il se peut qu'il y ait une pléthore de cas extrêmes qui échouent.


Warning.png Attention :
ne comptez pas sur Affa comme votre seule sauvegarde. Assurez-vous également d'avoir un autre type de sauvegarde.



Warning.png Attention :
n'utilisez AUCUNE version affa de Koozali SME v9 avec la v10. Cela cassera probablement à la fois vos sauvegardes et votre nouveau serveur.


Nous avons effectué des tests très minimes sur la migration de la v9 vers la v10.

Voir https://bugs.contribs.org/show_bug.cgi?id=11024

Dans des circonstances normales, vous exécuteriez ceci pour installer :

yum install smeserver-extrarepositories-epel smeserver-extrarepositories-openfusion
signal-event yum-modify
config set UnsavedChanges no
yum install --enablerepo=smecontribs,epel,openfusion smeserver-affa

Durant le développement, l'installation peut être effectuuée par :

yum install --enablerepo=smedev,epel,openfusion,smedev smeserver-affa

Veuillez publier des rapports de bogues dans le bug tracker

Le serveur doit, à nouveau, être mis à jour :

signal-event post-upgrade
signal-event reboot

Le serveur redémarrera. Ensuite, Affa 3 est prêt à être utilisé.


Warning.png Attention :
notez que sur SME10, une fonctionnalité SSH AutoBlock interfère avec l'exigence d'Affa de connexions SSH normales ! Vous devrez peut-être désactiver cette fonctionnalité ou augmenter notablement le paramètre « MaxAuthtries » pour permettre à Affa de fonctionner correctement.



Important.png Note :
noter qu'AutoBlock est activé par défaut dans le Serveur SME 10. Utiliser de préférence Fail2ban.

Pour vérifier qu'AutoBlock est bien désactivé :

db configuration show sshd

Si ce n'est pas le cas, voir sur AutoBlock SSH pour le désactiver.


Création de tâches de sauvegarde

Les configurations des tâches d'Affa 3 ne sont plus rangées dans une base de données de style « e-smith ». Elles sont rangées dans des fichiers de configuration situés dans /etc/affa. Créez vos fichiers de configuration dans ce répertoire, par exemple :

touch /etc/affa/backup-smeserver.conf

backup-smeserver est le nom de votre tâche, et ajoutez du contenu comme décrit ci-dessous.

Exemple de démarrage rapide

Vous avez un serveur SME de production avec comme nom d'hôte 'smeserver‘ et d'IP 192.168.0.2.
Vous avez un second serveur SME comme serveur de sauvegarde avec comme nom d'hôte 'affabox‘ et d'IP 192.168.0.10.

  1. Connectez-vous à 'affabox' en tant que « root » et installez la contribution comme indiqué ci-dessus.
  2. Editez /etc/affa/backup-smeserver.conf. En utilisant, par exemple, l'éditeur nano, créez le fichier de configuration de tâche à partir de l’exemple suivant ayant pour nom de tâche backup-smeserver :
    [backup-smeserver]
    remoteHostName=192.168.0.2
    SMEServer=yes
    Watchdog=yes
    RPMCheck=yes
    ConnectionCheckTimeout=120
    Debug=no
    Description=Backup of 192.168.0.2 smeserver.athome.xx
    DiskSpaceWarn=strict
    RootDir=/var/affa
    TimeSchedule=0630
    localNice=15
    remoteNice=15
    rsync--inplace=yes
    rsyncCompress=no
    rsyncTimeout=900
    scheduledKeep=1
    dailyKeep=7
    weeklyKeep=4
    monthlyKeep=12
    yearlyKeep=1
    status=enabled
    Si vous avez un certificat Letsencrypt sur le serveur de production, alors vous devez ajouter la ligne :
    Include=/etc/dehydrated
    Sauvegardez ensuite votre fichier de configuration de tâche.
  3. Désactiver le fichier de configuration inutilisé :
    mv /etc/affa/localhost.conf /etc/affa/localhost.conf.sample
  4. Vérifiez maintenant que votre configuration est correcte :
    affa --configcheck
    Cela ne devrait révéler aucune erreur.
  5. Maintenant créez vos clés rsa et envoyez votre clé publique à votre serveur SME de production :
    affa --send-key backup-smeserver

    Important.png Note :
    initialement, lorsque vous faites cette étape, vous devez temporairement mettre « oui » à « Autoriser l'authentification par SSH à l'aide de mots de passe standards » dans l'accès à distance sur le serveur de production. [[1]]

    Les sorties suivantes doivent apparaître sur la console :

    Job backup-smeserver: Generating RSA keys...
    Successfully created RSA key pair.
    root@192.168.0.2's password:                        <Entrer le mot de passe de 192.168.0.2/smeserver et appuyer sur la touche ENTRÉE>
    Public key sent to 192.168.0.2


    Important.png Note :
    si tout s'est bien déroulé, remettez immédiatement « non » à « Autoriser l'authentification par SSH à l'aide de mots de passe standards » dans l'accès à distance sur le serveur de production.

  6. Maintenant, lancez votre tâche manuellement, tant à des fins de test que pour valider à l'occasion de la première connexion l'authenticité du serveur de production qui présente ses clés :
    affa --run backup-smeserver
    Les sorties suivantes doivent apparaître sur la console :
    The authenticity of host 'smeserver (192.168.0.2)' can't be established.
    ED25519 key fingerprint is SHA256:Zgq4J....
    ED25519 key fingerprint is MD5:83:82:5f...
    Are you sure you want ton continue connecting (yes/no)? <Tapez : yes>

    Maintenant votre sauvegarde devrait fonctionner pour la première fois. En fonction du volume des fichiers, cela prend un certain temps.

    Warning.png Attention :
    du fait de la probable durée importante de la première sauvegarde, on peut légitimement être tenté de mettre une éperluète («&») à la fin de cette commande pour récupérer la main et pouvoir vérifier par une commande («top» ou autre) que la sauvegarde fonctionne... au lieu de se rendre compte plusieurs heures plus tard qu'elle ne fonctionne pas... Comme il faut accepter la clé RSA, il ne faut surtout pas le faire ! Solution : se connecter en ssh au serveur de sauvegarde pour vérifier que tout fonctionne bien.


  7. Une fois la tâche terminée, vérifier que l'archive est disponible :
    affa --list-archives

    ou lancez la tâche une seconde fois :

    affa --run backup-smeserver

    Notez que le mot de passe ne vous est plus demandé. Notez aussi que cette seconde exécution de la tâche backup-smeserver s’exécutera considérablement plus vite, parce que tous les fichiers ne sont pas copiés de nouveau : seule la différence par rapport à la première exécution est sauvegardée, le reste est enregistré sous la forme de liens vers les copies des fichiers de la première sauvegarde. Vérifiez que la seconde archive est aussi disponible :
    affa --list-archives
    À partir d'ici, vous pouvez travailler comme avec Affa 2. Modifiez votre fichier de configuration comme prescrit et décrit ci-dessous. Automatisez la sauvegarde en utilisant la commande affa --make-cronjobs, voir ci-dessous.

    Modèles de configuration

    Vous trouverez dans /etc/affa des exemples de fichiers de configuration qu'il suffit de copier et de renommer avec une terminaison en .conf pour qu'ils soient pris en compte par le système. Ces exemples couvrent plusieurs situations : sauvegardes entre 2 serveurs SME, sauvegarde vers une connexion USB, ...

    Lorsqu'une tâche est démarrée, affa installe un script «chien de garde» sur la source dans /etc/cron.d/, qui envoie un message d'avertissement, si la prochaine tâche planifiée (extraite de la propriété TimeSchedule + 10 minutes) n'a pas été exécutée. Cela garantit que vous serez averti même en cas de panne d'un serveur affa. Le script de chien de garde envoie un message de rappel quotidien, si l'erreur persiste. Le prochain travail d'exécution remplace le script de chien de garde par un nouveau temps de déclenchement.

    Propriétés de configuration d'une tâche

    Note 1 : les valeurs par défaut indiquées dans cette table sont les valeurs par défaut du programme Affa et ne doivent pas être confondues avec les valeurs prédéfinies des fichiers de configuration de tâche, par exemple, «backup-smeserver.conf».

    Note 2 : la documentation complète sur les configurations d'Affa 3 est disponible (en anglais) sur [2]. Elle doit être prise en considération !

    Note 3 : Affa 3 pour SME (smeserver-affa) est un programme dérivé de Affa 3 pour CentOS. Il rétablit quelques options qui avaient été enlevées par le développeur lorsqu'il a abandonné SME pour CentOS en passant de la version 2 à la version 3. Généralement, les propriétés de configuration décrites ici s'appliquent. Arnaud a rétabli les fonctions suivantes pour SME :

    • le paramètre «SMEServer» ;
    • le paramètre et la fonction «Watchdog» ;
    • le paramètre et la fonction «RPMCheck» ;
    • les fonctions «--rise» and «--undo-rise».

    En conséquence, la liste ci-dessous devrait reproduire la liste de la version Affa 3 originale, en ajoutant en plus les propriétés ci-dessus. Pour des détails, se référer au site Internet d'Arnaud.

    Propriété Valeur Valeur multiple Par défaut Description
    remoteHostName FQHN ou IP non <aucune> FQHN ou IP de l'hôte source (obligatoire).
    remoteUser utilisateur non root Le compte d'utilisateur à utiliser pour toutes les connexions ssh. Peut être sensible à la casse, par exemple le compte Administrateur sur Windows.
    Description chaîne de texte non <aucune> Tout texte qui décrit la tâche.
    TimeSchedule HHMM oui 2230 L'horaire à laquelle la tâche s'exécutera. Utiliser exactement 4 chiffres, pas de virgule, pas de point. Important : l'utilisation du format correct HHMM est essentielle. Des horaires mal formatés causeront d’étranges erreurs Perl. Pour obtenir plusieurs sauvegardes par jour, répéter la ligne : une ligne pour chaque horaire désiré.
    status enabled ou disabled non enabled S'il est réglé à désactivé (disabled), aucune entrée «cron» ne sera faite. Vous pouvez cependant lancer une tâche manuellement.
    DiskSpaceWarn strict ou normal ou risky ou none non strict Lance une vérification de l'espace disque après qu'une tâche soit terminée. Avec le niveau 'strict' un message d'avertissement sera envoyé si l'espace disponible est moins que la taille de la sauvegarde qui vient de s'achever. Avec les niveaux 'normal'/'risky' le message est envoyé si moins de 50%/10% de la taille de la sauvegarde reste disponible.

    Note : lorsque RootDir est un lien symbolique vers un autre système de fichiers, l'espace disque utilisé du système de fichiers local est vérifié à la place de celui du système de fichiers lié. Positionnez le point de montage comme RootDir pour avoir une vérification correcte.

    Include chemin complet oui <aucun> Fichier(s) ou répertoire(s) à inclure dans la sauvegarde.
    Exclude chemin complet oui <aucun> Fichier(s) ou répertoire(s) à exclure de la sauvegarde.
    RootDir chemin complet non /var/affa Répertoire où stocker les archives de sauvegarde. Ne pas utiliser /home/e-smith ou /root parce que ces répertoires sont inclus dans la sauvegarde. Par conséquent, l'option «rise» ne fonctionnera pas ! Recommandée : /var/affa.
    scheduledKeep entier >= 1 non 1 Nombre de sauvegardes programmées à conserver.
    dailyKeep entier >= 0 non 7 Nombre de sauvegardes journalières à conserver.
    weeklyKeep entier >= 0 non 4 Nombre de sauvegardes hebdomadaires à conserver.
    monthlyKeep entier >= 0 non 12 Nombre de sauvegardes mensuelles à conserver.
    yearlyKeep entier >= 0 non 2 Nombre de sauvegardes annuelles à conserver.
    EmailAddress nom@domaine.com oui root Mettre une virgule en séparation des adresses de courriel où les messages seront envoyés.
    Note : par défaut, Affa envoie seulement des messages en cas d'erreurs, jamais en en cas de succès (voir la propriété chattyOnSuccess).
    RetryAttempts entier >= 0 non 4 Quand la valeur est > 0, Affa re-exécute une tâche en échec «RetryAttempts» fois après un délai de «RetryAfter» secondes.
    RetryAfter secondes >= 0 non 900 Quand la valeur est > 0, Affa attend «RetryAfter» secondes avant de ré-exécuter la tâche après une erreur. Applicable seulement si «RetryAttempts» > 0.
    RetryNotification yes ou no non no Quand la valeur est réglée à «non», Affa n'envoie pas de message d'erreur quand une tâche a échoué et que «RetryAttempts» est configuré (c-a-d > 0). Un message d’erreur est envoyé seulement si la dernière tentative échoue.
    NRPEtrigger heures non 24 NRPE signale une tâche comme critique quand la dernière exécution réussie date de plus de «NRPEtrigger» heures. Pour exclure la tâche de ce contrôle, mettre une valeur négative.
    SambaShare yes ou no non no Accès aux archives de la tâche via le protocole CIFS.
    SambaValidUser compte local oui affa Utilisateur(s) qui a(ont) la permission d'accéder aux archives de la tâche via le protocole CIFS.
    preJobCommand
    preJobCommandRemote
    chemin relatif vers /etc/affa/scripts/ oui <none> Scripts à exécuter avant le fonctionnement d'une tâche. Le nom de la tâche et le type («scheduled», «daily», etc.) sont passés en arguments au programme. Les scripts «preJobCommandRemote» sont copiés sur le serveur distant (serveur de production) puis y sont exécutés. Les scripts sont exécutés pas ordre alphabétique. Utiliser un préfixe numérique si vous avez besoin d'un ordre particulier, par exemple, 01scriptB, 02remotescriptA, 03scriptA. Utiliser les exemples inclus - prescript-sample.pl et prescriptRemote-sample.pl - comme point de départ de vos propres scripts.
    Note : si vous utilisez le paramètre «SMEServer=yes», vous pouvez effacer le paramètre «Included» relatif aux répertoires par défaut de SME dans jobconfig.ini : ils seront sauvegardés automatiquement.
    postJobCommand
    postJobCommandRemote
    chemin relatif vers /etc/affa/scripts/ oui <none> Scripts à exécuter après le fonctionnement d'une tâche. Le nom de la tâche et le type («scheduled», «daily», etc.) sont passés en arguments au programme. Les scripts «postJobCommandRemote» sont copiés sur le serveur distant (serveur de production) puis y sont exécutés. Les scripts sont exécutés pas ordre alphabétique. Utiliser un préfixe numérique si vous avez besoin d'un ordre particulier, par exemple, 01scriptB, 02remotescriptA, 03scriptA. Utiliser les exemples inclus - postscript-sample.pl et postscriptRemote-sample.pl - comme point de départ de vos propres scripts.
    Note : si vous utilisez le paramètre «SMEServer=yes», vous pouvez effacer le paramètre «Included» relatif aux répertoires par défaut de SME dans jobconfig.ini : ils seront sauvegardés automatiquement.
    dedup yes ou no non no Le but de la dé-duplication est de supprimer les fichiers dupliqués pour économiser de l'espace de sauvegarde. Quand elle est réglée à 'yes', la dé-duplication de fichier s'exécute après la fin de la synchronisation. Elle recherche les fichiers qui ont des contenus, des propriétaires, des groupes et des droits identiques et les remplace par des liens durs. La dé-duplication scanne l'archive qui vient d'être terminée et la précédente, qui sont habituellement «scheduled.0» et «daily.0» ou «scheduled.0» et «scheduled.1». Considérer ce scénario : un utilisateur a renommé des sous-répertoires ou des fichiers. «Rsync» va les voir comme des nouveaux et va les copier. La dé-duplication trouvera les copies identiques dans l'archive précédente et les remplacera par des liens durs. Pour faire fonctionner la dé-duplication, le programme «Freedup» doit être installé. Affa exécute actuellement : freedup -upg scheduled.0 <archive_précédente>.
    dedupKill yes ou no non no Quand le paramètre est réglé à 'no', la tâche ignore «affa --kill» ou «affa --killall» quand la dé-duplication est en exécution. C'est utile dans le contexte de «killAt» qui est ttypiquemment utilisé pour arrêter l'utilisation de la bande passante.
    sshPort port de service non 22 Quand sshd de l'hôte distant (le serveur de production) écoute sur un port non-standard, régler le port ici.
    ConnectionCheckTimeout secondes non 120 Affa vérifie la connexion ssh avant de démarrer le processus «rsync» et s'arrête en déclenchant une erreur au bout de la durée configurée si l'hôte ne répond pas.
    BandwidthLimit entier>=0 kilobits par seconde non 0 Limite le taux de transfert des données. La valeur 0 indique aucune limite.
    rsyncTimeout secondes non 900 Rsync s'arrête lorsque la durée configurée est dépassée si aucune donnée n'a été transférée. Cela évite une attente infinie en cas d'erreur réseau.
    rsyncCompress yes or no non yes Compresse les données transférées. Peut être utile avec les connections Internet lentes. Augmente la charge CPU sur les hôtes sauvegardé et distant.
    rsync--inplace yes or no non yes Configurer à «no» si la version de «rsync» sur l'hôte distant ne prend pas en charge cette option.
    rsync--modify-window integer >= 0 non 0 Lors de la comparaison de deux horodatages, «rsync» traite les horodatages comme étant égaux s'ils ne diffèrent pas plus que la valeur «modify-window». C'est normalement 0 pour une correspondance exacte. Une valeur >= 0 est utile si vous ne pouvez pas synchroniser les horloges de l'hôte distant et du serveur Affa.
    rsyncOptions string non <none> Séquence d'option supplémentaire à transmettre à «rsync».
    localNice -19...+19 non 0 Facteur de priorité de «rsync» sur la machine locale.
    remoteNice -19...+19 non 0 Facteur de priorité de «rsync» sur la machine distante.
    killAt HHMM non <none> L'heure à laquelle la tâche sera arrêtée si elle était encore en fonctionnement. Vous pouvez, par exemple, utiliser ceci pour arrêter en début de matinée des tâches qui fonctionnent au travers d'Internet de façon à ce que vos utilisateurs aient toute la bande passante disponible pendant les heures de bureau.
    resumeKilledAt HHMM non <none> L'heure à laquelle une tâche arrêtée sera reprise. Cela vous permet de commencer plus tôt dans la soirée que l'heure prévue pour la sauvegarde.
    chattyOnSuccess entier >= 0 non 0 Lorsqu'elle est définie sur une valeur supérieure à 0, Affa envoie un message lors de l'exécution d'une tâche réalisée avec succès et décrémente la valeur chattyOnSuccess d'une unité. Lorsque la valeur a atteint zéro, Affa revient au comportement par défaut et n'envoie des messages qu'en cas d'erreurs.
    AutomountDevice
    AutomountPoint
    chemin complet non <none> Périphérique et point de montage du périphérique de sauvegarde (par exemple, disque USB). Le périphérique est monté automatiquement avant qu'une tâche démarre et démonté après la fin de la tâche. Avec les deux propriétés vides, aucun montage automatique n'est effectué.
    AutomountOptions chaîne de caractères non <none> Une chaîne de caractère d'options appliquée à la commande «mount».
    AutoUnmount yes ou no non yes Configuré à «no», le périphérique monté automatiquement reste monté après le fonctionnement d'Affa.
    Debug yes ou no non no Configurer à «yes» pour augmenter la verbosité du journal.
    remoteRsyncBinary chemin complet non /usr/bin/rsync Si le programme «rsync» du serveur distant est situé à un emplacement non conventionnel, configurez-le ici.
    remoteNiceBinary chemin complet non /bin/nice Si le programme «nice» du serveur distant est situé à un emplacement non conventionnel, configurez-le ici.
    localRsyncBinary chemin complet non /usr/bin/rsync Si le programme «rsync» local est situé à un emplacement non conventionnel, configurez-le ici.
    localNiceBinary chemin complet non /bin/nice Si le programme «nice» local est situé à un emplacement non conventionnel, configurez-le ici.
    RemoteAuthorizedKeysFile chemin relatif au «home» de l'utilisateur distant ou chemin complet non .ssh/authorized_keys2 Si l'hôte distant enregistre le fichier des clés autorisées à un emplacement non conventionnel, configurez-le ici.
    rsyncdMode yes ou no non no Configurer à «yes» pour se connecter au démon «rsync» de l'hôte distant (au lieu de le faire au travers de ssh).
    rsyncdModule chaîne de caractères non AFFA Le nom du module «rsyncd» (applicable uniquement avec rsyncdMode=yes).
    rsyncdUser chaîne de caractères non affa Le nom d'utilisateur pour l'authentification au démon «rsync» (applicable seulement avec rsyncdMode=yes).
    rsyncdPassword chaîne de caractères non <none> Le mot de passe pour l'authentification au démon «rsync» (applicable seulement avec rsyncdMode=yes).
    globalStatus enabled ou disabled ou jobs non jobs Configurer à «enabled» ou «disabled» pour écraser les configurations des états de toutes les sections des tâches (par les réglages enregistrés dans la section [GlobalAffaConfig]). Configurée à la valeur «jobs», les configurations des états des sections des tâches sont actives.
    Note : cette propriété n'est autorisée que dans la section [GlobalAffaConfig].
    sendStatus daily ou weekly ou monthly ou never non weekly Définit à quelle fréquence le rapport sera envoyé.
    Note : cette propriété n'est autorisée que dans la section [GlobalAffaConfig].
    SMEServer yes ou no non no Configuré à «yes», les répertoires «e-smith» par défaut sont automatiquement inclus et la propriété RPMCheck=yes peut être utilisée.
    Note : cette propriété n'est pas implémentée dans «Affa 3 pour CentOS» ; elle a été ajoutée spécifiquement à la branche (fork) pour SME.
    RPMCheck yes ou no non no Applicable uniquement aux tâches qui sauvegardent un serveur SME. Compare l'installation des paquets de l'hôte source avec celle de l'hôte de sauvegarde affa. Envoie un message avec la liste des différences en cas de non synchronisation. Cette vérification est utile, si vous voulez avoir l'option de basculer le serveur de sauvegarde en un serveur de production à partir d'une sauvegarde.
    Note : cette propriété n'est pas implémentée dans «Affa 3 pour CentOS» ; elle a été ajoutée spécifiquement à la branche (fork) pour SME.
    Watchdog yes ou no non yes Applicable uniquement aux tâches qui sauvegardent un serveur SME. Lorsqu'une tâche est démarrée, affa installe un script «watchdog» sur la source dans /etc/cron.d/, qui envoie un message d'avertissement, si la prochaine tâche planifiée (extraite de la propriété TimeSchedule à laquelle est ajoutée 10 minutes) n'a pas été exécutée. Cela garantit que vous serez averti même en cas de panne du serveur affa. Le script du chien de garde envoie un message de rappel quotidien, si l'erreur persiste. La prochaine tâche d'exécution remplace le script de chien de garde par une nouvelle durée de déclenchement.
    Note : cette propriété n'est pas implémentée dans «Affa 3 pour CentOS» ; elle a été ajoutée spécifiquement à la branche (fork) pour SME.

    Propriétés de configuration par défaut

    Pour toutes les propriétés de type 'nom=valeur', les valeurs par défaut peuvent être configurées dans la section [GlobalAffaConfig] et sont utilisées dans toutes les configurations de tâche où la propriété correspondante est omise. Par exemple, quand ces propriétés sont fixées dans la section [GlobalAffaConfig], elles peuvent être omises dans les configurations de tâche spécifiques. C'est utile quand vous créez de nombreuses tâches similaires.

    Exemple : vous voulez configurer la propriété 'localNice' à 19 pour toutes les tâches. Ajoutez alors la section suivante dans l'un de vos fichiers de configuration :

    [GlobalAffaConfig]

    localNice=19
    

    Vous pouvez aussi mettre cette section dans le fichier de configuration dédié /etc/affa/GlobalAffaConfig.conf : elle sera plus facile à retrouver. En conséquence, vous n'avez pas besoin de configurer cette propriété dans vos tâches individuelles. Les propriétés définies dans cette section remplacent les valeurs par défaut.

    Propriétes des configurations globales

    Les propriétés spéciales suivantes sont applicables à la seule section [GlobalAffaConfig] :

    • sendStatus
    • globalStatus

    Toutes les tâches peuvent êtres désactivées à travers «cronjobs» en configurant «globalStatus» à «disabled».

    [GlobalAffaConfig]

    globalStatus=disabled
    

    Pour les remettre en service, soit effacer la ligne de configuration ci-dessus, soit configurer :

    globalStatus=jobs

    qui est la valeur par défaut.

    Vous pouvez aussi configurer la valeur à :

    globalStatus=enabled

    qui assure l'exécution de la tâche au travers de «cronjobs» et écrase les valeurs spécifiques dans la section spécifique de la tâche.

    Utilisation et options de ligne de commande

    Important.png Note :
    les options peuvent être abrégées tant qu'elles restent uniques, ex. --mak est identique à --make-cronjobs.

    affa --run JOB
    

    Lance une tâche. Normalement effectué par cronjob.

    affa --make-cronjobs
    

    Configure les tâches cron comme programmées dans les enregistrements de tâches. Exécutez cette commande pour appliquer les modifications des propriétés liées au temps, c’est-à-dire TimeSchedule, killAt et resumeKilledAt. Exécutez cette commande pour que les changements de configuration liés au temps, c'est-à-dire les propriétés de TimeSchedule, killAt et resumeKilledAt, soient efficients. Toutes les 15 minutes, Affa vérifie si un fichier de configuration est plus récent que le fichier cronjob et exécute la commande make-cronjobs si tel est le cas. Donc, vous n'avez pas besoin d'exécuter cette commande manuellement, vous pouvez également attendre au maximum 15 minutes avant l'entrée en vigueur de vos mises à jour.

    affa --configcheck
    

    Vérifie la syntaxe et les valeurs dans tous les fichiers de configuration trouvés dans /etc/affa/. Exécutez cette commande après avoir modifié la configuration. Les erreurs des minuscules / minuscules dans les noms de propriétés sont corrigées automatiquement.

    affa --send-key JOB
    affa --send-key --host=TARGETHOST [--port=PORT] [--remoteOS=cygwin]
    

    Génère d'abord la clé RSA pour le serveur Affa, si cela n'a pas déjà été fait. Envoie ensuite la clé publique à l'hôte 'remoteHostName' comme configuré dans l'enregistrement de la tâche et génère l'entrée ssh known host (hôte connu) spécifique à la tâche.

    Important.png Note :
    initialement, lorsque vous faites cette étape, vous aurez besoin d'activer temporairement «Autoriser l'authentification par SSH à l'aide de mots de passe standards» sur le serveur de production.

    Important.png Note :
    l'option --send-key fonctionne pour SME Server comme serveur distant et pour les systèmes sur lesquels les clés publiques sont stockées dans /root/.ssh/authorized_keys2 et sur lesquels les commandes /bin/cat, /bin/touch, /bin/grep et /bin/mv sont disponibles. Avec remoteOS=cygwin cela fonctionne pour les serveurs distants sous Cygwin/Windows.

    affa --check-connections [JOB JOB ...]
    

    Vérifie la connexion ssh et, si nécessaire, rsyncd auth, pour toutes les tâches données en arguments. Sans aucun argument, toutes les tâches sont vérifiées. Pour les tâches pour lesquelles la clé publique n'avait pas encore été envoyée, il vous sera demandé le mot de passe et la clé sera envoyée ensuite.

    affa --full-restore JOB [ARCHIVE]
    

    Effectue une restauration totale depuis l'archive de sauvegarde [ARCHIVE] sur le serveur source distant comme défini dans l'enregistrement JOB. Si [ARCHIVE] n'est pas donnée, l'archive 'scheduled.0' est utilisée par défaut. La restauration totale reconstruit le serveur comme il était au moment de la sauvegarde. Après la restauration, l'hôte source est redémarré. Avec l'option --preserve-newer=yes, les fichiers du serveur distant avec un heure de modification plus récente que celle de la sauvegarde ne sont pas écrasés. Avec l'option --delete=yes, tous les fichiers du serveur distant, qui ne sont pas dans la sauvegarde, sont effacés.

    Si le paramètre "SMEServer=yes" est défini, «signal-event pre-restore» et «signal-event post-upgrade» seront automatiquement exécutés.

    affa --list-archives JOB
    

    Affiche un tableau de toutes les archives actuelles de la tâche «JOB» avec la date, le nombre de fichiers, la taille et les octets reçus. Tandis que la colonne «buTime» affiche l'heure de synchronisation réelle, la colonne «ddTime» montre la durée de l'exécution de la déduplication. «DdYld» est le rendement de déduplication gagné en bits.

    Affa version 3.2.2.3-7 on affa-3.mondomaine.com
    +------------------------------------------------------------------------------+
    | Job: fshare-ak                                                               |
    | Description: Fileserver AK                                                   |
    | Directory: /var/affa/fshare-ak/                                              |
    | Hostname: 10.204.104.4                                                       |
    | Email: sysadmin@mondomaine.com                                                 |
    +-----+----------------------+--------+--------+-------+-------+-------+-------+
    | Run | Completion date      | buTime | ddTime | ddYld | Files | Size  | Recvd |
    +-----+----------------------+--------+--------+-------+-------+-------+-------+
    | Y 0 | Wed 2010-06-23 20:26 | 11m53s |      - |     - |  412k |  143G |  470M |
    +-----+----------------------+--------+--------+-------+-------+-------+-------+
    | M11 | Sun 2010-08-29 20:22 |  7m50s |      - |     - |  417k |  153G |   14M |
    | M10 | Sun 2010-09-26 20:23 | 8m57s  |      - |     - |  430k |  156G |   14M |
    | M 9 | Sun 2010-10-31 20:25 | 10m05s |      - |     - |  448k |  161G |   15M |
    | M 8 | Sun 2010-11-28 20:31 | 16m42s |      - |     - |  463k |  167G |   17M |
    | M 7 | Sun 2011-01-02 20:48 | 33m07s |      - |     - |  486k |  173G |  1.1G |
    | M 6 | Sun 2011-01-30 20:33 | 18m54s |      - |     - |  493k |  176G |   24M |
    | M 5 | Sun 2011-02-27 20:28 | 13m31s |      - |     - |  490k |  176G |   19M |
    | M 4 | Sun 2011-03-27 20:28 | 13m08s |      - |     - |  491k |  175G |   17M |
    | M 3 | Sun 2011-05-01 20:30 | 15m41s |      - |     - |  493k |  179G |   18M |
    | M 2 | Sun 2011-05-29 20:28 | 13m40s |      - |     - |  494k |  182G |   31M |
    | M 1 | Sun 2011-06-19 20:26 | 11m20s |      - |     - |  493k |  183G |   17M |
    | M 0 | Sun 2011-07-03 20:28 | 13m46s |      - |     - |  496k |  183G |   18M |
    +-----+----------------------+--------+--------+-------+-------+-------+-------+
    | W 3 | Sun 2011-07-10 20:28 | 13m38s |      - |     - |  479k |  180G |   16M |
    | W 2 | Mon 2011-07-11 20:35 | 20m27s |      - |     - |  479k |  180G |  301M |
    | W 1 | Fri 2011-07-15 20:30 | 15m53s |      - |     - |  480k |  180G |   62M |
    | W 0 | Sun 2011-07-24 19:39 |  9m25s |      - |     - |  482k |  181G |   16M |
    +-----+----------------------+--------+--------+-------+-------+-------+-------+
    | D 6 | Thu 2011-07-28 19:42 | 12m22s |      - |     - |  483k |  182G |  176M |
    | D 5 | Fri 2011-07-29 23:29 | 11m10s |  5h33m |   45G |  483k |  182G |   16M |
    | D 4 | Sat 2011-07-30 19:53 | 23m26s |  2h30m |  8.3G |  483k |  182G |   17M |
    | D 3 | Sun 2011-07-31 20:07 | 37m31s |  4m47s |  8.3G |  483k |  182G |   17M |
    | D 2 | Mon 2011-08-01 20:44 |  1h14m |  7h50m |  8.5G |  484k |  182G |  630M |
    | D 1 | Tue 2011-08-02 20:02 | 32m28s | 12h20m |  8.3G |  484k |  182G |   74M |
    | D 0 | Wed 2011-08-03 19:58 | 28m46s | 11h01m |  8.5G |  484k |  182G |  214M |
    +-----+----------------------+--------+--------+-------+-------+-------+-------+
    | S 0 | Thu 2011-08-04 20:00 | 30m28s | 11h52m |  8.5G |  484k |  182G |  203M |
    +-----+----------------------+--------+--------+-------+-------+-------+-------+
    
    affa --list-archives [--csv] JOB
    

    Avec l'option --csv, la sortie est dans le format séparé par des points virgules pour la lecture machine.

    Archive:Count;Date;Files;Size;RootDirFilesystemAvail;RootDirFilesystemUsed;valid;TotalBytesReceived;ExecutionTime;DedupTotalFiles;DedupReplacedFiles;DedupSavedBytes;DedupExectime;DedupDate
    monthly;00000;201509270631;393237;37252509103;166889260;47876936;yes;1327370;1160638358;99;;;;;
    weekly;00003;201510040531;390273;37042612135;164566692;50199504;yes;1117726;45430532;59;;;;;
    weekly;00002;201510110531;395553;37299589800;162612204;52153992;yes;1117092;92369237;64;;;;;
    weekly;00001;201510180531;403831;37707599172;161855844;52910352;yes;1317083;148317764;64;;;;;
    weekly;00000;201510250531;406509;38146200127;161041156;53725040;yes;1104759;64083948;63;;;;;
    daily;00006;201510310531;415663;39248862982;162979176;51787020;yes;1958110;198060283;66;;;;;
    daily;00005;201511010531;411014;38563389171;163061136;51705060;yes;1156506;48903675;75;;;;;
    daily;00004;201511020531;408910;38612857040;162359124;52407072;yes;1007434;210812387;75;;;;;
    daily;00003;201511030531;410615;37815861577;162026060;52740136;yes;1524069;162697515;67;;;;;
    daily;00002;201511040531;414784;38131734213;161990024;52776172;yes;1571657;134250735;63;;;;;
    daily;00001;201511050531;420780;38433895988;161906580;52859616;yes;2021507;149388808;103;;;;;
    daily;00000;201511060531;425920;38677614350;161778812;52987384;yes;1987971;166510621;71;;;;;
    scheduled;00000;201511070531;425663;38815712018;161612600;53153596;yes;2003540;139603231;68;;;;;
    
    affa --status [--csv]
    

    Affiche un tableau de toutes les tâches configurées avec le statut de validation, l'heure de la dernière et la prochaine exécution, la taille de l'archive la plus récente, la durée d'exécution de la dernière exécution et le nombre de sauvegardes conservées ce jour (S), quotidiennement (D), hebdomadaire (W) mensuelles (M) et annuelles (Y). Si la dernière fois indique «échoué», le travail n'a pas fonctionné dans les dernières 24 h. Pour les tâches désactivées, «Last» affiche toujours «échoué» après 24 h. Pour voir la date et l'heure de la dernière exécution de ces tâches, utilisez l'option --list-archives. La colonne «Suivant» indique l'heure à laquelle la prochaine exécution sera lancée, si «Activé» est à «oui». La colonne «ddYld» indique le rendement de déduplication en bits.

    Affa version 3.2.2.3-7 on affa-3.mondomaine.com
    +--------------+-----+-------+--------+-------+-------+-------+----------------+
    | Job          | ENA |  Last |   Time |  Next |  Size | ddYld | N of S,D,W,M,Y |
    +--------------+-----+-------+--------+-------+-------+-------+----------------+
    | ads-ak       | yes | 20:20 |  0m29s | 20:20 |   28M |     - |  1, 7, 2, 0, 0 |
    | ak-user-ma.. | yes | 22:31 |  1m51s | 22:30 |  170M |     - |  3, 7, 4, 6, 0 |
    | azubi-1      | yes | 03:39 |  3h24m | 00:15 |   44G |  1.2G |  1, 7, 4,10, 1 |
    | dcpant       | yes | 03:06 |  1m03s | 03:05 |  1.3G |     - |  1, 7, 4,10, 1 |
    | eshare       | yes | 21:06 | 21m01s | 20:45 |   24G |  178M |  1, 7, 4,10, 1 |
    | etherpad     | yes | 20:40 |  0m13s | 20:40 |  3.1M |     - |  1, 7, 4, 2, 0 |
    | fazubi       | yes | 08:16 | 11h16m | 21:00 |  132G |  3.3G |  1, 7, 4,10, 1 |
    | fschare-rh   | yes | de-duplicating (pid 9719)              |  1, 7, 4,10, 1 |
    | fsh-02       | yes | 07:53 | 12h23m | 19:30 |  182G |  8.5G |  1, 7, 4,10, 1 |
    | fshare-ak2   | yes | 00:30 |  0m26s | 00:30 |  415M |  544k |  1, 7, 4,10, 1 |
    | helpdesk     | yes | 21:27 |  2m16s | 21:25 |  895M |  138k |  1, 7, 4,10, 0 |
    | it-share     | yes | running rsync (pid 9744)               |  1, 7, 1, 0, 0 |
    | lightroom    | yes | waiting (pid 9528)                     |  1, 7, 4, 2, 0 |
    | localhost    | yes | 02:15 |  0m08s | 02:15 |  395k |     - |  1, 7, 2, 0, 0 |
    | mediawiki    | yes | 16:10 |  0m06s | 19:40 |  1.1G |  6.7M |  3, 7, 4,10, 1 |
    | mshare       | yes | 00:48 |  1h33m | 23:15 |   18G |  2.4G |  1, 7, 4,10, 1 |
    | wshare       | yes | 00:34 |  1h49m | 22:45 |   23G |  484M |  1, 7, 4,10, 1 |
    +--------------+-----+-------+--------+-------+-------+-------+----------------+
    2 tâches désactivées ne sont pas listées. Utilisez l'option --all pour les afficher.
    

    Avec l'option --csv, la sortie est dans le format séparé par des points virgules pour la lecture machine.

    affa --show-config-pathes [--csv] [JOB JOB ...]
    

    Imprime les chemins d'accès complets du fichier où la section de la tâche JOB est définie.

    affa --show-default-config
    

    Imprime une liste de tous les noms de propriétés autorisés avec leurs valeurs par défaut. Ces valeurs sont utilisées, lorsqu'elles sont omises dans les sections de tâche.

    affa --show-schedule [--all]
    

    Imprime un calendrier «graphique» pour tous les travaux activés. La résolution est de 30 minutes. Un caractère 'S' marque les heures de début programmées. La durée des travaux est marquée avec des caractères «=».

    Affa version 3.2.2.3-7 on affa-3.mondomaine.com
                  TIME 12:00    16:00    20:00    0:00     4:00     8:00
                fsh-02 -------- -------S ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ --------
                ads-ak -------- -------- S------- -------- -------- --------
              etherpad -------- -------- -S------ -------- -------- --------
                eshare -------- -------- -S~----- -------- -------- --------
                fazubi -------- -------- --S~~~~~ ~~~~~~~~ ~~~~~~~~ ~-------
              helpdesk -------- -------- --S----- -------- -------- --------
              it-share -------- -------- ---S=~~~ ~~~~~~~~ ~~~~~~~- -------- busy
                wshare -------- -------- -----S~~ ~~------ -------- --------
    ak-user-management -------- -------- -----S-- -------- -------- --------
            fschare-rh -------- -------- -----S=- -------- --~----- -------- busy
                mshare -------- -------- ------S= ~~------ -------- --------
               azubi-1 -------- -------- -------- S=~~~~~~ -------- --------
            fshare-ak2 -------- -------- -------- -S------ -------- --------
             mediawiki -------- -------- -------- ---S---- -------- ----S---
             localhost -------- -------- -------- ----S--- -------- --------
                dcpant -------- -------- -------- ------S- -------- --------
             lightroom -------- -------- -------- -------- -------- S------- busy
    Symboles: S=programmé K=stoppé R=reprise '='=rsync '~'=deduplication
    2 tâches désactivées ne sont pas listées. Utilisez l'option --all pour les afficher.
    
    affa --log-tail [JOB]
    

    Affiche la fin du fichier journal de la tâche JOB avec la mise à jour en direct. Cette commande est identique à :

    tail -n 50 -f /path/to/logfile

    Sans l'argument JOB, le fichier journal global est affiché.

    affa --send-status
    

    Envoie la table d'état, la liste de l'utilisation du disque et de l'archive de toutes les tâches aux adresses de messagerie configurées dans la section [GlobalAffaConfig].

    affa --disk-usage
    

    Indique l'utilisation actuelle du disque de tous les systèmes de fichiers de répertoire racine.

    Affa version 3.2.2.3-7 on affa-3.mondomaine.de
    +------+--------+--------+----------------------------------------------------+
    | Use% |   Used |  Avail | Root Dir                                           |
    +------+--------+--------+----------------------------------------------------+
    |  71% |  938GB |  365GB | /var/affa                                          |
    |  20% |  194GB |  759GB | /mnt/affadev                                       |
    +------+--------+--------+----------------------------------------------------+
    

    Avec l'option --csv, la sortie est dans le format séparé par des points virgules pour la lecture machine.

    affa --cleanup JOB
    

    Après avoir abaissé une valeur de conservation, par ex. par ScheduleKeep, les archives avec un indice plus élevé que configuré, ne seront plus supprimées automatiquement et existeront toujours. Cette option trouve ces archives et les supprime définitivement après confirmation. Lors de l'exécution de la commande de nettoyage sur un disque USB connecté localement, montez manuellement le disque USB AVANT d'exécuter cette commande. Lorsque vous avez terminé, démontez manuellement le disque USB. Cette exigence peut s’appliquer à certaines des autres commandes répertoriées ici.

    affa --rename-job JOB NouveauNom
    

    Renomme la tâche JOB en NouveauNom y compris dans le nom de section et dans les répertoires d'archivage.

    affa --move-archive JOB NouveauRepertoireRacine
    

    Déplace le répertoire d'archivage de la tâche JOB vers le répertoire racine NouveauRepertoireRacine et ajuste la valeur de la propriété RootDir. NouveauRepertoireRacine doit être un chemin complet commençant par une barre oblique. Comme le déplacement à travers le système de fichiers (par ex. d'un disque USB externe vers un disque local) n'est pas possible, Affa utilise une commande «copie» dans ce cas et efface le répertoire source après. En fonction de la taille de l'archive, la copie à travers les systèmes de fichiers peut durer longtemps.

    Information.png Astuce :
    voir également le paragraphe 8.2, plus bas.

    affa --delete-job [--revoke-key] JOB
    

    Efface irréversiblement une tâche, y compris toutes les archives, la configuration et les bases de données attachées. En passant l'option '--revoke-key', la clé publique sur le serveur distant sera détruite.

    affa --revoke-key JOB
    affa --revoke-key --host=TARGETHOST [--port=PORT] [--remoteOS=cygwin]
    

    Détruit la clé RSA publique sur le serveur distant.

    Important.png Note :
    l'option --revoke-key seule fonctionne sur SME Server comme serveur distant et pour les systèmes où les clés sont stockées dans /root/.ssh/authorized_keys2 Avec remoteOS=cygwin cela fonctionne pour les serveurs distants sous Cygwin/Windows.


    affa --kill JOB
    

    Termine la tâche en cours JOB et tous les processus fils (les processus rsync).

    affa --killall
    

    Terminates all running jobs.

    affa --mailtest JOB
    

    Envoie un courriel de test aux adresses électroniques configurées dans l'enregistrement de la tâche. Avec la propriété 'Watchdog' à 'yes', un courriel de test est aussi envoyé depuis le serveur distant. Utilisez cette fonctionnalité pour vérifier que l'envoi des courriels fonctionne.


    Important.png Note :
    par défaut, Affa n'envoie des messages qu'en cas d'erreur, jamais en cas de succès (voir la propriété 'chattyOnSuccess').

    affa --nrpe [JOB JOB ...]
    

    Checks for jobs that were not run the last NRPRtrigger hours and reports them as failed. A Nagios/ICINGA NRPE complient message is printed and exit status returned.

    affa --version
    

    Displays the Affa version number and checks Samba and Freedup installation.

    affa --warranty
    

    Displays the disclaimer of liability.

    affa --license
    

    Displays the license Affa is released under.

    affa --help
    

    Displays a short help.

    affa --debug
    

    Active un journal verbeux. Remplace la tâche et les configurations globales.

    Options d'utilisation et de lignes de commande spécifiques à SME

    Important.png Note :
    les commandes ci-dessous sont implémentées dans le programme dérivé «smeserver-affa» du projet Affa 3 pour une utilisation avec le Serveur SME. Elles ne font pas partie du projet Affa 3 pour CentOS.

    La fonction 'rise' pour le serveur SME

    affa --rise [--all] JOB [ARCHIVE]
    

    Lance une restauration totale depuis l'archive de sauvegarde [ARCHIVE] sur le serveur Affa (!) comme défini dans l'enregistrement JOB. Autrement dit, une fois terminée, le serveur de sauvegarde redémarre comme un clone du serveur source. Assurez-vous d'avoir arrêté le serveur source avant de rebooter le serveur de sauvegardes, sinon l'interface réseau ne sera pas activée. Cela est important, lorsque vous lancez --rise à distance. La fonction --rise ne fonctionne qu'avec les serveurs SME et ne devrait être utilisée que sur les serveurs de sauvegardes dédiés.

    Avec l'option --all, tous les fichiers et répertoires de l'archive tels que définis par les propriétés include[] sont restaurés. Les fichiers et répertoires avec le même nom sur le serveur Affa seront écrasés et ne peuvent pas être restaurés par un undo-rise. Cela ne devrait pas poser de problème sur un serveur Affa dédié qui ne contient aucune autre donnée. Après un éventuel undo-rise, ces données additionnelles restaurées doivent être supprimées manuellement.

    Remarquez que le processus rise sauvegarde le serveur Affa lui-même avant d'effectuer la restauration de l'archive. Cette sauvegarde est utilisée par un éventuel undo-rise pour restaurer le serveur Affa. Seuls les fichiers et répertoires standards sont sauvegardés. Les données dans des endroits non normalisés (comme /opt) ne sont pas touchées et existeront encore après le rise si elles n'ont pas été écrasées par les données de la sauvegarde (c'est-à-dire si la sauvegarde contient aussi le répertoire /opt, par exemple). Voir aussi : Backup_server_config#Standard_backup_.26_restore_inclusions


    affa --undo-rise
    

    Cette fonction reconvertit en serveur de sauvegarde un serveur Affa préalablement converti en serveur de production. Après un redémarrage, toutes les tâches configurées pour des fichiers et des répertoires normalisés (pour SME) fonctionneront à nouveau.


    affa --unchunk-archive JOB ARCHIVE
    

    Concatène et décompresse tous les fichiers découpés dans l'archive ARCHIVE de la tâche JOB pour rendre l'archive prête pour une restauration. Notez que l'archives la plus récente scheduled.0 n'est jamais découpée et donc qu'elle peut être restaurée telle quelle sans re-concaténation préalable.


    affa --chunk-archive JOB ARCHIVE
    

    Découpe et compresse tous les fichiers dont les noms correspondent à la propriété chunkFiles pour économiser l'espace disque. Cela ne devrait être utilisé que comme l'inverse de --unchunk-archive. Les découpages sont stockés en fichiers bzip2 dans un répertoire nommé FILENAME.affa-chunks avec 8 niveaux de profondeur.


    affa --create-backup-file JOB [ARCHIVE] [--outfile=FILE]
    

    Crée une archive tar gzippée FILE depuis l'ARCHIVE de la tâche JOB. Pendant la création la somme MD5 est calculée puis le fichier tar enregistré lui est comparé. L'archive par défaut est schedule.0 et le fichier FILE par défaut est./smeserver.tg. La somme de contrôle est écrite dans FILE.md5sum.

    Un fichier smeserver.tgz stocké sur un disque USB peut être utilisé pour restauration lors d'une nouvelle installation de SME Server.


    affa --disk-usage
    

    Affiche l'utilisation actuelle du disque pour les répertoires racine de tous les systèmes de fichiers.

    Affa version 2.0.0-rc4 on backup2.mydomain.de (10.204.0.52)
    +------+--------+--------+----------------------------------------------------+
    | Use% |   Used |  Avail | Root Dir                                           |
    +------+--------+--------+----------------------------------------------------+
    |  71% |  938GB |  365GB | /var/affa                                          |
    |  20% |  194GB |  759GB | /mnt/affadev                                       |
    +------+--------+--------+----------------------------------------------------+
    

    Avec --cxv, le tableau est généré selon un format séparé par des deux-points (:) lisible par les programmes.

    Exemples de configuration

    Serveur de sauvegarde dédié
    • Configurez une tâche pour chaque serveur que vous voulez sauvegarder
    • Envoyez les clés publiques à chaque serveur.
    affa --send-key JOBNAME
    
    • Envoie la clé RSA correspontante à la tâche JOBNAME.
    affa --check-connections
    
    • Vérifie que les connexions sans mot de passe fonctionnent.
    affa --show-schedule
    
    • Vérifie si les tâches planifiées sont réparties dans la journée.
    affa --make-cronjobs
    
    • Crée les tâches cron.
    affa --status
    
    • Vérifie l'état après 24 heures.
    Sauvegarder une ibay individuellement

    Supposons que nous voulions sauvegarder les ibays 'staff1' et 'staff2' de notre serveur de production dont l'adresse IP WAN est 82.123.1.1 sur un serveur Affa déporté via internet, toutes les nuits à 2h30.

    • On se connecte sur le serveur Affa et on installe les paquetages comme décrit ci-dessus.
    • On copie l'exemple de configuration
    cp /usr/lib/affa/jobconfig-sample.pl /root/ibay-staff-job.pl
    
    • On édite /root/ibay-staff-job.pl pour y mettre :
    my $jobname='ibay-staff';
    

    et

    'remoteHostName‘=>'82.123.1.1',

    'TimeSchedule'=>'0230',
    'SMEServer'=>'no',
    'Include[0]'=>'/home/e-smith/files/ibays/staff1',
    'Include[1]'=>'/home/e-smith/files/ibays/staff2',
    
    • On enregistre la configuration
    /root/ibay-staff-job.pl
    
    • On envoie la clé publique au serveur de production
    affa --send-key ibay-staff
    
    • On vérifie le lendemain matin :
    affa --list-archives ibay-staff
    affa --status
    
    • Vérifie l'état après 24 heures.
    ls /var/affa/ibay-staff
    
    Deux serveurs de production qui se sauvegardent mutuellement

    Vous avez deux sites connectés via un VPN et un serveur SME fonctionnant sur chaque site. Dans ce cas, vous n'avez pas besoin d'un serveur de sauvegarde Affa dédié. Les deux serveurs de production peuvent en plus agir chacun comme un serveur Affa sauvegardant le serveur de l'autre site. Installez simplement Affa et configurez une tâche qui sauvegarde l'autre serveur. Vous pouvez utiliser toutes les fonctionnalités Affa excepté la fonctionnalité rise. En utilisant la fonctionnalité rise, le serveur devient n'importe lequel des systèmes sauvegardés, ce qui est moins utile dans ce scénario puisque cela vous donnerait une copie fonctionnelle du serveur de l'autre site lorsque celui-ci est en panne.

    Pour obtenir une redondance et une restauration plus rapide, vous pouvez configurer une sauvegarde locale sur un disque USB externe ou sur un NAS.

    Attention de ne pas sauvegarder à nouveau les archives de l'autre site. Configurez la propriété RootDir vers un chemin qui n'est pas inclu dans la liste de sauvegarde par défaut de SME. En laissant la propriété RootDir par défaut sur '/var/affa', cela est garanti.

    Utiliser Affa pour sauvegarder un NAS monté par NFS ou un disque USB local

    On désire sauvegarder notre serveur SME 7 de production dont le nom d'hôte est 'prodbox' et l'IP 10.200.48.1 sur un système de fichiers monté plutôt que de configurer un serveur Affa dédié.

    Configuration du NAS

    On dispose d'un serveur FREENAS dont l'adresse IP est 10.200.48.2 en fonction et avec le service NFS activé. Le disque est monté sur /mnt/affashare. On a autorisé l'adresse IP de notre serveur de production à accéder au partage /mnt/affashare.

    • On se logge sur 'prodbox' et on installe les paquetages NFS :
    /usr/bin/yum install --enablerepo=smecontribs smeserver-nfs
    
    • maintenant, on active et on démarre le service portmapper.
    config setprop portmap status enabled
    service portmap start
    
    • On monte le partage NFS :
    mkdir -p /mnt/affadevice
    mount 10.200.48.2:/mnt/affashare /mnt/affadevice
    


    Alternative : configuration du disque USB
    • On se logge sur 'prodbox'
    • On connecte le disque USB sur le bus USB. On doit maintenant déterminer sur quel 'device' le noyau a placé le lecteur. On regarde /var/log/messages et on cherche la ligne d'initialisation correspondante (Initializing USB Mass Storage driver). Quelques lignes plus bas, on trouve le nom du device. Supposons qu'il s'agisse de 'sdh'. Si ce n'est pas le cas, on remplacera dans les instructions ci-après /dev/sdh par la valeur trouvée.
    • On crée une partition linux avec fdisk : Il faut bien vérifier que c'est bien le disque USB qui est attaché avant de continuer !
    fdisk /dev/sdh
    

    On trouvera probablement une partition dos vfat, qu'on devra d'abord détruire. Supposons que nous ayons créé une seule partition /dev/sdh1.

    • On formatte avec un système ext3 :
    mkfs.ext3 /dev/sdh1
    
    • On crée le point de montage :
    mkdir -p /mnt/affadevice
    
    • On ajoute notre disque USB dans /etc/fstab. On crée donc une nouvelle ligne avec :
    /dev/sdh1 /mnt/affadevice ext3 defaults
    
    • On monte le disque :
    mount /mnt/affadevice
    
    • On fait une vérification croisée avec df :
    df
    
    Copier une archive Affa d'un disque dur USB sur un nouveau disque

    Affa utilise un grand nombre de liens matériels (hard links) pour compresser et préserver de la place sur le disque pour les sauvegardes. Dans la situation où l'on voudrait copier un disque contenant une archive Affa sur un autre disque (de taille plus importante), il est nécessaire de s'assurer que les liens matériels ont été copiés correctement au risque que la copie devienne considérablement plus volumineuse que l'archive source.

    Une méthode pour copier à travers des systèmes de fichiers distincts (par ex. entre 2 disques usb différents) et préserver les liens matériels est la suivante:

    • monter les deux disques usb avec des points de montage différents, par exemple /media/backup1 et /media/backup2 et effectuer alors:
    mkdir /media/backup2/archive 
    cd /media/backup1/archive
    tar cpf - . | ( cd /media/backup2/archive && tar xpf - )
    

    en remplaçant archive par le véritable nom de l'archive (job) Affa que l'on souhaite placer sur l'autre disque.


    Configuration d'Affa

    On veut lancer des sauvegardes à 11h30, 15h30, 19h30 et on veut garder les 3 dernières, 7 journalières, 5 hebdomadaires, 12 mensuelles et 1 annuelle.

    • On se logge sur 'prodbox' et on installe les paquetages Affa comme indiqué ci-dessus.
    • On copie l'exemple de configuration
    cp /usr/lib/affa/jobconfig-sample.pl /root/prodbox-job.pl
    
    • On édite /root/prodbox-job.pl pour y mettre :
    my $jobname='prodbox';
    

    et

    'remoteHostName‘=>'localhost',

    'TimeSchedule'=>'1130,1530,1930',
    'scheduledKeep'=>3,
    'dailyKeep'=>7,
    'weeklyKeep'=>5,
    'monthlyKeep'=>12,
    'yearlyKeep'=>1,
    'RootDir=>'/mnt/affadevice',
    

    On vérifie les autres propriétés et on les change si besoin.

    • On enregistre la configuration
    /root/prodbox-job.pl
    
    • On lance la tâche manuellement :
    affa --run prodbox
    


    Limitations

    Avec ce type de configuration, on ne peut pas utiliser la fonction 'rise' (conversion du serveur de sauvegarde en serveur de production), puisqu'elle nécessite que l'archive soit sur le même système de fichiers que le serveur. La fonction 'rise' utilise les hardlinks, qui ne fonctionnent pas entre systèmes de fichiers différents.

    Automount : montage automatique

    Avoir les archives de sauvegarde sur le même système de fichiers est toujours un risque, qui peut être minimisé en utilisant la fonction automount. Ainsi, le système de fichiers externe n'est monté que durant le déroulement d'une tâche.

    Dans l'exemple NAS, configurez :

    'AutomountDevice=>'10.200.48.2:/mnt/affashare',

    'AutomountPoint =>'mnt/affadevice',
    

    et sautez l'étape 2

    Dans l'exemple du disque USB, configurez :

    'AutomountDevice=>'/dev/sdc1',

    'AutomountPoint =>'mnt/affadevice',
    

    et sautez les étapes 5 à 8.

    Le point de montage sera automatiquement créé, s'il n'existe pas.
    Pour accéder au répertoire de l'archive, vous devez le monter à la main.

    Copier une archive Affa d'un disque dur USB sur un nouveau disque

    Affa utilise un grand nombre de liens matériels (hard links) pour compresser et préserver de la place sur le disque pour les sauvegardes. Dans la situation où l'on voudrait copier un disque contenant une archive Affa sur un autre disque (de taille plus importante), il est nécessaire de s'assurer que les liens matériels ont été copiés correctement au risque que la copie devienne considérablement plus volumineuse que l'archive source.

    Une méthode pour copier à travers des systèmes de fichiers distincts (par ex. entre 2 disques usb différents) et préserver les liens matériels est la suivante:

    • monter les deux disques usb avec des points de montage différents, par exemple /media/backup1 et /media/backup2 et effectuer alors :
    mkdir /media/backup2/archive
    cd /media/backup1/archive
    tar cpf - . | ( cd /media/backup2/archive && tar xpf - ) 
    

    en remplaçant archive par le véritable nom de l'archive (job) Affa que l'on souhaite placer sur l'autre disque.

    Restauration

    Procédure valable pour Affa v.2 et v.3.

    Restauration de fichiers ou répertoires individuels

    Example 1 : Nous sommes le Mardi 6 Janvier 2009 quand l'utilisateur 'briedlin' vous demande de restaurer les messages de sa boite 'orders' qu'il a malencontreusement détruite lundi.

    • Vous devez d'abord regarder quelles sont les archives disponibles. Le nom de tâche de ce serveur de sauvegardes est 'primmail. Pour avoir une liste de toutes les archives, lancez
    affa --list-archives primmail
    

    (voir la liste exemple dans le chapitre Affa#Usage_and_command_line_options

    • Choisissez l'archive daily.0, qui a été créée la nuit de Lundi. Maintenant, restaurez la mailbox 'orders' en utilisant la commande rsync.
    • Maintenant, lancez la commande rsync (notez le slash en fin !) sur le serveur de sauvegarde Affa.
    export RDIR=/home/e-smith/files/users/briedlin/Maildir/.orders/  # cette variable est utilisée pour raccourcir la ligne de commande suivante
    rsync -av /var/affa/primmail/daily.0/$RDIR 10.204.48.1:$RDIR
    

    Si les serveurs sont configurés pour utiliser un port ssh différent, ex. 2222, à la place faites :

    export RDIR=/home/e-smith/files/users/briedlin/Maildir/.orders/  # cette variable est utilisée pour raccourcir la ligne de commande suivante
    rsync -av -e 'ssh -i /root/.ssh/id_rsa_affa -p 2222' /var/affa/primmail/daily.0/$RDIR 10.204.48.1:$RDIR
    


    Example 2 : Un utilisateur a effacé le fichier orderform.pdf dans l'ibay 'docs' du serveur 10.204.48.1 et vous demande de le restaurer.

    • Vous avez cherché et trouvé la dernière version de ce fichier dans l'archive hebdomadaire de la tâche 'prodserv'.
    • Pour la recopier vers le serveur 10.204.48.1 lancez sur le serveur Affa
    export RFILE=/home/e-smith/files/ibays/docs/files/orderform.pdf  # cette variable est utilisée pour raccourcir la ligne de commande suivante
    rsync -av /var/affa/prodserv/weekly.1/$RFILE 10.204.48.1:$RFILE
    

    Si les serveurs sont configurés pour utiliser un port ssh différent, ex. 2222, à la place faites :

    export RFILE=/home/e-smith/files/ibays/docs/files/orderform.pdf # cette variable est utilisée pour raccourcir la ligne de commande suivante

    rsync -av -e 'ssh -i /root/.ssh/id_rsa_affa -p 2222' /var/affa/prodserv/weekly.1/$RFILE 10.204.48.1:$RFILE
    


    Example 3 : Restaurer un fichier avec un caractère spécial dans le chemin

    N'utilisez pas les variables shell pour raccourcir la commande. Cela compliquerait les choses plus que cela aiderait. Mettez entre guillemets les chemins source et destination. Dans le chemin de destination, echappez les caractères blancs avec un double backslash et les parenthèses avec un simple backslash. Sur le serveur de sauvegardes AFFA lancez :

    rsync -av "/var/affa/fileshare/daily.4/home/e-smith/files/ibays/mechfiles/files/Valve Control (Design Gr)/VALVE LIST FOR ISSUED.xls" "192.168.1.7:/home/e-smith/files/ibays/mechfiles/files/Valve\\ Control\\ \(Design\\ Gr\)/VALVE\\ LIST\\ FOR\\ ISSUED.xls"

    Si les serveurs sont configurés pour utiliser un port ssh différent, ex. 2222, à la place faites :

    rsync -av -e 'ssh -i /root/.ssh/id_rsa_affa -p 2222' "/var/affa/fileshare/daily.4/home/e-smith/files/ibays/mechfiles/files/Valve Control (Design Gr)/VALVE LIST FOR ISSUED.xls" "192.168.1.7:/home/e-smith/files/ibays/mechfiles/files/Valve\\ Control\\ \(Design\\ Gr\)/VALVE\\ LIST\\ FOR\\ ISSUED.xls"
    

    Restauration complète

    Pour lancer une restauration complète des utilisateurs et des données de configuration, lancez sur le serveur Affa

    affa --full-restore <JOB> [<ARCHIVE>]

    Cela synchronise (par rsync) les données de la sauvegarde ARCHIVE vers l'ordinateur 'remoteHostname' défini dans la configuration de la tâche JOB.

    Exemple: Vous avez sauvegardé votre serveur de production 'prodsrv' par une tâche 'prodbox'. Pour restaurer la dernière sauvegarde, lancez

    affa --full-restore prodbox

    Pour restaurer la plus ancienne archive daily.3, lancez

    affa --full-restore prodbox daily.3


    Warning.png Attention :
    une restauration complète reconstruit le serveur tel qu'il était au moment de la sauvegarde. Cela signifie que tous les fichiers créés ou les changement de configuration du serveur effectués après la sauvegarde seront perdus. Après la restauration, le serveur restauré redémarre automatiquement.

    Migration d'un serveur SMEx vers un nouveau matériel en utilisant la fonctionnalité «Affa rise»

    Merci de consulter cet Howto : Moving SME to new Hardware/fr.

    Restauration d'un disque USB sur un nouveau serveur

    Cette astuce vient de http://forums.contribs.org/index.php?topic=42412.0

    Q) J'ai des sauvegardes complètes stockées sur un disque dur USB connecté sur notre serveur de sauvegarde Affa. J'ai besoin de restaurer une ancienne sauvegarde mensuelle de notre tâche "mailbackup" sur un serveur de tests à la place du système original. Si je le fais depuis le serveur de sauvegardes, je vois les instructions pour remonter ce serveur depuis la sauvegarde courante, mais je veux restaurer d'un état datant d'environ un mois, avant que d'étranges choses se soient passées. Et je veux le faire sur une machine qui n'est pas notre serveur de sauvegarde ni notre serveur de production. J'ai tenté d'imaginer comment faire, mais je suis perdu dans les options. Mon but est de faire quelques tests.

    R) Sur votre serveur de tests, configurez une tâche "mailbackup" identique à celle de votre serveur de sauvegardes, mais paramétrez correctement RootDir en /var/affa et mettez la propriété "status" sur "disabled" Connectez le lecteur USB et copiez l'archive de la tâche "mailbackup" dans /var/affa. Ensuite, lancez affa --rise mailbackup ARCHIVE

    Rappelez-vous qu'Affa place les scripts de configuration de tâches dans les répertoires d'archive. Dans votre cas, c'est mailbackup-setup.pl. Copiez-le sur votre serveur de tests, changez les propriétés RootDir et status, puis exécutez-le.

    FAQ

    Quels fichiers et répertoires sont inclus par défaut ?

    Avec SMEServer=no aucun.

    Avec SMEServer=yes la liste par défaut des sauvegardes SME. La commande suivante affiche la liste :

    perl -e 'use esmith::Backup;$b=new esmith::Backup;print join("\n",$b->restore_list)."\n"'


    Puis-je sauvegarder exclusivement des fichiers d'images contenus dans un répertoire spécifique ?

    Oui. Supposant que vous voulez sauvegarder tous les fichiers gif et jpg du répertoire /home/e-smith/files/ibays/pictures/files utilisez cette configuration

    db affa setprop JOBNAME SMEServer no # Ne pas inclure les répertoires et fichiers par défaut de SME Server

    db affa setprop JOBNAME Include[0] '/home/e-smith/files/ibays/pictures/files' # Commencer à chercher ici
    db affa setprop JOBNAME Include[1] '*/'        # Chercher récursivement dans l'arborescence
    db affa setprop JOBNAME Include[2] '*.gif'     # Copier les fichiers qui correspondent à ce profil
    db affa setprop JOBNAME Include[3] '*.jpg'  
    db affa setprop JOBNAME Exclude[0] '*'         # Exclure tous les autres
    db affa setprop JOBNAME rsyncOptions '-m'      # Ne pas créer les répertoires vides
    


    Comment puis-je déplacer une archive de sauvegarde de mon serveur de production vers une agence distante dans le serveur Affa en utilisant un disque USB ? Je veux éviter de télécharger la première sauvegarde complète depuis Internet.

    Installez Affa sur votre serveur de production, connectez et montez le disque USB. Configurez une tâche pour enregistrer la sauvegarde sur le disque USB. Une fois la tâche exécutée, connectez le disque USB à votre serveur Affa et configurez la tâche de la même manière. Utilisez le script de configuration du répertoire d'archive. Vous n'avez à mofier que la propriété "remoteHostName". Maintenant, utilisez l'option --move-archive pour transférer l'archive sur le disque local. Si ce n'est pas déjà fait, envoyez la clé publique à votre serveur de production. C'est fait.


    Comment je sauvegarde deux serveurs SME derrière un pare-feu ?

    D'abord, vous devez configurer les port forwardings pour le service ssh sur votre pare-feu. Utilisez un port non standard, par ex. 2200->22, pour votre second serveur. Configurez une tâche sur votre serveur de sauvegarde Affa pour chacun de vos serveurs de production. Configurez la propriété sshPort=2200 pour votre second serveur.

    Désinstallation

    Cela supprime le paquetage Affa installé, toutes les données de configuration et toutes les archives de sauvegarde.

    Lancez les commandes suivantes pour chaque tâche :

    affa --revoke-key JOBNAME

    affa --delete-job JOBNAME
    

    Verifie que toutes les tâches ont été supprimées.

    affa --status

    Suprime le paquetage Affa

    rpm -e smeserver-affa

    et, si ces paquetages ne sont pas des dépendances d'autres paquetages :

    Nettoyage général

    rm -f /etc/cron.d/affa /etc/cron.d/affa-status
    rm -rf /home/e-smith/db/affa /home/e-smith/db/affa-report
    rm -rf /var/affa /var/log/affa
    

    Résolution de problèmes

    Affa cesse de fonctionner après que prodserver ait été restauré

    Description :

    • Affa cesse de fonctionner ou est endommagé.
    • prodserver ne peut plus réaliser de connexion via ssh vers affaserver.
    • Le message "SSH connection to prodserver ip failed. Did you send the public key" est présent dans le fichier /var/log/affa/nom_du_job.log
    • Renvoyer les clés ssh ne résout pas le problème.

    Solution :

    • Ceci vient probablement du fait que la clé pour prodserver, qui est présente sur affaserver, ne correspond plus avec la clé de prodserver.
    • Il faut alors effacer la clé existante afin que la clé soit renvoyée par prodserver à la prochaine connexion ssh.
    • En ligne de commande, éditer le fichier /root/.ssh/known_hosts et enlever la ligne correspondant à prodserver. Cette dernière débute par : prodserver ip ssh-rsa

    Impossibilité d'envoyer des emails après un "rise".

    Description :

    • impossibilité d'envoyer des courriels après un "rise" sur le serveur de sauvegardes en restaurant de SME7 à SME8
    • le journal qpsmtpd affiche :
    @400000005125f42409a8cd1c 4280 vvirus::clamav plugin (data_post): clamscan results: /var/spool/qpsmtpd/1361441818:4280:0: Access denied. ERROR
    @400000005125f42409aa9624 4280 virus::clamav plugin (data_post): ClamAV error: /usr/bin/clamdscan --stdout  --config-file=/etc/clamd.conf --no-summary /var/spool/qpsmtpd/1361441818:4280:0 2>&1: 2
    
    • problème de permission sur /var/spool
    #Sur le serveur fonctionnel :
    ls -al /var/spool
    drwxr-s---   2 qpsmtpd clamav 4096 Jun 10 12:31 qpsmtpd
    #Sur le serveur cassé (restauré) :
    ls -al /var/spool
    drwxr-x---   2 qpsmtpd clamav 4096 Jun 10 10:46 qpsmtpd
    #Sur la nouvelle installation avant la restauration :
    ls -al /var/spool
    drwxr-s---   2 qpsmtpd clamav 4096 Apr 17 13:47 qpsmtpd
    

    voire SME bug #4399


    Solution: en ligne de commande sur le server de sauvegardes après le "Rise" : chmod g+s /var/spool/qpsmtpd

    Les utilisateurs ne peuvent se connecter au serveur – Important.

    Après une restauration complète ou un "rise" par Affa sur SME8, tout semble fonctionner, mais les utilisateurs ne peuvent se connecter sur le serveur (samba, horde, etc...). Les comptes utilisateurs apparaissent bien dans le server-manager voir bugzilla:6983 et bugzilla:7687

    Warning.png Attention :
    Travaux en cours : veuillez lire le contenu du bug car il semble y avoir d'autres problèmes avec cette solution temporaire

    La cause est une incomplète restauration / conversion des fichiers contenus dans le répertoire /etc, en particulièrement les fichiers contenant les identifiants et les mots de passe. La première chose à faire après un "affa --full-restore prodserv" est de ne pas effacer la sauvegarde existante de Affa. Si un "affa --rise --all prodserv" a été effectué, ne pas continuer avec "/bin/rm -rf /var/affa" comme indiqué dans le wiki (ne pas effacer non plus l'archive de quelque manière que ce soit).

    • Si la fonction rise a été utilisée:

    Se connecter en "root" sur le serveur de production et entrer en ligne de commande :

    mkdir /etc/backup
    cp -r /etc/{passwd,samba,e-smith,group,gshadow,shadow,ssh,sudoers} /etc/backup
    yes | cp -r /var/affa/"JOBNAME"/"ARCHIVE"/etc/* /etc/
    

    et reconfigurer le serveur pour finir

    signal-event post-upgrade; signal-event reboot
    
    • Si la fonction « full-restore » a été utilisée :

    Effectuer les étapes 1, 2 et 3 ci-dessus Se connecter en "root" sur le serveur de sauvegardes (serveur Affa) et entrer en ligne de commande :

    export RDIR=/var/affa/"NOM_DU_JOB"/"ARCHIVE"/etc/
    rsync -av $RDIR "PRODSERV-IP":/etc/
    

    Sur le serveur de production "PRODSERV", entrer par ssh dans un terminal

    signal-event post-upgrade; signal-event reboot

    Extinction du serveur de sauvegarde

    En travaux...

    Extrait du wiki d'Arnaud : https://wiki.guedel.eu/doku.php?id=Welcome:Fedora:BackupPC légèrement modifié pour un serveur de sauvegarde de type SME.

    À une heure précise, le serveur SME «réveille» donc la machine client via un wake-on-lan pour que ce dernier effectue la sauvegarde. Pour des raisons évidentes d'économie d'énergie, j'ai souhaité que la machine cliente s'éteigne automatiquement une fois la sauvegarde effectuée.

    Le problème est alors le suivant : Affa ne prend la sauvegarde en considération seulement une fois le « post-job » positivement achevé. Donc si la commande d'extinction est située dans le post-job, celui-ci ne renvoie jamais de retour positif à Affa, vu que la machine sur laquelle il tourne est éteinte avant !!!

    La création de scripts d'extinction enfants du post-job, avec des commandes pour récupérer le prompt avant la fin de l'exécution de la tâche (entre autre le « & ») s'est révélée infructueuse sur toute la ligne car Affa s'entête à attendre la fin de chaque script enfant.

    C'est quelque part sur la toile que j'ai trouvé la solution à ce problème : il faut que le post-job d'Affa se contente de créer un fichier drapeau. L'extinction est, elle, réalisée via cron.d qui surveille la présence ou non de ce drapeau et qui déclenche l'arrêt de la machine le cas échéant.

    Voilà mon script pre-job (qui au passage envoie le signal-event pre-backup à la SME) :

    1. !/bin/bash

    ssh root@IP_SME /sbin/e-smith/signal-event pre-backup touch /etc/BackupPC/dump-start.flg exit 0;

    Voilà mon script post-job (qui au passage envoie le signal-event post-backup à la SME) :

    1. !/bin/bash

    ssh root@IP_SME /sbin/e-smith/signal-event post-backup mv /etc/BackupPC/dump-start.flg /etc/BackupPC/dump-end.flg exit 0;

    Ainsi que l'entrée cron.d: /etc/cron.d/backuppc-halt

    • /5 * * * * root [ -f /etc/BackupPC/dump-end.flg ] && sleep 3m && [ ! -f /etc/BackupPC/dump-start.flg ] && [ "$(/usr/bin/users)" = "(unknown)" ] && rm /etc/BackupPC/dump-end.flg && /usr/sbin/shutdown -h now

    Pas besoin de relancer cron.d: les modifications sous le répertoire /etc/cron.d sont rescannées toutes les minutes.

    Explications : cron cherche la présence du fichier « dump-end » toutes les 5 minutes. Si le fichier est présent, on attend 3 minutes au cas où une autre sauvegarde Affa devrait se lancer, on vérifie qu'il n'y a pas de backup en cours (fichier dump-start), on vérifie qu'aucune session n'est ouverte, on efface le fichier drapeau et on éteint la machine.

    Génialement simple, simplement génial et…… efficace! Et voilà !!!

    Rapport de bugs

    Affa est répertorié dans bugtracker contribs section. SVP, rapportez là tous les bugs, demandes de nouvelles fonctionnalités et problèmes de documentation.

    IDProductVersionStatusSummary (8 tasks)
    12165SME Contribs10.0CONFIRMEDrsync update rsync.x86_64 0:3.1.2-11.el7_9 breaks AFFA sync
    12084SME Contribs10.0RESOLVEDAFFA --run job ends with message "uninitialized value"
    12081SME Contribs10.0RESOLVEDif host key verification fails (because response no), affa tries again 3
    11784SME Contribs10.0VERIFIEDConf files placed in /etc/affa cannot contain spaces and/or sub folders with spaces
    10467SME Contribs10.0CONFIRMEDNFR : before a rise check if installed rpm on original server are also present on new server
    10373SME Contribs10.0CONFIRMEDMissing newline at end of config prevents conjob
    10299SME Contribs10.0CONFIRMEDqpsmtpd user missing from /etc/shadow
    9186SME Contribs10.0CONFIRMEDAFFA hardlinks using NFS storage for archives

    Informations complémentaires

    Pour les détails de performance, la liste des modifications, etc., voyez Affa:Additional information.

    Références