La difficulté avec les sauvegardes de postes Windows sur un serveur BackupPC, ce ne sont pas les cas classiques des documents, images ou mails.
La difficulté, c’est de pouvoir –par exemple- arrêter un service et donc de pouvoir utiliser les commandes pre-xfer exec et post-xfer exec, surtout lorsque l’on n’a pas besoin d’installer un cygwin complet.
Rien n’est vraiment expliqué sur le web, à moins d’éplucher le code source du bouzin… Un début de réponse se trouve ici.
Ensuite, il faut creuser…
L’information principale à connaitre est que le service cherche à lancer l’exécutable sh.exe depuis le répertoire “bin” du rsyncd Windows.
Par exemple, si l’on configure rsync.conf avec une ligne :
pre-xfer exec = /bin/pre-exec.sh
Alors le service lance (depuis son répertoire d’installation et avec les droits de système) :
bin/sh.exe –c “/bin/pre-exec.sh”
Le soucis, c’est que l’installation par défaut du service rsyncd ne fourni pas le sh.exe (sauf à installer un cygwin !)
Heureusement, la solution est simple, il suffit de préparer un sh.exe fait maison qui va lancer le 2ème argument qu’on lui fournira. (le plus simple pour les non programmeurs étant de créer un bat avec un cmd /c %2 puis de le passer dans une moulinette du style bat 2 exe, ou alors d’utiliser AUTOIT)
Reste ensuite à copier le sh.exe dans le répertoire c:/<répertoire de rsyncd>/bin et à adapter la commande, par exemple :
pre-xfer exec = sc stop mysqlserver
post-xfer exec = sc start mysqlserver
Ce qui, au final, reviendra à lancer :
cmd /c “sc stop mysqlserver”
Enjoy !