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

Linux Discussion :

Shell Linux : Transfert FTP


Sujet :

Linux

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Shell Linux : Transfert FTP
    Bonjour tout le monde,

    J'ai un petit souci sur un script bash que je n'arrive pas à fonctionner, j'aimerai faire un script qui me permet de lancer un ping, ou bien s'il existe déjà de le killer et transfert le log sur un serveur ftp.

    Je débuttes en shell (depuis hier matin) Voici mes 2 scripts qui fonctionnent séparément mais je n'arrive pas à les intégrer dans le même :

    Vérification si le ping à déjà été lancé et sauvegarde du log
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #!/bin/bash
    ProcName=`ps -ax | grep -m 1 "ping xx.xx.xx.xx" | awk '{ print $5 }'` # Vérification de l'existence du Proc ping (me renvoie grep s'il n'existe pas)
    if [ "$ProcName" = "ping" ]; then
    	ProcNum=`ps -ax | grep -m 1 "ping xx.xx.xx.xx" | awk '{ print $1 }'` # Récupération du PID
    	NomFile="toto.log"
    	kill $ProcNum; mv ./pingtest.log $NomFile
    fi
    ping xx.xx.xx.xx > pingtest.log &
    Transfert FTP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ]#!/bin/bash
    ftp -vni x.x.x.x <<FINFTP
    user loginuser passworduser
    put "toto.log"
    bye
    FINFTP
    Et voici ce que j'essaie de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #!/bin/bash
    ProcName=`ps -ax | grep -m 1 "ping xx.xx.xx.xx" | awk '{ print $5 }'`
    if [ "$ProcName" = "ping" ]; then
    	ProcNum=`ps -ax | grep -m 1 "ping xx.xx.xx.xx" | awk '{ print $1 }'`
    	NomFile="toto.log"
    	kill $ProcNum; mv ./pingtest.log $NomFile
    	ftp -vni x.x.x.x <<FINFTP
    	user loginuser passworduser
    	put $NomFile
    	bye
    	FINFTP
    fi
    ping xx.xx.xx.xx > pingtest.log &
    Il me met l'erreur suivante quand je le lance :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # bash --verbose pingtest.sh
    #!/bin/bash -x
    ProcName=`ps -ax | grep -m 1 "ping xx.xx.xx.xx" | awk '{ print $5 }'`
    ps -ax | grep -m 1 "ping xx.xx.xx.xx" | awk '{ print $5 }'
    if [ "$ProcName" = "ping" ]; then
            ProcNum=`ps -ax | grep -m 1 "ping xx.xx.xx.xx" | awk '{ print $1 }'`
            NomFile="toto.log"
            kill $ProcNum; mv ./pingtest.log $NomFile
            ftp -vni x.x.x.x <<FINFTP
    pingtest.sh: line 15: syntax error: unexpected end of file
    Merci à celui ou celle qui pourra m'aider

  2. #2
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Points : 751
    Points
    751
    Par défaut
    j'avais un probleme similaire, j'ai l'impression que les commandes situées apres la liste de commande ftp ne sont pas prises en compte. donc il ne voit pas le fi, et il rale.. par contre, je ne sais pas comment corriger ca, mais ca m'interresse !

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    En faites j'aurai pu passer par un fichier de script pour mes commande FTP :
    ftp -vni x.x.x.x < ftp.cmd
    Par exemple mais j'ai besoin de généré un nom de fichier avec la date du jour, donc de passer à ftp la variable $NomFile et ça je vois pas comment faire non plus

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    J'ai pas vraiment réussi à faire ce que je voulais mais si ça intéresse du monde voici ce que j'ai fais.

    Le programme "/pingtest/pingtest.sh" suivant est un script bash :
    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
    19
    #!/bin/bash
    # Recuperation du nom du Processus, renvoie 'grep' si aucun proc 'ping' ne tourne
    ProcName=`ps -ax | grep -m 1 "ping -i 10 xx.xx.xx.xx" | awk '{ print $5 }'`
    # Effectue la liste des action suivante s'il trouve le proc "ping" :
    if [ "$ProcName" = "ping" ]; then
           #Recuperation du PID du proc ping :
           ProcNum=`ps -ax | grep -m 1 "ping -i 10 xx.xx.xx.xx" | awk '{ print $1 }'`
           # Nouveau nom du fichier de log :
           NomFile="ping.`date --date "now 1 days ago" "+%y%m%d"`.log"
           # Arret du ping en cours :
           kill $ProcNum
           # Enregistrement dans le répertoire log
           mv /pingtest/log/pingtest.log /pingtest/log/$NomFile
           # Ftp vers le LXALGAM du repertoire ./log & sauvegarde ds ./old/log
           ftp -ni < /pingtest/trfftp && mv /pingtest/log/$NomFile /pingtest/log/old/$NomFile
    fi
     
    # Lancement du ping toutes les 10s dans le fichier ./log/pingtest.log
    ping -i 10 xx.xx.xx.xx> /pingtest/log/pingtest.log &
    Qui utilise le fichier de commande ftp "/pingtest/trfftp" suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    open serveurftp
    user loginuser passworduser
    mput /pingtest/log/*.log
    bye
    Mon problème était de transferer via FTP un fichier en particulier dont je devait savoir le nom dans la commande put FTP, du coup je passe par un répertoire temporaire dans lequel je copie le fichier, fait un mput du contenu du répertoire puis re-déplace le fichier vers un répertoire de sauvegarde './log/old'. C'est peut être pas la meilleur solution mais en tout cas ça marche . Désolé jobherzt si je ne réponds pas à ce que tu recherchait aussi

Discussions similaires

  1. Excecution automatique d'un transfert ftp en shell
    Par Marc_ dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 24/03/2007, 15h19
  2. Réponses: 2
    Dernier message: 21/06/2005, 21h18
  3. transfert ftp avec le composant
    Par sillycoder dans le forum Composants VCL
    Réponses: 3
    Dernier message: 19/05/2005, 09h35
  4. Transfert FTP répétitif et perte de fichiers
    Par Harry dans le forum Développement
    Réponses: 3
    Dernier message: 24/06/2004, 15h15
  5. Problème de transfert FTP sous IIS
    Par thanathz dans le forum Développement
    Réponses: 2
    Dernier message: 12/07/2002, 15h27

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