Forum Linux.général Question d'FTP

Posté par  .
Étiquettes : aucune
0
3
sept.
2004
Bonjour à tous !

Je cherche à faire un script qui me permettrai de savoir si des fichiers ont été uploadés dans répertoire d'un serveur FTP
Si des fichiers sont présents je veux pouvoir les lister et les envoyer par e-mail à une adresse pré-défini.
L'envoi par e-mail ne me pose pas de problème. Mon problème c'est en ligne de commande de lister des fichiers ou de détecter leur absence sur un FTP avec authentification.

Est ce que wget sais faire ça (je suis en train de chercher...) ou mieux vaut-il utiliser un autre programme ?
  • # Mise à jour : Wget

    Posté par  . Évalué à 1.

    A prioris avec wget en utilisant la commande suivante cela fonctionne :
    wget --spider --dont-remore-listing --quiet ftp://login:password@mon_ftp/mon_rep(...)
    je peux récuperer le fichier .listing qui contient les fichiers... reste plus qu'a parser...
    • [^] # Re: Mise à jour : Wget

      Posté par  . Évalué à 2.

      Si tu es prêt à faire un miroir local du contenu de ton serveur FTP, tu peux aussi utiliser mirror (http://www.sunsite.org.uk/packages/mirror/(...)) et parser la sortie.
    • [^] # Re: Mise à jour : Wget

      Posté par  . Évalué à 1.

      Alors voilà le script final qui me permet de faire ce que je cherchais en utilisant wget:

      #!/bin/sh
      #########
      #Paramètres
      #Adresse e-mail pour l'envoi des messages
      CONTACT_EMAIL="foo@bar.com"
      EMAIL_SUBJECT="Nouveau(x) fichier(s) sur le site FTP"
      #Code de connexion au FTP
      LOGIN="anonymous"
      #Mot de passe pour l'acces au FTP
      PASSWORD="test@"
      #IP du serveur FTP
      SERVER_IP="192.168.10.248"
      #Répertoire sur le serveur
      SERVER_DIR="/Upload"
      #Masque des fichier(s) à lister
      FILE_MASK="*"
      #
      #Programmes
      #Wget
      WGET=/usr/bin/wget
      #Options de Wget
      WGET_OPTIONS="--spider -q -nr -P"
      #Mail
      MAIL=/usr/bin/mail
      #Répertoire temporaire de travail
      TEMPDIR=/tmp
      $WGET $WGET_OPTIONS$TEMPDIR "ftp://$LOGIN:$PASSWORD@$SERVER_IP$SERVER_DIR/$FILE_MASK(...)"
      if [ -s $TEMPDIR/.listing ]; then
      cat $TEMPDIR/.listing |`$MAIL -s $EMAIL_SUBJECT $CONTACT_EMAIL`
      rm $TEMPDIR/.listing
      fi

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.