Tag Archives: tutoriel

Restaurer une liste de fichiers avec ARCserve

Aujourd’hui, un petit tour du côté du monde des sauvegardes.

L’interface graphique de CA ARCserve est bien sympathique mais pour des choses “trop” compliquées, elle n’est pas utilisable. Hier, j’avais une liste de 498 fichiers à restaurer parmi des milliers de fichiers et en utilisant l’interface graphique (GUI), je devais cocher un par un chaque fichier après l’avoir retrouvé dans l’arborescence. Une opération longue, fastidieuse et sans intérêt.

Après avoir pesté un certain temps sur les heures voir jours que j’allais passer à tant bien que mal faire ma restauration, je me suis dit qu’il devait y avoir une interface en console (CLI). Ce ne fut pas facile de la trouver, notamment à cause du rachat d’ARCserve par Computer Associates (le préfixe de la commande passant de as_ à ca_) mais j’ai pu finalement trouver: ca_restore

Voici les différentes étapes pour effectuer la restauration. Il faut tout d’abord identifier sur quelle bande/id notre sauvegarde se trouve. Pour cela, c’est facile:
ca_restore.exe -listtapes

Comme ça on choisit notre bande. De là nous devons lister les sessions contenues dans la bande en question:
ca_restore.exe -listsessions [BANDE] [ID]

Là on choisit notre sauvegarde. Il ne nous reste plus qu’à passer les différents paramètres et notre liste de fichiers. Sachant que nous devons lister tous les fichiers un par un, séparés d’un espace, dans la commande de restauration, nous devons paser outre la limite de 1024 caractères par commande (la mienne en faisait plus de 22 000 !). Pour cela il faut tout simplement dire à la commende de chercher ses paramètres dans un fichier de la manière suivante:
ca_restore -f liste.txt

