Créer un SCRIPT de SAUVEGARDE (Ubuntu)

  • Auteur de la discussion T_HeBi
  • Date de début

T_HeBi

Habitué
Bonjour a tous !
Dans le cadre d'un PTI en informatique, je voudrais créer un script sous ubuntu qui effectuerait mes sauvegardes situées sur des serveurs : - 1 Sous WINDOWS 2003
- 1 Sous Ubuntu Server

je doit sauvegarder un dossier (sur Windows 2003), 1 dossier (sur Ubuntu Server), et une base de donnée MySQL situées sur mon serveur Windows 2003.

Je précise que mon "Serveur de sauvegarde" est une machine ne servant seulement qu'a ces sauvegarde (et qui est sous Ubuntu..)

Merci d'avance pour vos réponses !


Mc.Fly :bounce: :bounce: :bounce:
 

zeb

Modérateur
Qu'est-ce qu'un PTI en informatique ?
Faut-il t'appeler T_HeBi ou Mc.Fly ?
Et pis arrête de sauter comme ça !

______________________


Quel langage de script comptes-tu utiliser ?
Comment accèdes-tu aux données sur tes différents serveurs ?
 

T_HeBi

Habitué
Un PTI est un "projet" en quelque sorte est n'est pas forcement lié qu'a l'informatique ...

Aller tu peux m'appeller Mc.Fly ;)

désoler de sauter ainsi mais j'ai tres tres tres tres envi de faire ce projet ^^


---------------------------------------------------------------------------------------------------------------------


Donc comme je l'ai précisé je veux créer mon script sous Ubuntu, donc un .batch si tu préfères...

Je me doute qu'il va falloir utiliser la commande : MySQLDump pour la sauvegarde de bases de données

après mon "HIK''" vient du fait que ces fichiers sont situés sur des machines différentes (utilisation des lecteurs réseau..), et surtout que ces 3 machines ne sont pas sur le même Os ( Microsoft vs Unix ^^)
 

zeb

Modérateur
Quel langage de script comptes-tu utiliser ?

La réponse ne peut pas être Ubuntu. Ubuntu, c'est le nom de ta distribution. C'est comme si je te demandais "Où veux-tu aller ?" et que tu me répondais "Ben, j'ai une Twingo, eh, gros malin" :/

Choix plausibles :
[ ] sh/bash/ksh
[ ] rsh
[ ] csh
[ ] perl
[ ] Autre. Précisez: __________________


MySQL sur Windows quand on a un serveur Linux :pfff:
J'espère que le choix n'est pas de toi :o


Pour exécuter des scripts à distance sous Windows, je t'invite à poser la question dans le monde de Windows. Regarde quand même du côté des PsTools de Mark Russinovitch.

Je repose la question un peu différemment.
Comment accèdes-tu aux fichiers sur tes différents serveurs ?
Choix plausibles :
[ ] ftp
[ ] http
[ ] Autre. Précisez: __________________
 

zeb

Modérateur
Je repense à ta proposition de MySQLDump.
Bonne idée.

Mais un tar | gzip de tout un répertoire peut être une solution générique.
 

zeb

Modérateur
Il y a aussi la soluce CygWIN ;)
Comme ça, les lacunes de Windows sont comblées par du UNIX-like :)
 

T_HeBi

Habitué
je debute sous linux si tu preferes ! je te rassure ce n'est pas moi qui choisi les sujets !
Donc je doit faire un script (SANS LANGUAGE SPECIAL IMPOSE) donc le choix me revient ! cependant etant donné que je debute sous linux je ne sais absolumen pas comment procéder ...


 

zeb

Modérateur
Bon. tu as le droit de débuter, mais il faudrait quand même nous aider à t'aider. TPI, je ne sais toujours pas ce que c'est. En fait, je me fous pas mal de connaître ce sigle, mais peut-être me renseignera-t-il sur ta situation. Est-ce un projet scolaire, professionnel, personnel ??? La vraie question est : quelle liberté as-tu sur les différentes machines ? - Installer CygWIN par exemple n'est pas anodin. Sur une machine perso, pas de problème, sur un serveur, l'admin risque de faire la gueule.

A priori, le langwage bourne ( = sh. bash et korn sont compatibles. Sous Ubuntu, de mémoire, /bin/sh est un lien vers /bin/bash ) est un grand classique. C'est sans doute ce qu'on attend de toi.

Un serveur est un ordinateur qui propose des services. Par exemple, ta machine Windows propose le service "Base de données". C'est donc bien un serveur.

Mais il faudrait aussi que ces machines proposent les services : "Sauvegarde d'un dossier" et "Sauvegarde d'une base de données".

Ce n'est pas à ton script sur la machine "Serveur de sauvegarde". D'ailleurs, le nom de cette machine est très mal choisi. Car il s'agit en fait d'un client de sauvegarde si j'ai bien compris.

Donc, il faut que tu répondes à la question, posée 3 fois maintenant :
Comment accèdes-tu aux fichiers à sauvegarder sur tes différents serveurs ?
 

T_HeBi

Habitué
je t'ai dis que j'avais le choix! avant de faire la maline apprendre a lire SVP !!!!!!! laisse tombe je vais voir quelqu'un qui sais un minimum lire ... ++
 

zeb

Modérateur
Mais ne t'énerve pas McFly !!!!!!!!!!!!!

Tu as donc le choix dans le langage, côté "Serveur de sauvegarde".
Et je te propose le bourne shell (bash). Que veux-tu de plus ?

Mais il faut aussi que tu puisses accéder à tes fichiers sur les autres machines. Et ce n'est pas le choix du langage côté "Serveur de sauvegarde" qui va t'aider à récupérer tes données. Ce n'est pas le "Serveur de sauvegarde" qui prend les données, ce sont les serveurs Windows 2003 et Ubuntu Server qui donnent leur données pour les sauvegarder.

Tant que tu ne comprendras pas ça, tu ne pourras pas avancer. Surtout si tu t'énerves et que tu insultes ceux qui prennent la peine de t'aider.
 

Watchwolf

Grand Maître
rsync et une connexion ssh pour l'accés au donné ca devrait être bienc a non ?
 

zeb

Modérateur
+2

Mais on en revient au premier problème, l'installation possible ou pas de CygWIN sur la machine Windows.
 

Watchwolf

Grand Maître
non mais sur windows tu install un serveur ssh. Et ton rsync se trouve sur la machine linux de sauvegarde :o
 

zeb

Modérateur
>>sur windows tu install un serveur ssh
CygWIN needed for OpenSSH ! (Peut être pensais-tu à un autre serveur ?)
(Pas tous les paquets, je te l'accorde)

N'empêche, il faut installer un service supplémentaire sur le serveur Windows.
Y installer un serveur SSH répondrait à la question Comment accèdes-tu à la machine contenant les fichiers à sauvegarder ?
 

T_HeBi

Habitué
J'ai le choix !!!!!!!
C'est un projet : cela veut dire que c'est fictif !!!!

Donc je peux faire absolument ce que je veu du momen que sa marche !!!
 

zeb

Modérateur
>>>c'est fictif !!!!

Désolé T_Hebi, je viens de comprendre. Mais tu utilises des mots et des abréviations qui te semblent sans équivoques, alors qu'ils peuvent l'être. Des projets, j'en ai à la pelle au boulot, et pourtant, ce n'est pas du tout fictif.

Quand je t'ai demandé ce qu'était un PTI, tu aurais pu m'expliquer que c'était scolaire, professionnel, personnel, etc... Par ailleurs, pour moi, un serveur est une machine sur laquelle on n'a pas la main, par principe. Bon, sauf si on est soit même l'admin. Ce que tu es, donc. Ça change tout dans la résolution de ton problème.
 

zeb

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

T_HeBi

Habitué
Et bien voila !!!
Voila c'est exactement ce qu'il me fallait ...
Désolé pour ce petit désagrément et merci énormément !

Ce problème est donc résolu grâce a zeb ;)
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 098
Messages
6 717 060
Membres
1 586 286
Dernier membre
petitangebleu1977
Partager cette page
Haut