Utilisation de NCFTPPUT

Résolu
Bonjour,

j'utilise ncftpput dans mes scripts bash pour envoyer des fichiers sur des comptes FTP. Pour cela j'ai crée un fichier par client avec leur paramètres de connexion de la sorte :

host ftp.domaine.fr
user batman
pass robin
path batmobile


J'utilise donc les paramètres (host,user,pass et path). Existe t il d'autres parametres. En effet je cherches a savoir si je peux ajouter un paramètre pour renseigner le délai du time out par client. Actuellement ce délai est le même pour tous mes clients et il est renseigné dans mon script bash comme suit :
ncftpput -t 90


Merci de votre aide.



--
L'accès au savoir est la première liberté que chaque homme devrait avoir.

10 réponses

  1. Contributeur
    Salut,

    Il y a un truc qui m'échappe là... ;-\

    Tes fichiers clients tu les appelles un par un via :

    ncftpput -t xx -f fichier_client1.cfg

    donc, je ne vois pas où est ton problème, tu peux très bien fixer le timeout en fonction du client appelé non ?
    0
    1. Salut,

      non puisque c'est un script global avec la ligne suivante donc je ne peux pas renseigner un time out diffèrent par fichier.

      ncftpput -d ${TMP}/${conf}_ncftp.log -t 100 -z -f $CONFDIR/${conf}.ncftp $path $zipfile
      0
      1. Contributeur
        Oups, désolé ;-(

        Je ne connais pas du tout ncftpput, j'ai juste lu la page de man.

        Tu veux dire que -f $CONFDIR/${conf}.ncftp contient la liste de tous les clients (host+name+pass+path) ???
        0
    2. Effectivement $CONFDIR contient tous les fichiers et la variable ${conf} correspond au nom de chaque fichier client du style :

      client1.ncftp
      client2.ncftp
      etc...
      L'accès au savoir est la première liberté que chaque homme devrait avoir.
      0
      1. Contributeur
        Ok.

        Par contre je tombe toujours sur la même page de man quelque soit le site...

        Pourrais-tu me dire où tu as pêché le fait qu'on puisse déclaré le path dans le fichier ?

        Dans toutes les pages de man il est fait état de host+name+pass mais jamais de path ;-\
        0
    3. Nulle part en faites c'est en faisant des essais que j'ai trouvé que path fonctionne. Je l'utilise depuis plusieurs années sans problème.
      0
      1. Contributeur
        Ben à tout hasard tente un "timeout xx" ;-\

        ;-))
        0
    4. Déjà fait :-o)
      0
      1. Contributeur
        ;-))

        Même la variante "time xx" ? ;-)
        0
    5. Aussi ;-)
      0
      1. Contributeur
        Ben apparemment il faudra te contenter d'un timeout commun ;-(

        Désolé ;-)
        0
    6. Peut être qu'il y a une solution en remplaçant le -t 100 par une variable qui renvoi vers un fichier avec la valeur du time out ainsi on peux peut être avoir un fichier par client et donc un time out diffèrent par client. Je vais testé.
      0
      1. Zipe,

        je rectifie ce que j'ai dit concernant path dans le fichier de conf ncftp. En faites je match le mot clé path depuis mon script pour que cela fonctionne comme cela :

        path='grep '^path' $CONFDIR/${conf}.ncftp | cut -d' ' -f2'


        Désolé mais cela fait un bail que j'avais fait cela donc je ne m'en souvenait plus.

        Donc pour time out c'est idem je vais matcher et ce sera ok
        0
        1. Contributeur
          Tu me diras que malgré ça j'ai du mal à comprendre comment tu peux passer tout ça avec une seule ligne de commandes ;-\

          Normalement les options n'acceptent qu'un paramètre (-f fichier ou -t xx), donc je n'arrive pas à concevoir que tu puisses passer plusieurs fichiers à l'option -f, sans compter que comme le path est inclus dans le fichier, comment tu peux t'en sortir avec ton grep ;-\
          0
      2. Euh non dans un script bash tu peux passer a ncftpput autant d'options que tu veux, c'est ce que l'on fait et cela fonctionne très bien depuis des années.
        Pour ce qui est du path, je penses que tu confond entre le path ou se trouve le fichier de conf et le mot clé path qui correspond au path du FTP.

        Par exemple cette ligne fonctionne parfaitement dans notre script bash:

        ncftpput -d ${TMP}/${conf}_ncftp.log -t 85 -z -f $CONFDIR/${conf}.ncftp $path $zip


        Bonne journée.

        L'accès au savoir est la première liberté que chaque homme devrait avoir.
        0
        1. Contributeur
          Mais ta commande est lancée dans une boucle alors ???
          0
      3. Effectivement ça boucle sur chaque fichier client.
        0
        1. Contributeur
          Ben voilà que tout s'éclaire ;-))

          A ce moment là tu peux donc faire un test "case ... esac" en fonction du client dans ta boucle et fixer le timeout ;-))
          0