Avec le fichier “liste.txt” qui contient cela:
-entirepath -source [hostname] [liste de fichiers séparés d'un espace] -tape [BANDE] [ID] -session [SESSION] -dest [hostname] / -username root -password [PASSWORD] -logfile allactivity -hold

Voila, ceci aura pour résultat de créer un job de restauration en statut “HOLD” ce qui nous permettra de faire quelques dernières vérifications avant de lancer la restauration.

J’ai ajouté le paramètres -entirepath car sinon, lors de mon premier essai avec la commande que vous voyez, je me suis retrouvé sympathiquement avec tous les fichiers à la racine du serveur, la restauration n’avait pas pris du tout les chemins en compte (quelle horreur).

NB: Je n’ai pas pu restaurer avec cette méthode mes 498 fichiers d’un coup: il m’a fallu 3 tentatives partielles après lesquelles je comparais les logs de l’agent de sauvegarde avec la liste de fichiers afin de savoir ce qui manquait.

Migrer Zimbra Collaboration Suite

  • Debian Lenny x64
  • Zimbra Collaboration Suite 6.0.1 (ZCS)
  • rsync

Aujourd’hui, devant résilier mon serveur Dedibox, je dois migrer ce qui fonctionne dessus à savoir mon serveur mail collaboratif: Zimbra Collaboration Suite.

Comment faire ? Après quelques recherches, je constate qu’il n’y a aucune difficulté particulière. Il s’agit presque d’un simple copié/collé. Étant presque le seul utilisateur de mon serveur mail, je peux me permettre de ponctuellement le couper ce qui est assez pratique pour les manipulations à venir.

Attention par contre: ce tutoriel prévoir des coupures de service. Il est facile d’éviter les coupures de service MX ne serait-ce qu’en ayant temporairement 2 MX mais ça ne m’intéresse pas n’étant pas dans un cadre de hausse disponibilité et la migration étant prévue. De plus, l’ensemble de mon domaine étant configuré avec des TTL de 5 minutes, la propagation allait vite se faire.

Nous avons donc,

  • Dedibox: serveur mail Zimbra source
  • Cerberus: nouveau serveur Zimbra
  • Zimbra: 10.8.0.22 au sein du VPN, il va falloir modifier cette entrée pour qu’elle soit celle de Cerberus, soit 10.8.0.1
  • zimbra.kianouch.com passe de l’adresse publique de la Dedibox à celle de Cerberus
  • Pas de changement de MX qui restera donc zimbra.kianouch.com

Le serveur Cerberus n’héberge aucun service HTTPS mais héberge cependant des sites HTTP. Ce n’est pas un réel soucis car je ne souhaite pas laisser le webmail ouvert sans cryptage. Je le faisais auparavant pour les accès webmail depuis l’intérieur de mon VPN, à travers l’adresse http://zimbra mais cette disparition n’est pas gênante.

Lançons nous donc dans la migration ! Il faut commencer par transférer tout Zimbra sur le nouvel équipement, soit tout /opt/zimbra

cerberus:/opt# rsync -avz --delete -e ssh root@10.8.0.22:/opt/zimbra ./

C’est parti… dans mon cas 4Go environ à transférer à une vitesse moyenne de 50Mb/s. Une fois le rsync terminé, je coupe le service Zimbra sur l’ancien serveur et refait un dernier rsync à froid.

Nous allons ensuite refaire une installation du programme par dessus ces fichiers. Auparavant, il est nécessaire de modifier le FQDN dans un fichier de configuration étant donné que ce n’est plus le même. A priori, hostname, ldaphost et snmptraphost sont les seuls paramètres à modifier dans le fichier suivant.

/opt/zimbra/.saveconfig/config.save

Voici le résultat dans mon cas. (avec un faux domaine)

   HOSTNAME=cerberus.example.com
   LDAPHOST=cerberus.example.com
   LDAPPORT=389
   SNMPTRAPHOST=cerberus.example.com
   SMTPSOURCE=admin@example.com
   SMTPDEST=admin@example.com

vu que ce n’est plus le même. A priori, hostname, ldaphost et snmptraphost sont les seuls paramètres à modifier dans le fichier.

Passons maintenant à l’installation de Zimbra par dessus nos fichiers récupérés. Pour le téléchargement, ça se passe par ici: http://www.zimbra.com/downloads/os-downloads.html

L’installation de Zimbra est plutôt simple. On décompresse et on lance install.sh qui va vérifier les dépendances. S’il en manque, on les installe via des packages. Une fois qu’on a le résultat ci-dessous, on est content et on peut continuer.

Checking for prerequisites...
     FOUND: NPTL
     FOUND: sudo-1.6.9p17-3
     FOUND: libidn11-1.8+20080606-1
     FOUND: libpcre3-7.6-2.1
     FOUND: libgmp3c2-2:4.2.2+dfsg-3
     FOUND: libexpat1-2.0.1-4+lenny3
     FOUND: libstdc++6-4.3.2-1.1
     FOUND: libperl5.10-5.10.0-19lenny2
Checking for suggested prerequisites...
    FOUND: perl-5.10.0
    FOUND: sysstat
Prerequisite check complete.

Nous allons laisser les paramètres et packages par défaut et patienter le temps de l’installation des packages. Une fois l’installation effectuée avec les paramètres par défaut, il faut définir un mot de passe administrateur et “apply” les options afin de finaliser l’installation.

Dans mon cas j’ai également de petits soucis: il y a Exim qui tournait précédemment pour envoyer des emails depuis ce serveur et Apache écoute sur le port 80 que Zimbra squatterait volontiers.

Checking for port conflicts
Port conflict detected: 80 (zimbra-store)
Port conflict detected: 25 (zimbra-mta)
Port conflicts detected! - Any key to continue

Ce n’est pas grave: une fois la migration effectuée, je configurerais le webmail de Zimbra pour n’écouter que sur le port HTTPS, laissant Apache sur le port HTTP et je vais immédiatement désactiver Exim. L’installation de Zimbra Collaboration Suite prend un peu de temps et se termine par le lancement des services, ce que nous ne souhaitons pas. Il faut donc les couper.

cerberus:/root # /etc/init.d/zimbra stop
Host vpn.kianouch.com
        Stopping stats...Done.
        Stopping mta...Done.
        Stopping spell...Done.
        Stopping snmp...Done.
        Stopping archiving...Done.
        Stopping antivirus...Done.
        Stopping antispam...Done.
        Stopping imapproxy...Done.
        Stopping memcached...Done.
        Stopping mailbox...Done.
        Stopping logger...Done.
        Stopping ldap...Done.

Effectuons maintenant une modification de Zimbra pour que le webmail n’écoute qu’en HTTPS, laissant ainsi le port HTTP pour Apache.

cerberus:~# su - zimbra
zimbra@cerberus:~$ zmtlsctl https
zimbra@cerberus:~$ tomcat restart

Attention au redémarrage de Tomcat, il n’est pas rare que ce dernier ne se fasse pas correctement. Nous pouvons en tout cas maintenant lancer le service Zimbra. Étant déjà sous le compte zimbra, il suffit de lancer la commande suite.

zimbra@vpn:~$ zmcontrol start

Host zimbra.kianouch.com
        Starting ldap...Done.
        Starting logger...Done.
        Starting mailbox...Done.
        Starting antispam...Done.
        Starting antivirus...Done.
        Starting snmp...Done.
        Starting spell...Done.
        Starting mta...Done.
        Starting stats...Done.

Dernière étape de la migration, les DNS. Il faut configurer le MX pour qu’il envoie sur le bon serveur. Dans mon cas, le MX renvoie sur zimbra.example.com et je dois donc remplacer ce champ par cerberus.example.com.

Voilà ! Il ne reste qu’à test les différents éléments du serveur, se connecter au webmail, etc. Il faudra par la suite mettre en place une stratégie de sauvegarde mais aussi configurer la synchronisation avec téléphone ou autres iObjets.