Batch upload FTP et log... je rame !

Une difficulté, une précision posez vos questions

Modérateur : WIN32-[GG]

Répondre
kryptogram
Batcheur occasionnel
Messages : 1
Enregistré le : 08 mai 2012 15:24

Batch upload FTP et log... je rame !

Message par kryptogram »

Bonjour à tous,

Je viens de m'inscrire (l'encre n'est pas encore sèche) et vous demande de l'aide, déjà ;)
Voici le contexte, ce que j'utilise, ce que j'ai fait, ce qui ne fonctionne pas :(

Contexte : sur un partage réseau mappé, un soft génère des fichiers. Je souhaite créer un batch qui upload sur un serveur FTP ces fichiers, avec log à l'appui... Je ne souhaite uploader que les fichiers (déposés par un autre soft) dont le nom est composé de RES... puis d'une chaîne aléatoire.

Tools utilisés : mon bon vieux Notepad++ pour un code bien clair, et l'utilitaire curl pour windows (car gérant le FTP également)

Ce que j'ai fait : voici le code de mon batch (en ayant modifié les infos de sécurité)

Code : Tout sélectionner

cls
:: Le titre
@title Envoi du contenu du répertoire mappé \\serveur_5\subdir\labo sur le FTP du fournisseur

:: echo off

:: MAPPAGE LECTEUR RESEAU
net use G: \\serveur_5\subdir

:: ###DEFINITION DES VARIABLES###
:: PARTIE FTP
set user_ftp=USERFTP
set pwd_ftp=PWD
set ip_ftp=200.205.210.215
set path_ftp=/

:: CHEMIN REPERTOIRE RACINE
set rep_root=G:\
:: CHEMIN DOSSIER LOCAL
set local_path=G:\labo
:: CHEMIN CURL
set rep_curl=G:\curl_bin
:: CHEMIN DES JOURNAUX
set rep_log=G:\logs\labo

:: Si le ping est négatif, quitter et log (N'ACTIVER QUE SI LE SERVER FTP REPOND AU PING)
:: ping -n 1 %ip_ftp%
:: if %errorlevel%==1 goto NO_PING_SERVER

:: Création du routage ftp fournisseur (non permanent) via le proxy pour le poste
route add 200.205.210.215 mask 255.255.255.255 10.11.12.13

:: On sélectionne les fichiers à envoyer
cd /D %local_path%
IF EXIST ./RES*.* (
FOR %%f IN (RES*.*) DO (
:: ENVOI DE CHAQUE FICHIER SUR LE FTP
%rep_curl%\curl -u %user_ftp%:%pwd_ftp% -Q "+CWD %path_ftp%" -T "%%f" ftp://%ip_ftp%/

:: ON LOGUE LES INFORMATIONS
echo "%date%|%time:~0,2%h%time:~3,2% : fichier %%f -- envoyé " >>%rep_log%/log_put_labo.log
)

:: Suppression de l'itinéraire non persistant
route delete %ip_ftp%
:: Deconnexion mappage reseau
net use G: /delete

:: goto FIN

:: :NO_PING_SERVER
:: Le serveur ne répond pas au ping
:: echo "%date%|%time:~0,2%h%time:~3,2% : Le serveur FTP n'est pas joignable - Aucun transfert effectué" >>%rep_log%/connexions.log

:: :FIN
Non seulement les fichiers n'ont pas l'air d'être expédiés, mais le log ne se crée et ne s'alimente pas...

Où est-ce que mon batch délire svp ?
Existe-t-il (avec les seules commandes de batch) un moyen d'effectuer la même chose ? (sélection de fichiers selon la composition de leur nom, upload sur un ftp externe, log des opérations)

Vos commentaires, retours et avis seront les bienvenus, cela fait 4 nuits que je tourne, que je teste, que je modifie, que je râle...

Merci par avance !
Répondre