Changes

Jump to navigation Jump to search
1,188 bytes added ,  21:21, 27 April 2018
Remontée la procédure pour copier une archive sans se faire piéger par les liens.
Line 11: Line 11:     
=== Versions ===
 
=== Versions ===
{{ #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.}}
 
{{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.}}
   Line 115: Line 115:     
  yum install smeserver-affa --enablerepo=smecontribs
 
  yum install smeserver-affa --enablerepo=smecontribs
<headertabs/>
+
<headertabs />
    
Le serveur a, de nouveau, besoin d'être mis à jour.
 
Le serveur a, de nouveau, besoin d'être mis à jour.
Line 133: Line 133:  
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 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.
 
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><li>Connectez-vous à 'affabox' en tant que «root» et installez la contribution comme indiqué ci-dessus.
+
<ol><li>Connectez-vous à 'affabox' en tant que «root» et installez la contribution comme indiqué ci-dessus.
    
</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 pour le nom de tâche ''backup-smeserver'' :
 
</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 pour le nom de tâche ''backup-smeserver'' :
Line 159: Line 159:  
  status=enabled
 
  status=enabled
 
Si vous avez un certificat Letsencrypt sur le serveur de production, alors vous devez aussi inclure :
 
Si vous avez un certificat Letsencrypt sur le serveur de production, alors vous devez aussi inclure :
  Include=/etc/dehydrated
+
   
 +
Include=/etc/dehydrated
 +
 
 
Sauvegardez ensuite votre fichier de configuration de tâche.
 
Sauvegardez ensuite votre fichier de configuration de tâche.
   Line 169: Line 171:  
{{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]]}}
 
{{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]]}}
 
Les sorties suivantes doivent apparaître sur la console :
 
Les sorties suivantes doivent apparaître sur la console :
  Job sme-backup: Generating DSA keys...
+
   
 +
Job sme-backup: Generating DSA keys...
 
  Successfully created DSA key pair.
 
  Successfully created DSA key pair.
 
  root@192.168.0.2's password:                        <Entrer le mot de passe de 192.168.0.2/smeserver et tapez sur la touche ENTRÉE>
 
  root@192.168.0.2's password:                        <Entrer le mot de passe de 192.168.0.2/smeserver et tapez sur la touche ENTRÉE>
Line 177: Line 180:  
  affa --run backup-smeserver
 
  affa --run backup-smeserver
 
Les sorties suivantes doivent apparaître sur la console :
 
Les sorties suivantes doivent apparaître sur la console :
  The authenticity of host 'smeserver (192.168.0.2)' can't be established.
+
   
 +
The authenticity of host 'smeserver (192.168.0.2)' can't be established.
 
  RSA key fingerprint is 3b..........65.
 
  RSA key fingerprint is 3b..........65.
 
  Are you sure you want ton continue connecting (yes/no)?                          <Tapez : yes>
 
  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.
 
Maintenant votre sauvegarde devrait fonctionner pour la première fois. En fonction du volume des fichiers, cela prend un certain temps.
 
{{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.}}
 
{{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.}}
Line 186: Line 191:     
ou lancez la tâche une seconde fois :
 
ou lancez la tâche une seconde fois :
  affa --run backup-smeserver
+
   
 +
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.
 
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 :
 
Vérifiez que la seconde archive est aussi disponible :
  affa --list-archives
+
   
 +
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.
 
À 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.
Line 212: Line 220:  
</ul>
 
</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].
 
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" cellpadding="3" cellspacing=0
+
{| border="1" cellspacing="0" cellpadding="3"
 
|-
 
|-
 
| '''Propriété''' || '''Valeur''' || '''Valeur multiple''' || '''Par défaut''' || '''Description'''  
 
| '''Propriété''' || '''Valeur''' || '''Valeur multiple''' || '''Par défaut''' || '''Description'''  
Line 558: Line 566:     
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 :
 
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]
+
   
 +
[GlobalAffaConfig]
 
  localNice=19
 
  localNice=19
 +
 
