IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

FTP et gestion des erreurs [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Par défaut FTP et gestion des erreurs
    Bonjour à tous.

    Voila, je bosse sur un petit script en batch qui doit permettre de faire du ftp (put et/ou get).
    il marche plutôt bien, mais il y a quelques améliorations que je voudrais apporter et je n'arrive pas à faire ce que je veux.

    Deux points m’embêtent :
    - le premier, j'attaque un serveur linux avec un put. si je fais un CD MonDossier et que MonDossier n'existe pas, je reste dans le dossier home (cd ~) et je 'put' mon fichier dedans. A ce niveau là, je préférerai que ça plante plutôt que ça me mette mon fichier n'importe où.
    Mais je ne sais pas comment gerer cela. J'ai rentré toutes mes commandes dans un fichier %FTP_CMD%, et j'exécute la commande suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ftp -n -s:%FTP_CMD% REMT_HOST
    Comment puis je faire pour qu'il s’arrête avant d'essayer de faire le put ?


    - le deuxième point qui m'embête, c'est la gestion des erreurs. En fait, lorsque je fais un get, j'obtiens dans ma log le message '226 Transfer complete' - que je peux alors facilement analyser - mais lorsque je fais un put, je n'obtiens rien. Par contre, j'obtiens les messages d'erreur. C'est quand même beaucoup plus facile de chercher un message ok que plein de message d'erreur, surtout que je ne suis pas sur de tous les avoir.
    J'aimerai bien récuperer un %ERRORLEVEL% mais la fonction 'ftp' se termine très bien, donc ça vaut 0.
    Vous auriez une idée de comment je peux faire à ce niveau ?


    N'hésitez pas à me poser des questions s'il y a des points pas clairs.

    Merci d'avance.


    Steven

  2. #2
    Membre émérite Avatar de devilsnake88
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 453
    Par défaut
    Bonjour,
    C'est toujours plus complexe d'aider lorsque la personne ne fait pas partager son code complet.
    Cependant, et selon mon faible niveau, je pense qu'il serait intéressant de vérifier si le dossier et les fichiers envoyés/téléchargés existent.
    Je m'explique:
    On veut se placer dans MonDossier? on exécute un
    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    if exist "\\serveur\home\MonDossier" cd "\\serveur\home\MonDossier"
    (Pas certain que ceci fonctionne vue qu'on travaille sur un serveur Linux, au pire utiliser des commandes Linux permettant de faire la même chose depuis le batch)

    On veut télécharger le fichier "blop.jpg" -> *Commande pour télécharger le fichier* suivit de
    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if exist "\\serveur\home\MonDossier\blop.jpg" do (
    echo blop.jpg a bien été téléchargé.
    @echo blop.jpg - ok >>monlog.txt
    )
    Quelque chose du style, après je n'ai pas testé mes dires mais c'est peut-être quelque chose d'utile.

  3. #3
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    salut,

    As-tu essayé de faire un put avec le chemin complet ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    put Repertoire/fichier.txt
    si le repertoire n'existe pas il ne devrait pas te le copier.


  4. #4
    Membre émérite Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Par défaut
    Citation Envoyé par sachadee Voir le message
    salut,

    As-tu essayé de faire un put avec le chemin complet ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    put Repertoire/fichier.txt
    si le repertoire n'existe pas il ne devrait pas te le copier.

    Merci pour cette bonne idée ! j'ai un peu honte de pas y avoir pensé, j'avais sans doute trop le nez dans mon code.... en tout cas, ca fonctionne parfaitement.

    Merci beaucoup


    Cela résoud donc mon point 1. je n'ai plus besoin de l'arreter puisqu'avec le chemin complet, il ne fait plus la copie, c'est nickel


    Par contre, sur mon point 2, je suis toujours obligé de checker les messages d'erreurs (d'ailleurs, cette méthode m'en à fait surgir un nouveau donc j'ai vraiment peur d'en oublié) - une idée la-dessus ?

  5. #5
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    Pour le point 2 je n'ai pas très bien compris ton problème.
    Tu 'aimerais être sûr que ton fichier ai bien été uploadé avec le put ?

  6. #6
    Membre émérite Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Par défaut
    Citation Envoyé par sachadee Voir le message
    Pour le point 2 je n'ai pas très bien compris ton problème.
    Tu 'aimerais être sûr que ton fichier ai bien été uploadé avec le put ?
    Ouais, c'est exactement cela. En fait, quand je fais un get, j'ai un message qui me dit en gros "OK, le fichier a bien été transféré" mais quand je fais un put, je n'ai pas ce message.
    Par contre, dans les deux cas, quand il y a une erreur, ca me le dit. Donc, je catch les erreurs plutot que les success... mais c'est pas tres efficace je trouve.

  7. #7
    Membre émérite Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Par défaut
    Citation Envoyé par devilsnake88 Voir le message
    Bonjour,
    C'est toujours plus complexe d'aider lorsque la personne ne fait pas partager son code complet.
    Cependant, et selon mon faible niveau, je pense qu'il serait intéressant de vérifier si le dossier et les fichiers envoyés/téléchargés existent.
    Je m'explique:
    On veut se placer dans MonDossier? on exécute un
    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    if exist "\\serveur\home\MonDossier" cd "\\serveur\home\MonDossier"
    (Pas certain que ceci fonctionne vue qu'on travaille sur un serveur Linux, au pire utiliser des commandes Linux permettant de faire la même chose depuis le batch)

    ...
    Désolé de ne pas tout transmettre mais je bosse dans une société où le simple fait de brancher une clef USB leur fait faire des bonds lol. Donc, je préfère limité ce que j'inclus. Mais pour être plus précis, voila ce qui est fait :

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    REM Write FTP commands to transfer the specIFied report to a temporary file.
    ECHO user %REMT_USER% %REMT_PASS%		 > %FTP_CMD%
    ECHO binary                       		>> %FTP_CMD%
    ECHO cd  "%REMT_DIRC%"	           		>> %FTP_CMD%
    ECHO lcd "%LOCL_DIRC%"	            	>> %FTP_CMD%
    ECHO PUT "%LOCL_F_NAME%" "%REMT_F_NAME%" >> %FTP_CMD%
    ECHO close                         		>> %FTP_CMD%
    ECHO quit                          		>> %FTP_CMD%
     
    :TransferFile
    ftp -n -s:%FTP_CMD% %REMT_HOST% >> "%TMP%\%LOGFTPTEMP%" 2>&1

    Les commandes de test 'EXIST' ne sont pas disponibles en mode ftp...

    Par contre, je trouve que l'idée de copier avec le chemin complet est plutôt une bonne idée, il faut que je teste ca.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FB] Gestion des erreurs et application francophone
    Par Benjamin GAGNEUX dans le forum Installation
    Réponses: 10
    Dernier message: 20/05/2006, 14h54
  2. [struts][Datasource]Gestion des erreurs
    Par GreenJay dans le forum Struts 1
    Réponses: 8
    Dernier message: 15/09/2004, 16h51
  3. [VB6] Gestion des erreurs dans une dll
    Par zimba-tm dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 02/08/2004, 11h20
  4. [XSLT]Est ce qu'il y'a la gestion des erreur en xslt ?
    Par miloud dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 04/02/2004, 17h19
  5. [LG]gestion des erreurs
    Par frontin dans le forum Langage
    Réponses: 3
    Dernier message: 29/11/2003, 22h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo