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

Shell et commandes GNU Discussion :

Comment intercepter le timeout d'une connexion ftp en bash


Sujet :

Shell et commandes GNU

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 9
    Points : 11
    Points
    11
    Par défaut Comment intercepter le timeout d'une connexion ftp en bash
    Bonjour,

    J'ai écris plusieurs scripts qui se connectent au serveur ftp (filezilla server) afin de récupérer des fichiers textes et ce toute la journée.
    Afin de rendre plus propre l'exécution de ces scripts, j'ai créer un service linux qui les regroupes tous et les exécutes à une intervalle de 20 sec.

    Mon problème est que aléatoirement, le serveur ftp émet un timeout et le script qui est exécuté reste bloqué sur la connexion ftp.

    J'ai fais pas mal de recherche google pour intercepter ce timeout depuis le script mais sans succès.

    Comment puis-je faire pour que mon script ne reste pas bloquer sur la connexion ftp ?

    Merci

    PS : si je n'ai pas été clair, n'hésité pas à me poser des questions.

  2. #2
    Membre actif
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2007
    Messages : 248
    Points : 289
    Points
    289
    Par défaut
    Il faut se méfier des scripts lancé a intervalle régulier car tu peux saturer une ressource. As tu vérifier que tu n'as pas une floppée de scripts en attente de connection ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    J'ai fait une vérif des processus ftp sur mon serveur et effectivement j'en avais une floppé, actif ou non, je n'ai pas su comment savoir.

    J'ai killé tous ces process et j'ai rajouté un `kill pgrep ftp` après chaque connexion ftp que mes scripts effectuait mais rien à faire, à 18h10, mon service bloque une nouvelle fois.

    J'ai enlever le délais du timeout de filezilla server, et je me suis rendu compte que l'erreur ftp qui bloque mon service est : '425 can't open data connection'.

    Voici comment est construit un appel au ftp dans mes scripts :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    #!/bin/bash
     
    changename() {
    echo "ORD : Connexion FTP 3 " >&2
    FILETMP=`echo $4.tmp`
    FILETXT=`echo $4.txt`
    ftp -n $1 <<END_SCRIPT
    quote USER $2
    quote PASS $3
    cd "CMS vers Ego"
    rename $FILETMP $FILETXT
    quit
    END_SCRIPT
    echo "ORD : fin connexion FTP 3 " >&2
    }
    ...
    changename $HOST $USER $PASSWD $OUTPUT
    Si quelqu'un à une piste pour empêcher que mes scripts reste bloqués suite à une erreur lors de la connexion ftp, j'suis prenneur !

    Tilwan

  4. #4
    Membre actif
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2007
    Messages : 248
    Points : 289
    Points
    289
    Par défaut
    Es tu l'administrateur du serveur FTP ?
    En général quand un problème arrive aux alentours d'une heure précise c'est que d'autres travaux (demandes, jobs) sont exécutés de manière concurrente.

    Pour ton script tu dois connaitre les choses suivantes:
    - planning d'activité du serveur
    - nombre max de connections FTP autorisées par user ou en même temps

    A toi de développer ton script pour te conformer au planning et aux ressoures disponibles

    Quand a ton code retour, tu peux le tester et relancer ton script avec une temporisation.

Discussions similaires

  1. Comment faire une connexion FTP dans une application Mobile ?
    Par yaa3djaa dans le forum Windows Mobile
    Réponses: 4
    Dernier message: 02/04/2010, 17h26
  2. [Web Service][SOAP] Comment définir un timeout pour une connexion SOAP ?
    Par lehic dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 26/06/2007, 17h07
  3. Comment définir un timeout sur une socket PHP ?
    Par N3odyme dans le forum Langage
    Réponses: 7
    Dernier message: 07/05/2006, 23h04
  4. [VB.NET][1.1] Comment détecter le TimeOut d'une page web ?
    Par crimsonPhantom dans le forum ASP.NET
    Réponses: 1
    Dernier message: 13/01/2006, 20h01
  5. comment modifier le timeout d'une vye dans sql server 2K ?
    Par jlassira dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 07/10/2005, 11h28

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