FTP vers plusieurs machine
Bonjour,
Je souhaiterais à patir d'un PC récupérer un répertoire de sauvegarde de plusieurs machines ( un aprés l'autre )
sachant que sur chaque machine le répertoire porte le même nom
deplus sur chaque machine il faut entrer un login et un password
Quelqu'un pourrait-il me donner un coup de main
Merci
Stéphane
Je souhaiterais à patir d'un PC récupérer un répertoire de sauvegarde de plusieurs machines ( un aprés l'autre )
sachant que sur chaque machine le répertoire porte le même nom
deplus sur chaque machine il faut entrer un login et un password
Quelqu'un pourrait-il me donner un coup de main
Merci
Stéphane
A voir également:
- FTP vers plusieurs machine
- Machine virtuelle windows - Guide
- Carte bancaire machine à laver ✓ - Forum Matériel & Système
- Il est en cours de transport vers votre site de livraison ✓ - Forum Consommation & Internet
- Time machine - Guide
- Core ftp - Télécharger - Téléchargement & Transfert
5 réponses
Bonjour mamiemando
Tu as totalement identifié ce dont j'ai besoin
étant une bille en informatique, aurais tu la stucture en unix ?
Merci encore pour ton aide
Tu as totalement identifié ce dont j'ai besoin
étant une bille en informatique, aurais tu la stucture en unix ?
Merci encore pour ton aide
Il faut que tu lises un fichier qui indique à chaque ligne une IP sur laquelle se connecter en ftp.
Ouvrir un fichier de log en écriture
Je ne peux pas te donner plus que la structure du code car en ce qui me concerne je suis sous linux et je l'écrirais en shell ou en python. Dans ton cas c'est peut être faisable en "batch" (les commandes msdos windows) mais je ne connais pas assez pour te guider. Sinon tu peux essayer avec un langage genre python. Exemple :
http://www.commentcamarche.net/forum/affich 73041 python ftp programme
Dans ton cas il faudra adapter cette exemple car c'est un PC qui collecte les sauvegardes auprès des différents poste (ce qui est mieux d'un point de vue maintenance que le contraire si lesdits poste ne coupent pas ftp, chose que tu pourras aisément vérifier via ton fichier de log). Je t'invite à lire quelques tutoriels en python, tu verras c'est assez simple et je pense que c'est bien adapté pour résoudre ton problème.
Bonne chance
Ouvrir un fichier de log en écriture
Pour chaque IP
Si la connexion échoue
Noter que IP n'est pas joignable dans le fichier de log
continue
Fin si
Cherche le répertoire à sauvegarder sur la machine distante
Si ce répertoire n'existe pas
Noter que IP ne possède pas de répertoire à sauver dans le fichier de log
continue
Fin si
Créer un répertoire portant la date actuelle
Créer dedans un sous répertoire portant pour nom l'IP de la machine
Télécharger les fichiers à sauver dedans
Fin si
Fermer le fichier de log
Je ne peux pas te donner plus que la structure du code car en ce qui me concerne je suis sous linux et je l'écrirais en shell ou en python. Dans ton cas c'est peut être faisable en "batch" (les commandes msdos windows) mais je ne connais pas assez pour te guider. Sinon tu peux essayer avec un langage genre python. Exemple :
http://www.commentcamarche.net/forum/affich 73041 python ftp programme
Dans ton cas il faudra adapter cette exemple car c'est un PC qui collecte les sauvegardes auprès des différents poste (ce qui est mieux d'un point de vue maintenance que le contraire si lesdits poste ne coupent pas ftp, chose que tu pourras aisément vérifier via ton fichier de log). Je t'invite à lire quelques tutoriels en python, tu verras c'est assez simple et je pense que c'est bien adapté pour résoudre ton problème.
Bonne chance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Alors plutôt que de faire du ftp le top du top ce serait de faire du ssh et ce sera plus facile à coder et sécurisé.
Installe un serveur ssh (par exempl openssh-server) sur chaque poste client. Dans ton cas on remplace donc juste "serveur ftp" par "serveur ssh". Crée sur chaque poste un compte (par exemple admin) avec un mot de passe qui va bien.
Par abus de langage j'appelle clients les postes qui ont des données à sauver (alors qu'en toute rigueur ce sont des serveurs mais bon flemme de renommer mes variables).
Je ferais un truc du genre :
Bonne chance
Installe un serveur ssh (par exempl openssh-server) sur chaque poste client. Dans ton cas on remplace donc juste "serveur ftp" par "serveur ssh". Crée sur chaque poste un compte (par exemple admin) avec un mot de passe qui va bien.
Par abus de langage j'appelle clients les postes qui ont des données à sauver (alors qu'en toute rigueur ce sont des serveurs mais bon flemme de renommer mes variables).
Je ferais un truc du genre :
#!/bin/sh
# Le fichier qui stocke pour chaque ligne l'IP d'un poste
clients="clients.conf"
# Le répertoire dans lequel je vais stocker toutes les sauvegardes
root_dir="./sauvegardes"
# Le sous-répertoire dans lequel je vais stocker toutes les sauvegardes du jour
date=`date +%d-%m-%Y`
# Le fichier contenant les logs du jour
log_file="save_${date}.log"
# Le répertoire qui contient les fichiers à sauver sur chacun des postes
save_dir="repertoire_a_sauver"
# Le login que tu utilises pour te connecter sur chaque poste. Il faudra que tu crées ce compte
login="admin"
for client in $(<$clients)
do
# Le sous-répertoire dans lequel je vais stocker toutes les sauvegardes du jour de ce pc
target_dir="${root_directory}/${date}/${client}"
mkdir -p $target_dir
echo "Downloading file from ${client} into ${target_dir}"
cmd="scp -r ${login}@${client}:${save_dir} ${target_dir}"
$cmd > ${log_file}
done
Puis un système de clés ssh pour éviter de taper le mot de passe pour chaque compte du type admin@ip_client.
Bonne chance