Partage
  • Partager sur Facebook
  • Partager sur Twitter

script ftp sous linux

Sujet résolu
    11 février 2019 à 14:41:31

    Bonjour,

    Voici un script très simple pour récupérer des fichiers sur serveurs ftp, rien de très compliqué...

    ftp -niv 192.168.1.15 <<EOF
                  user login mdp
                  lcd /home/bdd/scripts/nom/ici
                  cd www.xxxxx.xxx.fr/scripts/ici
                  ascii
                  prompt off
                  get mon fichier.csv monfichier.csv
                  close
                  bye
    

    Sauf que aujourd'hui j'ai un soucis.

    Mes fichiers ftp que je dois récupérer 1 fois par jour, on un nom un peu imprévisible: comme ceci:

    Fichier_P_20190206_0915.csv

    Pour le début du nom, pas de soucis, la suite non plus (c'est le jour yyyymmdd) mais l'heure je la connais pas à l'avance. :(

    Est-ce possible de contourner le problème ? Avec les regex peut être ? Mais je sais pas comment les intégrer à une commande ftp, est-ce possible ?. (Je maitrise pas du tout le batch). :waw:

    Quelqu'un a une idée ? :ange:

    Merci :magicien:

    -
    Edité par fafine 11 février 2019 à 14:42:46

    • Partager sur Facebook
    • Partager sur Twitter
      11 février 2019 à 14:54:09

      Salut,

      Pourquoi ne pas utiliser une wildcard si tu veux récupérer tous les fichiers dont les noms commencent par une même chaîne de caractères ?

      • Partager sur Facebook
      • Partager sur Twitter
        11 février 2019 à 14:58:38

        Salut,

        Je veux récupérer seulement 1 fichier par jour et il y a plusieurs fichiers en permanence sur le ftp.

        • Partager sur Facebook
        • Partager sur Twitter
          11 février 2019 à 15:07:58

          salut,

          "récupérer seulement 1 fichier",  celui qui porte la date du jour ?

          • Partager sur Facebook
          • Partager sur Twitter

          Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

            11 février 2019 à 15:10:24

            Oui c'est ça. La seule variable inconnu c'est l'heure (à quelques minutes près).

            Je suis entrain de tester des choses:

            get Fichier_P_20190211_*.csv fichier.csv

            l'étoile c'est l'inconnu...

            Il faudrait une commande pour dire osef de la fin du fichier.

            -
            Edité par fafine 11 février 2019 à 15:15:39

            • Partager sur Facebook
            • Partager sur Twitter
              11 février 2019 à 15:34:08

              c'est ce qu'indique l'astérisque : osef ;)
              • Partager sur Facebook
              • Partager sur Twitter

              Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

                11 février 2019 à 16:05:19

                C'est se que je pensais aussi. Mais à ce niveau, ça ne fonctionne pas.

                C'est compréhensible, c'est une commande qui va chercher un fichier distant, on peut pas lui dire "va me chercher un fichier dont je connais que la moitié du nom".

                Je pense que c'est pas possible se que je veux faire ou pas simplement...

                EDIT: ça fonctionne; La solution est d'utiliser mget ou lieu de get.

                Merci :soleil:

                -
                Edité par fafine 11 février 2019 à 16:07:50

                • Partager sur Facebook
                • Partager sur Twitter
                  11 février 2019 à 16:13:46

                  mget pour télécharger de maint (aka many, i.e. plusieurs) fichiers

                  -
                  Edité par dantonq 11 février 2019 à 19:25:07

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

                    11 février 2019 à 17:02:37

                    oui je sais. Mais les wildcard ne fonctionne pas avec get, seulement avec mget.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      11 février 2019 à 19:24:17

                      ah, oui ! c'est bizarre.
                      ça peut se comprendre, mais ça fait tout bizarre. ;)

                      • Partager sur Facebook
                      • Partager sur Twitter

                      Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

                        11 février 2019 à 20:41:59

                        Tu as essayé d'échapper l'astérisque ? Toutes les commandes ne reconnaissent pas par défaut une wildcard et peuvent interpréter l'astérisque comme un caractère et peuvent nécessiter de l'échapper pour l'interpréter comme une wildcard. C'est par exemple le cas avec dnf dans Fedora.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          11 février 2019 à 21:35:05

                          ftp> ls *texi*
                          200 PORT command successful. Consider using PASV.
                          150 Here comes the directory listing.
                          -rw-r--r--    1 3003     65534       65354 Mar 21  2000 bashref.texi.gz
                          226 Directory send OK.
                          ftp> get \*texi\*
                          local: bashref.texi.gz remote: *texi*
                          200 PORT command successful. Consider using PASV.
                          550 Failed to open file.
                          ftp> get *texi*
                          local: bashref.texi.gz remote: *texi*
                          200 PORT command successful. Consider using PASV.
                          550 Failed to open file.
                          ftp>

                          -
                          Edité par dantonq 11 février 2019 à 21:35:36

                          • Partager sur Facebook
                          • Partager sur Twitter

                          Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

                            11 février 2019 à 21:40:55

                            Merci pour les tests @danstonq, je n'avais pas de serveur ftp sous la main pour tester. C'est étonnant comme comportement, il a l'air de trouver le bon fichier mais n'arrive pas à l'ouvrir.

                            -
                            Edité par Typhlos 11 février 2019 à 21:49:46

                            • Partager sur Facebook
                            • Partager sur Twitter
                              11 février 2019 à 22:00:51

                              $ printf '%s\n' 'machine ftp.gnu.org' 'login anonymous' >/tmp/netrc
                              $ ftp -p -N /tmp/netrc ftp.gnu.org
                              bla...bla..
                              230 Login successful.
                              Remote system type is UNIX.
                              Using binary mode to transfer files.
                              ftp>
                              • Partager sur Facebook
                              • Partager sur Twitter

                              Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

                              script ftp sous linux

                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                              • Editeur
                              • Markdown