Hypothèses
On dispose d'un parc hétérogène de serveurs.
On veut sauvegarder certaines données.
Proposition 1
On peut laisser les serveurs sauver régulièrement leurs données et les mettre à disposition.
Sur chaque serveur, dans le gestionnaire des tâches (Windows) ou dans la crontable (Linux),
un script est lancé qui sauvegarde les données à heure fixe, par exemple le soir à 20h00.
Chaque script est adapté au système : un batch sous Windows, un bash sous Ubuntu.
Code:
#!/bin/sh
YESTERDAY=`date --date '1 day ago' +%Y%m%d`
TODAY=`date +%Y%m%d`
SAVE_DIR=/var/saved_data
FILES_TO_SAVE=/home/t_hebi/data_to_save
# Sauvegarde complète
tar -cf $WHERE/all_data_$TODAY $FILES_TO_SAVE
# Sauvegarde des fichiers du jour
tar --newer $YESTERDAY -cf $WHERE/data_of_the_day_$TODAY $FILES_TO_SAVE
Faire un équivalent pour Windows.
Sur chacun de ces serveurs, le répertoire de sauvegarde est accessible en lecture via un service FTP.
Sur la machine de sauvegarde, il suffit alors de faire le tour des fichiers à sauvegarder :
Code:
#!/bin/sh
COMPUTERS="SrvW1 SrvUbun2"
TODAY=`date +%Y%m%d`
for $COMPUTER in $COMPUTERS; do
cd /var/saved_data/$COMPUTER
echo "Récupération des donnés sur le serveur $COMPUTER"
ftp -n [url=ftp://SrvW1]ftp://SrvW1[/url] <<EOF
user ADMIN_SAUVEGARDE
pass lemotdepassdeladmin
get /saved_data/all_data_$TODAY
get /saved_data/data_of_the_day_$TODAY
EOF
done
Cela nécessite donc 1 service FTP par serveur, c'est tout.
(Du côté client FTP, un ptit ncftpget ne peut pas faire de mal
On aime : L'option -f )
Evidemment, on peut remplacer FTP par HTTP si on a un serveur web sur la machine. La récupération se fait alors par un wget.
Autre idée : Se servir du partage de fichiers sur le serveur Windows, de Samba sur le serveur Ubuntu et d'un bête client Samba sur la machine de sauvegarde.
Cela nécessite donc Samba sur le serveur Ubuntu.
Donc en résumé, sur les serveurs à sauvegarder : cron / g. de tâches + script + serveur de fichiers (ftp, http, smb)
Proposition 2
La même chose, mais le serveur de sauvegarde est passif : on installe un serveur ftp (ou autre) sur cette machine et ce sont les autre machines qui font un
put vers le serveur de sauvegarde. (ncftpput)
Résumé, côté serveurs à sauvegarder : cron / g. de tâches + script.
Proposition 3
Tant qu'à faire d'installer Samba, autant l'utiliser : Donc on partage en lecture les dossiers et répertoires où les données à sauvegarder et c'est le serveur de données qui fait le boulot. Les scripts de sauvegarde sont donc les mêmes, mais on les exécute à partir du serveur de sauvegarde. Il faut être sûr que les fichiers ne sont pas en cours de modifications.
Résumé : Installation de Samba sur le serveur Ubuntu.
Proposition 4
Utiliser
rsh ou
ssh pour exécuter les commandes à distance.
rsync est alors un excellent choix. Mais ce choix impose l'installation de CygWIN sur les machines Windows. On dénature un peu le problème, car on se réduit au cas : Parc homogène de machines sous UNIX-like.
Résumé : Installation de CygWIN et de OpenSSH sur le serveur Windows.