Affa/fr

From SME Server
Jump to navigation Jump to search


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


Is this article helpful to you?
Please consider donating or volunteering
Thank you!

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

affa
The latest version of affa is available in the SME repository, click on the version number(s) for more information.


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.


Traducteurs

jibe

Pour la mise à jour: Arnaud

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


  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 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.

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.

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.

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 !

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.


  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 SME seulement).
  • Le chien de garde envoie un message journalier de rappel tant que l'erreur n'est pas corrigée (Serveur 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 SME et ESXi seulement).
  • Option pour convertir le serveur de sauvegardes en serveur de production (Serveur 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.

Installation d'Affa 3

  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.


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.

Installer à partir d'un CDROM une machine dédiée en version 8.2 ou 9.1. 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 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 installer Affa 3, saisir la commande suivante :

[edit]
yum install smeserver-affa --enablerepo=smecontribs
yum install smeserver-affa --enablerepo=smecontribs

Le serveur a, de nouveau, besoin d'être mis à jour.

signal-event post-upgrade
signal-event reboot

Le serveur redémarrera. Après cela, Affa 3 est prêt à être utilisé.

Créer maintenant manuellement un répertoire pour les fichiers d'archives :

mkdir /var/affa
  Attention :
traduction en cours…


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.

Connectez-vous à 'affabox' en tant que «root» et 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 :

[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

Sauvegardez ensuite votre fichier de configuration de tâche.

Vérifiez maintenant que votre configuration est correcte :

affa --configcheck

Cela ne devrait révéler aucune erreur. Maintenant créez / envoyez vos fichiers de clés à votre serveur SME de production :

affa --send-key backup-smeserver

Les sorties suivantes doivent apparaître sur la console :

Job sme-backup: Generating DSA keys...
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>
Public key sent to 192.168.0.2

Now run your job manually, both for test purposes, as well as to create DSA keys:

affa --run backup-smeserver

The following output should appear on the console:

The authenticity of host 'backup-smeserver (192.168.0.2)' can't be established.
RSA key fingerprint is 3b..........65.
Are you sure you want ton continue connecting (yes/no)? <yes>

Now your backup job should run for the first time. Depending on the volume of the files, this takes quite a while.

Once the job is done, check that the archive is available:

affa –-list-archives

or run the job a second time:

affa --run backup-smeserver

Note that you won't be asked for the password again. Note as well, that this second run of the job backup-smeserver should run considerably faster, because not all files are copied again: just the difference to the previous run is backuped, the rest is stored as hard links to the existing file copies.

Check that the second archive is available too:

affa --list-archives

From here you are able to work as with Affa 2. Modify your config file as required and described below. Automate the backup using the command affa --make-cronjobs, see below.

Job configuration properties

Note 1: The default values shown in this table are the Affa program defaults and not to be confused with the preset values in the job configuration files, e.g. backup-smeserver.conf.

Note 2: Affa 3 for SME is a fork of Affa 3 for CentOS. It adds a few options back again which have been removed. Generally the configuration properties as described here do apply. stephdl added the following functions for SME:

  • The parameter “SMEServer”
  • The parameter and function “Watchdog”
  • The parameter and function “RPMCheck”
  • The functions “--rise” and “--undo-rise”

Consequently the list below should reproduce the list for the unforked Affa 3 version, plus adding the properties above. For details refer to stephdl's website.

Property Value Multivalue Default Description
remoteHostName FQHN or IP no <none> FQHN or IP of the source host (mandatory)
remoteUser account no root The user account to be used with all ssh logins. May be case sensitive, e.g. Administrator account on Windows
Description text string no <none> Any text that describes the job
TimeSchedule HHMM yes 2230 The time the job will run. Use exactly 4 digits, no colon, no point. Important: Using the proper format HHMM is essential. Badly formatted TimeSchedule will cause strange Perl errors.
status enabled or disabled no enabled When set to disabled, no cron entries will made. You can still run a job manually.
Include full path yes <none> File(s) or directory(s) to be included in the backup.
Exclude full path yes <none> File(s) or directory(s) to be excluded from the backup.
RootDir full path no /var/affa where to store the backup archives. Do not use /home/e-smith or /root as these are included in the backup and therefore the rise option will not work! Recommended: /var/affa
scheduledKeep integer >= 1 no 1 how many of the scheduled backups to be kept
dailyKeep integer >= 0 no 7 how many of the daily backups to be kept
weeklyKeep integer >= 0 no 4 how many of the weekly backups to be kept
monthlyKeep integer >= 0 no 12 how many of the monthly backups to be kept
yearlyKeep integer >= 0 no 2 how many of the yearly backups to be kept
EmailAddress name@domain.com yes root comma separated list of mail addresses, where the messages should be sent to
Note: By default Affa only sends messages on errors, never on success (see property chattyOnSuccess).
RetryAttempts integer >= 0 no 4 When set to a value>0, Affa re-run a failed job RetryAttempts times with a delay of RetryAfter seconds.
RetryAfter seconds >= 0 no 900 when set to a value>0, wait RetryAfter seconds before re-running the job after an error. Only applicable with RetryAttempts>0
RetryNotification yes or no no no when set to no, Affa does not send an error message when a job has failed and RetryAttempts is configured. An error message is only sent when the last attempt has failed.
NRPEtrigger hours no 24 NRPE reports a job as critical when the last successful run is older then NRPEtrigger hours. To exclude the job from monitoring set to a value < 0.
SambaShare yes or no no no Access to the job archives via CIFS protocol.
SambaValidUser local account yes affa User who has permission to access the job archives via the CIFS protocol.
preJobCommand
preJobCommandRemote
path relative to /etc/affa/scripts/ yes <none> Scripts to be executed before a job run. The job name and type (scheduled, daily etc.) are passed as arguments to the program. The preJobCommandRemote scripts are copied to the remote server and then executed there. The scripts are executed in alphabetical order. Use a numerical prefix if you need a specific order e.g. 01scriptB, 02remotescriptA, 03scriptA. Use the included prescript-sample.pl and prescriptRemote-sample.pl as a starting point for own scripts.
Note: If you use the parameter “SMEServer=yes”, you may delete the “Included” relative to SME default directories in the jobconfig.ini: they will be backuped automatically.
postJobCommand
postJobCommandRemote
path relative to /etc/affa/scripts/ yes <none> Scripts to be executed after a job run. The job name, the type (scheduled, daily etc.) and the exit code of the job run are passed as arguments to the program. The postJobCommandRemote scripts are copied to the remote server and then executed there. The scripts are executed in alphabetical order. Use a numerical prefix if you need a specific order e.g. 01scriptB, 02remotescriptA, 03scriptA. Use the included postscript-sample.pl and postscriptRemote-sample.pl as a starting point for own scripts.
Note: If you use the parameter “SMEServer=yes”, you may delete the “Included” relative to SME default directories in the jobconfig.ini: they will be backuped automatically.
dedup yes or no no no The purpose of the deduplication is to remove duplicate files to save backup space. When set to 'yes' file deduplication is run after the synchronization has been completed. It looks for files that have identical content, user, group and permissions and replace duplicates by hardlinks. Deduplication scans the just completed archive and the previous one, that usually is

scheduled.0 and daily.0 or scheduled.0 and scheduled.1. Consider this scenario: A user has renamed directories or files. Rsync sees those as new ones and copies them. Deduplication finds the identical copies in the previous archive and replace them by hardlinks. To use deduplication the Freedup program needs to be installed. Affa actually runs freedup -upg scheduled.0 <previous_archive>.

dedupKill yes or no no no When set to 'no' the job ignores affa --kill or affa --killall when deduplication is running. This is useful in the context of killAt which is typically used to stop bandwith utilisation.
sshPort service port no 22 When sshd on the remote host listens on a non-standard port, set the port here.
ConnectionCheckTimeout seconds no 120 Affa checks the ssh connection before the rsync process is started and exits with an error after the configured time if the host did not respond.
BandwidthLimit integer>=0 kilobytes per second no 0 Limits the data transfer rate. A value of zero specifies no limit.
rsyncTimeout seconds no 900 Rsync exits after the configured time if no data was transferred. This avoids infinitely hanging in case of a network error.
rsyncCompress yes or no no yes Compress the transferred data. May be useful with slow internet connections. Increases CPU load on remote and backup host.
rsync--inplace yes or no no yes Set to no if the rsync version on the remote hist does not support this option.
rsync--modify-window integer >= 0 no 0 When comparing two timestamps, rsync treats the timestamps as being equal if they differ by no more than the modify-window value. This is normally 0 for an exact match. A value >= 0 is useful if you can't get the clocks of the remote host and the Affa server in sync.
rsyncOptions string no <none> Additional option string to be passed to rsync
localNice -19...+19 no 0 run rsync local process niced.
remoteNice -19...+19 no 0 run rsync process on source niced.
killAt HHMM no <none> The time at which a job will be killed if it was still running. You can use it for example to kill jobs that are running over the internet early in the morning so that your users have the full bandwidth available during office hours.
resumeKilledAt HHMM no <none> The time at which a killed job will be resumed. This allows you to start earlier in the evening than the scheduled time.
chattyOnSuccess integer >= 0 no 0 When set to a value>0, Affa sends a message on a successfully completed job run and decrements the chattyOnSuccess value. When the value has reached zero, Affa falls back to the default and only sends messages on errors.
AutomountDevice
AutomountPoint
full path no <none> Device and mountpoint of backup device (e.g. USB disk). Device is automounted before a job starts and unmounted after job completion. With both properties empty no automount is done.
AutomountOptions string no <none> An option string passed to the mount command.
AutoUnmount yes or no no yes When set to 'no' the automounted device stay mounted after the Affa run.
Debug yes or no no no Set to yes to increase log verbosity.
remoteRsyncBinary full path no /usr/bin/rsync If the rsync program on the remote server is located in non-standard location, set it here
remoteNiceBinary full path no /bin/nice If the nice program on the remote server is located in non-standard location, set it here.
localRsyncBinary full path no /usr/bin/rsync If the local rsync program is located in non-standard location, set it here
localNiceBinary full path no /bin/nice If the nice local program is located in non-standard location, set it here.
RemoteAuthorizedKeysFile path relative to remote user's home or full path no .ssh/authorized_keys2 If the remote host stores the authorized keys file in a non-standard location, set it here.
rsyncdMode yes or no no no Set to yes to connect to the rsync daemon on the remote host (instead of running rsync over ssh).
rsyncdModule string no AFFA The rsyncd module name (only applicable with rsyncdMode=yes).
rsyncdUser string no affa The username for authentication to the rsync daemon (only applicable with rsyncdMode=yes).
rsyncdPassword string no <none> The password for authentication to the rsync daemon (only applicable with rsyncdMode=yes).
globalStatus enabled or disabled or jobs no jobs Set to enabled or disabled to overide the status settings in all job sections. When set to value jobs, the status settings in the job sections are effictive.
Note: This property is allowed only in the [GlobalAffaConfig] section.
sendStatus daily or weekly or monthly or never no weekly Defines how frequently the status will be sent.
Note: This property is allowed only in the [GlobalAffaConfig] section.
SMEServer yes or no no no When set to yes, the default e-smith directories are automatically included and the property RPMCheck=yes can be used.
Note: this property is not implemented in Affa 3 for CentOS. It has been specifically added to the fork for SME.
RPMCheck yes or no no no Only applicable to jobs that backup a SME server. Compares the packages installation of the source host with this affa backup host. Sends a message with diff list if not in sync. This check is useful, if you want have the option to rise the backup server to a production server from a backup.
Note: this property is not implemented in Affa 3 for CentOS. It has been specifically added to the fork for SME.
Watchdog yes or no no yes Only applicable to jobs that backups a SME server. When a job is started, affa installs a watchdog script on the source in /etc/cron.d/, which sends a warning message, if the next scheduled job (taken from the TimeSchedule property + 10 minutes) did not run. This guarantees, that you will be notfied even in case of a affa server outage. The watchdog script send a daily reminder message, if the error continues. The next run job replaces the watchdog script with a new trigger time.
Note: this property is not implemented in Affa 3 for CentOS. It has been specifically added to the fork for SME.

Default configuration properties

For all 'name=value' properties defaults can be set in the [GlobalAffaConfig] section which are used in all job configuration when the corresponding property is omitted. For example, when these properties are set in [GlobalAffaConfig] section, they can be omitted in the specific job configurations. This is useful, when you set up many similar jobs.

Example: You want to set the property 'localNice' to 19 for all jobs. Then add the following section in one of your configuration files:

[GlobalAffaConfig]
localNice=19

Consequently you don't need to set this property for your indiviual jobs. Properties set in the job record override the defaults.

Properties for global Settings

The following special properties are only applicable to the [GlobalAffaConfig] section:

  • sendStatus
  • globalStatus

All jobs can be disabled for execution through 'cronjobs" with setting 'globalStatus' to 'disabled'.

[GlobalAffaConfig]
globalStatus=disabled

To re-enable run, either delete the above configuration line, or set to:

globalStatus=jobs

which is the default value.

You can also set the value to

globalStatus=enabled

which enforces the the job execution through 'cronjobs' and overrides the specified values in the section for the specific job.

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.

affa -–make-cronjob

et déconnectez-vous puis reconnectez-vous à la console pour que le complément automatique de bash (touche TAB) prenne effet .

Ancienne méthode d'installation / méthode pour sme7

  Note:
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

wget http://mirror.contribs.org/smeserver/contribs/michaelw/sme7/Affa2/smeserver-affa-2.0.0-rc4.noarch.rpm
wget http://mirror.contribs.org/smeserver/contribs/michaelw/sme7/Affa2/perl-Compress-Bzip2-2.09-1.2.el4.rf.i386.rpm
/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


Version SME8: SME8 est basé sur CentOS5, c'est pourquoi perl-Compress-Bzip2 el5 rpm doit être utilisé.

Pour SME8 32 bits:

wget http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/perl-Compress-Bzip2-2.09-1.2.el5.rf.i386.rpm
/usr/bin/yum --enablerepo=smecontribs localinstall \
smeserver-affa-2.0.0-rc4.noarch.rpm \
perl-Compress-Bzip2-2.09-1.2.el5.rf.i386.rpm

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
/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.

affa --make-cronjobs

et déconnectez-vous puis reconnectez-vous à la console pour que le complément automatique de bash (touche TAB) prenne effet

Exemple de démarrage rapide

  Attention :
la suite de cette page n'est pas à jour : passer pour l'instant sur la version anglaise.


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.

  1. loggez-vous dans 'affabox' et installez les paquetages mentionnés ci-dessus.
  2. copiez le script d'exemple de configuration cp /usr/lib/affa/jobconfig-sample.pl /root/prodbox-job.pl
  3. 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,
  4. 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
  5. Générez les clés DSA et envoyez la clé publique à la 'prodbox'
      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

    affa --send-key prodbox
    
  6. Lancez la tâche à la main affa --run prodbox

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'.
Pour configurer un nouveau travail avec le nom 'prodbox', entrez :

db affa set prodbox job

Puis positionnez les propriétés

db affa setprop prodbox remoteHostName 192.168.1.1
db affa setprop prodbox TimeSchedule '0030,0730,1130,1330,1730,2030'
db affa setprop prodbox Description 'My Production Server'
db affa setprop prodbox status enabled

et ainsi de suite...

Alternativement, vous pouvez utiliser un script comme décrit ci-dessus dans le chapitre 'Démarrage rapide'.

Pour vérifier votre travail, tapez :

db affa show prodbox

Pour finir, mettez en place les tâches cron :

affa --make-cronjobs

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.

Propriété Valeur Defaut Description
remoteHostName FQHN ou IP FQHN ou IP de l'hôte source (obligatoire)
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.
Description texte
scheduledKeep entier >= 1 1 Combien de sauvegardes programmées doivent être conservées
dailyKeep
weeklyKeep
monthlyKeep
yearlyKeep
entier >= 0 7
4
12
2
Combien de sauvegardes quotidiennes, hebdomadaires, mensuelles ou annuelles doivent être conservées
SMEServer 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
Include[0]
Include[1]
...
full path Fichiers ou répertoires supplémentaires à inclure à la sauvegarde
Exclude[0]
Exclude[1]
...
full path Fichiers ou répertoires supplémentaires à exclure de la sauvegarde
RPMCheck yes ou no no Seulement applicable aux tâches qui sauvegardent un serveur SME 7.
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.
DiskSpaceWarn 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.

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.

localNice -19...+19 0 lance le process local rsync par nice.
remoteNice -19...+19 0 lance le process rsync de la source par nice.
Watchdog yes ou no yes Seulement applicable aux tâches qui sauvegardent un serveur SME 7.
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.
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.
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.
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.
BandwidthLimit 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.
rsyncCompress 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.
EmailAddresses name@domain.com,name@domain.com,... admin Liste séparée par des virgules des adresses email où les messages seront envoyés.
Note: Par défaut, Affa n'envoie de messages que pour les erreurs, jamais en cas de succès (voir la propriété chattyOnSuccess).
RetryAttempts entier >= 0 3 Quand positionné à une valeur >0, Affa relance une tâche échouée RetryAttemps fois avec un délai de RetryAfter secondes.
RetryAfter 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
RetryNotification 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é.
RetryAttempts 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.
AutomountDevice
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.
AutomountOptions chaine de caractères Une chaine d'options passées à la commande de montage automatique
AutoUnmount yes ou no yes Quand positionné à 'no' l'unité montée automatiquement reste montée après l'exécution d'Affa.
preJobCommand
postJobCommand
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.
RootDir 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
SambaShare yes ou no yes Accède aux archives de la tâche via SMB.
Debug yes ou no no Positionné à 'yes', donne plus de détails dans le fichier de log.
status enabled ou disabled enabled Positionné à 'disable', aucune entrée cron ne sera faite. Vous pouvez encore lancer les tâches à la main.
rsync--inplace yes ou no yes Positionné à 'no', si la version rsync de la source ne supporte pas cette option (comme rsync sur SME6)
rsync--modify-window 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.
rsyncOptions texte chaine d'options aditionnelles à passer à rsync.
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).
rsyncdModule texte AFFA Le nom du module rsyncd (seulement applicable avec rsyncdMode=yes)
rsyncdUser texte affa Le nom d'utilisateur pour authentification au démon rsync (seulement applicable avec rsyncdMode=yes)
rsyncdPassword texte Le mot de passe pour authentification au démon rsync (seulement applicable avec rsyncdMode=yes)
remoteOS 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.
ESXi yes ou no no active le mode de sauvegarde VMware ESXi pour les machines virtuelles.
Voir Sauvegarde des machines virtuelles ESXi avec Affa
ESXiVMName texte Le nom de la VM tel qu'affiché dans le client VI.
ESXiUsername texte Le nom du client VI avec la permission de créer et détruire les instantanés (snapshots).
ESXiPassword texte Le mot de passe de l'utilisateur ESXiUsername
chunkFiles 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

Propriétés de la 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.

Exemple : Vous voulez positionner la propriété 'localNice' à 19 pour toutes les tâches. Tapez

db affa setprop DefaultAffaConfig localNice 19

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.

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'.

Pour configurer un rapport hebdomadaire, tapez :

db affa setprop DefaultAffaConfig sendStatus weekly

puis configurez cronjob :

affa --make-cronjobs

Désactivation globale

Toutes les tâches peuvent être désactivées en positionnant l'enregistrement AffaGlobalDisable sur 'yes'.

db affa set AffaGlobalDisable yes
affa --make-cronjobs

Pour réactiver :

db affa set AffaGlobalDisable no
affa --make-cronjobs

Utilisation et options de ligne de commande

  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.


affa --send-key JOB
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:
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:
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 --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é.


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 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.

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


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 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 --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é.

Affa version 2.0.0-rc4 on affa1.mydomain.de (10.204.48.2)
+------------------------------------------------------------------------------+
| Job: primmail                                                                |
| Description: Mailserver Albstadt                                             |
| Directory: /var/affa/primmail/                                               |
| Hostname: 10.204.144.2                                                       |
| Email: admin@mydomain.de                                            |
+-------+-----------------------+-----------+----------------+--------+--------+
| Run   | Completion date       | Exec Time |          Files |   Size |  Recvd |
+-------+-----------------------+-----------+----------------+--------+--------+
| M 9   | Sun 2008 Mar 02 06:11 |  0h29m47s |         679010 |   80GB |   60MB |
| M 8   | Sun 2008 Mar 30 06:12 |  0h26m59s |         701683 |   83GB |   48MB |
| M 7   | Sun 2008 Apr 27 06:16 |  0h28m01s |         731332 |   87GB |   47MB |
| M 6   | Sun 2008 Jun 01 06:20 |  0h27m37s |         755529 |   90GB |   50MB |
| M 5   | Sun 2008 Jun 29 06:24 |  0h28m39s |         800200 |   94GB |   52MB |
| M 4   | Sun 2008 Jul 27 06:28 |  0h29m10s |         835398 |   99GB |   59MB |
| M 3   | Sun 2008 Aug 31 06:34 |  0h34m53s |         869409 |  101GB |   65MB |
| M 2   | Sun 2008 Sep 28 06:38 |  0h33m19s |         910889 |  106GB |   59MB |
| M 1   | Sun 2008 Oct 26 06:42 |  0h38m41s |         932627 |  110GB |   61MB |
| M 0   | Sun 2008 Nov 30 06:48 |  0h51m44s |         954090 |  116GB |   75MB |
+-------+-----------------------+-----------+----------------+--------+--------+
| 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 |
+-------+-----------------------+-----------+----------------+--------+--------+

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


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'.

Affa version 2.0.0-rc4 on backup.mydomain.de (10.204.48.2)
+----------------+-----+-------+-----------+-------+-------+----------------+
| Job            | ENA |  Last | Exec Time |  Next |  Size | N of S,D,W,M,Y |
+----------------+-----+-------+-----------+-------+-------+----------------+
| 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 |
+----------------+-----+-------+-----------+-------+-------+----------------+

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


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.


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 '='.

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.


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'.


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.
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 --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.


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.


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.


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é DSA publique sur le serveur distant.

  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 --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.


affa --kill JOB

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

affa --debug

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

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é DSA 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.

Sauvegarde d'un ordinateur Windows

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 Documentsdes 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'=>'secretword',
'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/',

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é.

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.

Restauration

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 -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 -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 -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 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: 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:
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"

Merci de consulter cet Howto: Moving SME to new Hardware


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. TLa 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 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.


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
  • Réenvoyer 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 réenvoyé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 de emails après un "rise" sur le server 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:
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 server de sauvegardes (server 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


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.

Informations complémentaires

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

Références