Vous pouvez aussi mettre cette section dans le fichier de configuration dédié '''/etc/affa/GlobalAffaConfig.conf''' : elle sera plus facile à retrouver.
 
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.
 
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.
Line 571: Line 581:     
Toutes les tâches peuvent êtres désactivées à travers «cronjobs» en configurant «globalStatus» à «disabled».
 
Toutes les tâches peuvent êtres désactivées à travers «cronjobs» en configurant «globalStatus» à «disabled».
  [GlobalAffaConfig]
+
   
 +
[GlobalAffaConfig]
 
  globalStatus=disabled
 
  globalStatus=disabled
    
Pour les remettre en service, soit effacer la ligne de configuration ci-dessus, soit configurer :
 
Pour les remettre en service, soit effacer la ligne de configuration ci-dessus, soit configurer :
  globalStatus=jobs
+
   
 +
globalStatus=jobs
 +
 
 
qui est la valeur par défaut.
 
qui est la valeur par défaut.
    
Vous pouvez aussi configurer la valeur à :
 
Vous pouvez aussi configurer la valeur à :
  globalStatus=enabled
+
   
 +
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.
 
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.
   Line 585: Line 600:  
{{Note box|Les options peuvent être abrégées tant qu'elles restent uniques, ex. --mak est identique à --make-cronjobs}}
 
{{Note box|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'''
 
  '''affa --make-cronjobs'''
 +
 
Configure les tâches cron comme programmées dans les enregistrements de tâches. Exécutez cette commande pour que les changements de configuration liés au temps soient efficaces, c'est-à-dire les propriétés de TimeSchedule, killAt et resumeKilledAt. 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.
 
Configure les tâches cron comme programmées dans les enregistrements de tâches. Exécutez cette commande pour que les changements de configuration liés au temps soient efficaces, c'est-à-dire les propriétés de TimeSchedule, killAt et resumeKilledAt. 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'''
 
  '''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.
 
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.  
 
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|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.}}
Line 600: Line 619:     
  '''affa --check-connections [JOB JOB ...]'''
 
  '''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.
 
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.
    
  '''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 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é.
 
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 --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.
Line 610: Line 631:     
  '''affa --list-archives JOB'''
 
  '''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.
 
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.
   Line 656: Line 678:     
  '''affa --list-archives [--csv] JOB'''
 
  '''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.
 
Avec l'option --csv, la sortie est dans le format séparé par des points virgules pour la lecture machine.
 
<small><pre>
 
<small><pre>
Line 675: Line 698:     
  '''affa --status [--csv]'''
 
  '''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.
 
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.
   Line 705: Line 729:     
  '''affa --show-config-pathes [--csv] [JOB JOB ...]'''
 
  '''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.
 
Imprime les chemins d'accès complets du fichier où la section de la tâche JOB est définie.
    
  '''affa --show-default-config'''
 
  '''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.
 
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 --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 «=».
 
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 «=».
 
<small><pre>
 
<small><pre>
Line 737: Line 764:     
  '''affa --log-tail [JOB]'''
 
  '''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 à :
 
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
+
   
 +
tail -n 50 -f /path/to/logfile
 +
 
 
Sans l'argument JOB, le fichier journal global est affiché.
 
Sans l'argument JOB, le fichier journal global est affiché.
    
  '''affa --send-status'''
 
  '''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].
 
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'''
 +
 
Indique l'utilisation actuelle du disque de tous les systèmes de fichiers de répertoire racine.
 
Indique l'utilisation actuelle du disque de tous les systèmes de fichiers de répertoire racine.
   Line 759: Line 791:     
  '''affa --cleanup JOB'''
 
  '''affa --cleanup JOB'''
 +
 
Après avoir abaissé une valeur de conservation, par ex. par ScheduleKeep, les archives avec des indices plus élevés ne seront plus déplacées et seront définitivement supprimées. Cette option trouve ces archives et les supprime après confirmation.
 
Après avoir abaissé une valeur de conservation, par ex. par ScheduleKeep, les archives avec des indices plus élevés ne seront plus déplacées et seront définitivement supprimées. Cette option trouve ces archives et les supprime après confirmation.
    
  '''affa --rename-job JOB NouveauNom'''
 
  '''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.
 
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'''
 
  '''affa --move-archive JOB NouveauRepertoireRacine'''
 +
 
Déplace le répertoire d'archivage de la tâche JOB vers les 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.
 
Déplace le répertoire d'archivage de la tâche JOB vers les 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.
    
  '''affa --delete-job [--revoke-key] JOB'''
 
  '''affa --delete-job [--revoke-key] JOB'''
 +
 
Irreversibly deletes all archives, of job JOB and set the status property to disable. With --revoke-key option, the public key on the remote server will be deleted.
 
Irreversibly deletes all archives, of job JOB and set the status property to disable. With --revoke-key option, the public key on the remote server will be deleted.
    
  '''affa --revoke-key JOB'''
 
  '''affa --revoke-key JOB'''
 +
 
Deletes the public dsa key on the remote server.
 
Deletes the public dsa key on the remote server.
    
  '''affa --kill JOB'''
 
  '''affa --kill JOB'''
 +
 
Terminates the running job JOB and all its child processes (rsync processes).
 
Terminates the running job JOB and all its child processes (rsync processes).
    
  '''affa --killall'''
 
  '''affa --killall'''
 +
 
Terminates all running jobs.
 
Terminates all running jobs.
    
  affa --mailtest JOB
 
  affa --mailtest JOB
 +
 
Sends a test email to the email addresses configured in the JOB section. Use this to verify, that your mail system is working.
 
Sends a test email to the email addresses configured in the JOB section. Use this to verify, that your mail system is working.
 
{{Note box|By default Affa only sends messages on errors, never on success (see property chattyOnSuccess).}}
 
{{Note box|By default Affa only sends messages on errors, never on success (see property chattyOnSuccess).}}
    
  '''affa --nrpe [JOB JOB ...]'''
 
  '''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.
 
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'''
 
  '''affa --version'''
 +
 
Displays the Affa version number and checks Samba and Freedup installation.
 
Displays the Affa version number and checks Samba and Freedup installation.
    
  '''affa --warranty'''
 
  '''affa --warranty'''
 +
 
Displays the disclaimer of liability.
 
Displays the disclaimer of liability.
    
  '''affa --license'''
 
  '''affa --license'''
 +
 
Displays the license Affa is released under.
 
Displays the license Affa is released under.
    
  '''affa --help'''
 
  '''affa --help'''
 +
 
Displays a short help.
 
Displays a short help.
    
  '''affa --debug'''
 
  '''affa --debug'''
 +
 
Enables verbose logging. Overrides job and global configurations.
 
Enables verbose logging. Overrides job and global configurations.
   Line 806: Line 852:     
  '''affa --rise [--all] JOB [ARCHIVE]'''
 
  '''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 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 et ne devrait être utilisée que sur les serveurs de sauvegardes dédié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 et ne devrait être utilisée que sur les serveurs de sauvegardes dédiés.
   Line 815: Line 862:     
  '''affa --undo-rise'''
 
  '''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.
 
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'''
 
  '''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.
 
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'''
 
  '''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.
 
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.
   Line 828: Line 878:     
  '''affa --create-backup-file JOB [ARCHIVE] [--outfile=FILE]'''
 
  '''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.
 
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.
   Line 834: Line 885:     
  '''affa --list-archives [--csv] JOB'''
 
  '''affa --list-archives [--csv] JOB'''
 +
 
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é.  
 
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>
Line 878: Line 930:     
  '''affa --status [--csv]'''
 
  '''affa --status [--csv]'''
 +
 
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'.
 
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>
 
<small><pre>
Line 906: Line 959:     
  '''affa --disk-usage'''
 
  '''affa --disk-usage'''
 +
 
Affiche l'utilisation actuelle du disque pour les répertoires racine de tous les systèmes de fichiers.
 
Affiche l'utilisation actuelle du disque pour les répertoires racine de tous les systèmes de fichiers.
 
<small><pre>
 
<small><pre>
Line 920: Line 974:     
  '''affa --show-schedule [--all]'''
 
  '''affa --show-schedule [--all]'''
 +
 
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 '='.
 
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 '='.
 
<small><pre>
 
<small><pre>
Line 943: Line 998:     
  '''affa --send-status'''
 
  '''affa --send-status'''
 +
 
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'.
 
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'.
       
  '''affa --mailtest JOB'''
 
  '''affa --mailtest JOB'''
 +
 
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>
 
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').
 
'''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').
Line 952: Line 1,009:     
  '''affa --cleanup JOB'''
 
  '''affa --cleanup 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.
 
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.
       
  '''affa --rename-job JOB NEWNAME'''
 
  '''affa --rename-job JOB NEWNAME'''
 +
 
Renomme la tâche JOB en NEWNAME, y compris tous les enregistrements de la base de données et les répertoires d'archive.
 
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 --move-archive JOB NEWROOTDIR'''
 
  '''affa --move-archive JOB NEWROOTDIR'''
 +
 
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.
 
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 --delete-job [--revoke-key] JOB'''
 
  '''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.
 
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.
   Line 969: Line 1,030:  
  '''affa --revoke-key JOB'''
 
  '''affa --revoke-key JOB'''
 
  '''affa --revoke-key --host=TARGETHOST [--port=PORT] [--remoteOS=cygwin]'''
 
  '''affa --revoke-key --host=TARGETHOST [--port=PORT] [--remoteOS=cygwin]'''
 +
 
Détruit la clé DSA publique sur le serveur distant.
 
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>}}
 
{{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>}}
Line 974: Line 1,036:     
  '''affa --check-connections'''
 
  '''affa --check-connections'''
 +
 
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.
 
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 --kill JOB'''
 
  '''affa --kill JOB'''
 +
 
Termine la tâche en cours JOB et tous les processus fils (les processus rsync)..
 
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.
 +
 +
====== 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.
    
===Installation et utilisation d'Affa v.2 - Obsolète===
 
===Installation et utilisation d'Affa v.2 - Obsolète===
Line 990: Line 1,063:     
Pour SME8 32 bits :
 
Pour SME8 32 bits :
  wget <nowiki>http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/perl-Compress-Bzip2-2.09-1.2.el5.rf.i386.rpm</nowiki>
+
   
 +
wget <nowiki>http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/perl-Compress-Bzip2-2.09-1.2.el5.rf.i386.rpm</nowiki>
 
  /usr/bin/yum --enablerepo=smecontribs localinstall \
 
  /usr/bin/yum --enablerepo=smecontribs localinstall \
 
  smeserver-affa-2.0.0-rc4.noarch.rpm \
 
  smeserver-affa-2.0.0-rc4.noarch.rpm \
Line 996: Line 1,070:     
Pour SME8 64 bits :
 
Pour SME8 64 bits :
  wget http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/perl-Compress-Bzip2-2.09-1.2.el5.rf.x86_64.rpm
+
   
 +
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 \
 
  /usr/bin/yum --enablerepo=smecontribs localinstall \
 
  smeserver-affa-2.0.0-rc4.noarch.rpm \
 
  smeserver-affa-2.0.0-rc4.noarch.rpm \
Line 1,002: Line 1,077:     
Après la première installation d'Affa, lancez la commande suivante pour initialiser la base de données Affa.
 
Après la première installation d'Affa, lancez la commande suivante pour initialiser la base de données Affa.
  affa --make-cronjobs
+
   
 +
affa --make-cronjobs
 +
 
 
et déconnectez-vous puis reconnectez-vous à la console pour que le complément automatique de bash (touche TAB) prenne effet
 
et déconnectez-vous puis reconnectez-vous à la console pour que le complément automatique de bash (touche TAB) prenne effet
  −
</div>
      
==== Méthode pour SME7 ====
 
==== Méthode pour SME7 ====
 
{{Note box|SME7 est maintenant en fin de vie et a été transféré dans le répertoire obsolète}}
 
{{Note box|SME7 est maintenant en fin de vie et a été transféré dans le répertoire obsolète}}
 
Version SME7: '''smeserver-affa-2.0.0-rc4.noarch.rpm'''
 
Version SME7: '''smeserver-affa-2.0.0-rc4.noarch.rpm'''
  wget <nowiki>http://mirror.contribs.org/smeserver/contribs/michaelw/sme7/Affa2/smeserver-affa-2.0.0-rc4.noarch.rpm</nowiki>
+
   
 +
wget <nowiki>http://mirror.contribs.org/smeserver/contribs/michaelw/sme7/Affa2/smeserver-affa-2.0.0-rc4.noarch.rpm</nowiki>
 
  wget <nowiki>http://mirror.contribs.org/smeserver/contribs/michaelw/sme7/Affa2/perl-Compress-Bzip2-2.09-1.2.el4.rf.i386.rpm</nowiki>
 
  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 \
 
  /usr/bin/yum --enablerepo=smecontribs localinstall \
Line 1,019: Line 1,095:  
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.  
 
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.  
   −
<ol></li><li>loggez-vous dans 'affabox' et installez les paquetages mentionnés ci-dessus.
+
<ol><li>loggez-vous dans 'affabox' et installez les paquetages mentionnés ci-dessus.
 
</li><li>copiez le script d'exemple de configuration
 
</li><li>copiez le script d'exemple de configuration
 
  cp /usr/lib/affa/jobconfig-sample.pl /root/prodbox-job.pl
 
  cp /usr/lib/affa/jobconfig-sample.pl /root/prodbox-job.pl
Line 1,025: Line 1,101:  
  my $jobname='prodbox';
 
  my $jobname='prodbox';
 
et
 
et
  'remoteHostName‘=>'10.200.48.1',
+
   
 +
'remoteHostName‘=>'10.200.48.1',
 +
 
 
Eventuellement, si le port du serveur distant est configuré, par exemple, en 2222, mettez
 
Eventuellement, si le port du serveur distant est configuré, par exemple, en 2222, mettez
  'sshPort'=>2222,
+
   
 +
'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)
 
</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
 
  /root/prodbox-job.pl
Line 1,050: Line 1,129:  
  db affa setprop prodbox Description 'My Production Server'
 
  db affa setprop prodbox Description 'My Production Server'
 
  db affa setprop prodbox status enabled
 
  db affa setprop prodbox status enabled
 +
 
et ainsi de suite...
 
et ainsi de suite...
   Line 1,059: Line 1,139:     
Pour finir, mettez en place les tâches cron :
 
Pour finir, mettez en place les tâches cron :
  affa --make-cronjobs
+
   
 +
affa --make-cronjobs
    
==== Propriétés de configuration de tâches ====
 
==== Propriétés de configuration de tâches ====
 
'''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.
 
'''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.
{| border="1" cellpadding="3" cellspacing=0
+
{| border="1" cellspacing="0" cellpadding="3"
 
|-
 
|-
 
| '''Propriété''' || '''Valeur''' || '''Defaut''' || '''Description'''  
 
| '''Propriété''' || '''Valeur''' || '''Defaut''' || '''Description'''  
Line 1,206: Line 1,287:     
Exemple : Vous voulez positionner la propriété 'localNice' à 19 pour toutes les tâches. Tapez
 
Exemple : Vous voulez positionner la propriété 'localNice' à 19 pour toutes les tâches. Tapez
  db affa setprop DefaultAffaConfig localNice 19
+
   
 +
db affa setprop DefaultAffaConfig localNice 19
 +
 
 
et ne positionnez pas cette propriété pour les tâches.
 
et ne positionnez pas cette propriété pour les tâches.
 
Les propriétés positionnées dans les tâches sont prioritaires sur les propriétés par défaut.
 
Les propriétés positionnées dans les tâches sont prioritaires sur les propriétés par défaut.
Line 1,213: Line 1,296:     
Pour configurer un rapport hebdomadaire, tapez :
 
Pour configurer un rapport hebdomadaire, tapez :
  db affa setprop DefaultAffaConfig sendStatus weekly
+
   
 +
db affa setprop DefaultAffaConfig sendStatus weekly
 +
 
 
puis configurez cronjob :
 
puis configurez cronjob :
  affa --make-cronjobs
+
   
 +
affa --make-cronjobs
    
==== Désactivation globale ====
 
==== Désactivation globale ====
 
Toutes les tâches peuvent être désactivées en positionnant l'enregistrement AffaGlobalDisable sur 'yes'.
 
Toutes les tâches peuvent être désactivées en positionnant l'enregistrement AffaGlobalDisable sur 'yes'.
  db affa set AffaGlobalDisable yes
+
   
 +
db affa set AffaGlobalDisable yes
 
  affa --make-cronjobs
 
  affa --make-cronjobs
    
Pour réactiver :
 
Pour réactiver :
  db affa set AffaGlobalDisable no
+
   
 +
db affa set AffaGlobalDisable no
 
  affa --make-cronjobs
 
  affa --make-cronjobs
   Line 1,249: Line 1,337:  
* 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 1,288: Line 1,378:  
* editez /root/ws001-mydocs-job.pl et mettez
 
* editez /root/ws001-mydocs-job.pl et mettez
 
  my $jobname='ws001-mydocs';
 
  my $jobname='ws001-mydocs';
 +
 
et
 
et
  'remoteHostName‘=>'192.168.1.65',
+
   
  'rsyncdPassword'=>'<i>secretword</i>',
+
'remoteHostName‘=>'192.168.1.65',
 +
  'rsyncdPassword'=>'<i>secretword</i><nowiki/>',
 
  'Include[0]'=>'/c/Documents and Settings/ssorglos/My Documents/', ''# N'utilisez pas les backslashes dans les chemins !''
 
  '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/',
+
  <nowiki>'Include[1]'=>'/c/Documents and Settings/bsimpson/My Documents/',</nowiki>
 +
 
 
où ''secretword'' doit être remplacé par le mot de passe que vous avez choisi dans rsyncd.secretsfile sur l'ordinateur Windows.
 
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.
 
* Enregistrez la configuration (cela crée les entrées de base de données et configure les tâches cron.
Line 1,301: Line 1,394:  
====== Configuration manuelle d'Affa en mode Rsyncd ======
 
====== 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.
 
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 rsyncdMode yes
 
  db affa setprop JOB rsyncdModule AFFA
 
  db affa setprop JOB rsyncdModule AFFA
 
  db affa setprop JOB rsyncdUser affa
 
  db affa setprop JOB rsyncdUser affa
Line 1,308: Line 1,402:  
  db affa setprop JOB RPMCheck no
 
  db affa setprop JOB RPMCheck no
 
  db affa setprop JOB Watchdog no
 
  db affa setprop JOB Watchdog no
 +
 
Optionel pour une connexion ssh.
 
Optionel pour une connexion ssh.
  db affa setprop JOB remoteOS cygwin  
+
   
 +
db affa setprop JOB remoteOS cygwin  
      Line 1,323: Line 1,419:  
  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 1,335: Line 1,430:     
  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 1,368: Line 1,464:  
* 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 1,377: Line 1,475:  
  '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 1,392: Line 1,491:     
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.
   Line 1,411: Line 1,514:  
* 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 1,432: Line 1,536:     
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''
+
   
 +
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
 
  rsync -av -e 'ssh -p 2222' /var/affa/prodserv/weekly.1/$RFILE 10.204.48.1:$RFILE
   Line 1,441: Line 1,546:  
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 :
Line 1,449: Line 1,555:  
==== 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>]
+
   
 +
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.  
 
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.  
    
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|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. }}
 
{{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. }}
Line 1,481: Line 1,591:     
Avec SMEServer=yes la liste par défaut des sauvegardes SME. La 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 1,487: Line 1,598:     
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 1,496: Line 1,608:       −
'''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 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.'''
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.'''
      Line 1,507: Line 1,619:     
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 1,542: Line 1,661:  
  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]
   Line 1,565: Line 1,683:     
  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 1,573: Line 1,689:     
  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
Line 1,579: Line 1,694:     
  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 ===
 
=== Extinction du serveur de sauvegarde ===
3,054

edits

Navigation menu