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] Problème récupération de chaîne


Sujet :

Linux

  1. #21
    Membre régulier Avatar de loopback
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 170
    Points : 113
    Points
    113
    Par défaut
    je te remercie encore pour tes algo bien utiles
    ça marche bien et c exactement ce qu'il fallait

    mais pour le dernier pourquoi avoir mi 2 fois ';;' à la ligne 'echo "Le login '$user' est interdit"' ?

  2. #22
    Membre régulier Avatar de loopback
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 170
    Points : 113
    Points
    113
    Par défaut
    Encore une petite question si c'est pas trop abuser de ton temps.

    A la fin du script il envoi les données dans une table mysql, je voudrais qu'il affiche une erreur si la connexion à échouée, comment faire ça ?

    Voici la ligne de connexion:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ### Insertion dans la table ftpd de la bd
    	echo "INSERT INTO ftpd (User, status, Password, Uid, Gid, Dir, ULBandwidth, DLBandwidth, comment, ipaccess, QuotaSize, QuotaFiles, ULRatio, DLRatio) VALUES ('$user', '$stat', MD5('$pass'), '$uid', '$gid', '$dir', '$ul', '$dl', '$cm', '$ip', '$quota', '$files', '$ulr', '$dlr');" |$sql -A -u$userdb -h$host -p$passdb -D$db
    J'ai essayer ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    echo "INSERT INTO ftpd (User, status, Password, Uid, Gid, Dir, ULBandwidth, DLBandwidth, comment, ipaccess, QuotaSize, QuotaFiles, ULRatio, DLRatio) VALUES ('$user', '$stat', MD5('$pass'), '$uid', '$gid', '$dir', '$ul', '$dl', '$cm', '$ip', '$quota', '$files', '$ulr', '$dlr');" |$sql -A -u$userdb -h$host -p$passdb -D$db
    if  [ $? -ne 0 ]; then
    	echo "Error database"
    fi
    ça marche, mais il me met aussi l'erreur mysql de type:
    ERROR 1062 (23000) at line 1: Duplicate entry 'toto' for key 1
    qui correspond au champ utilisateur de la table qui existe déjà dans la base.

    Le but, c'est qu'il ne m'affiche que "Error database" et non pas l'erreur mysql.

    Un autre truc aussi c'est qu'au début du script il vérifie si l'utilisateur existe dans Le fichier /etc/passwd et il vérifie aussi si l'utilisateur est interdit ou pas.
    Je voudrais aussi qu'il vérifie si l'utilisateur existe dans la base de donnée.

    Une fois les deux conditions remplie il doit donc vérifier si l'utilisateur existe déjà dans la BD mysql.

    Alors j'ai fait ceci:
    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
    usql=`echo "SELECT * FROM ftpd WHERE User='$user'";|$sql -A -u$userdb -h$host -p$passdb -D$db`
    	while true
    do
         echo -n "Ajoutez un login FTP (ctrl+c pour arrêter) : "
         read user
     
         # On considère que l'user est bon et on cherche un mauvais
         ok="ok"
     
         for bad in root daemon www-data bin sys sync games man lp mail news uucp proxy backup list irc gnats nobody Debian-exim statd identd sshd ntp ftp webmaster $usql # On peut en mettre autant qu'on veut
         do
              if test "$user" = "$bad"
              then
                   # On a trouvé un user mauvais - On efface le flag
                   unset ok
                   # Plus la peine de vérifier les autres
                   break
              fi
          done
    Marche pas.

  3. #23
    Membre régulier Avatar de loopback
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 170
    Points : 113
    Points
    113
    Par défaut
    Bon voilà ceci semble marcher:
    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
    20
    21
    while true
    do
         echo -n "Ajoutez un login FTP (ctrl+c pour arrêter) : "
         read user
     
    # On sélection le champ de l'utilisateur dans la table
    usql=`echo "SELECT * FROM ftpd WHERE User='$user';"| $connect`
     
         # On considère que l'user est bon et on cherche un mauvais
         ok="ok"
     
         for bad in root daemon www-data bin sys sync games man lp mail news uucp proxy backup list irc gnats nobody Debian-exim statd identd sshd ntp ftp webmaster $usql # On peut en mettre autant qu'on veut
         do
              if test "$user" = "$bad"
              then
                   # On a trouvé un user mauvais - On efface le flag
                   unset ok
                   # Plus la peine de vérifier les autres
                   break
              fi
          done
    Merci à vous 2 pour toute l'aide apportée au travail.
    @ bientôt

  4. #24
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par loopback Voir le message
    mais pour le dernier pourquoi avoir mi 2 fois ';;' à la ligne 'echo "Le login '$user' est interdit"' ?
    Erreur de copier/coller avec celui du case...esac
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 7
    Dernier message: 14/05/2007, 11h10
  2. [MySQL] Problème récupération de données avec un SELECT DISTINCT
    Par 12_darte_12 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/07/2005, 14h48
  3. problème récupération valeur d'un "div"
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 29/06/2005, 10h04
  4. Problème de type chaîne
    Par champijulie dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 12/05/2005, 20h23
  5. [Débutant] Problème récupération de données
    Par flogreg dans le forum Servlets/JSP
    Réponses: 26
    Dernier message: 20/08/2004, 17h29

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