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

Langage Perl Discussion :

[langage] problème 'system("cd /fileserver")' sous linux


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2002
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2002
    Messages : 18
    Points : 17
    Points
    17
    Par défaut [langage] problème 'system("cd /fileserver")' sous linux
    Voici le code de mon 1er script perl, le but de ce script est de faciliter la création d'un compte utilisateur, d'un dossier et d'un accès à ce fichier via samba sur un serveur de fichier (il me reste à ajouter la partie qui ira mettre à jour le fichier de configuration /etc/samba/smb.conf)

    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
    22
    23
    24
    if ($#ARGV + 1 != 2)
    {       print "Missing parameters...\nfirst : lastname\ntwice : firstname\n";
            exit(1);
    }
     
    system("useradd -g DPMS -p $ARGV[1] $ARGV[0]") == 0
            or die "cannot create linux user\n";
     
    system("mkdir /fileserver/$ARGV[0]") == 0
            or die "cannot create user folder\n";
     
    system("cd /fileserver") == 0
            or die "cannot access /fileserver\n";
     
    system("chown $ARGV[0] $ARGV[0]") == 0
            or die "cannot change onwer of folder\n";
     
    system("smbpasswd -a $ARGV[0] $ARGV[1]") == 0
            or die "cannot create samba user\n";
     
    system("cd /home/olivier") == 0
            or die "cannot access /home/olivier\n";
     
    exit(0);
    lorque le script veut executer la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    system("cd /fileserver") == 0
         or die "cannot access /fileserver\n";
    j'ai le message d'erreur suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Can't exec "cd": Aucun fichier ou répertoire de ce type at /home/olivier/create_account.pl line 15.
    cannot access /fileserver
    le dossier /fileserver existe car la ligne suivante s'execute sans problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    system("mkdir /fileserver/$ARGV[0]") == 0
            or die "cannot create user folder\n";
    remarque : le dossier '/fileserver' existe avant le lancement du script

    je developpe mon script sous linux Red Hat 9.0

    Merci d'avance pour votre coup de main !

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 22
    Points : 26
    Points
    26
    Par défaut
    Attention system fait un fork avant de la lancer ta cmd (cad le cd ne s'effectue pas dans ton script perl)

    Sinon pour moi le pb ne viens pas de /fileserver mais de cd :
    Can't exec "cd"

  3. #3
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Et pourquoi pas utiliser la fonction : Elle est la pour ça.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  4. #4
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Oui, effectivement, d'ailleurs seul smbpasswd et useradd ne sont pas des fonctions perl... Autant utiliser les fonctions intégrées dans le langage quand on peut, c'est plus rapide !

    --
    Jedaï

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2002
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2002
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    Merci pour votre cout de main et les quelques tuyaux !!!

  6. #6
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 573
    Points : 2 016
    Points
    2 016
    Par défaut
    et c'est valable aussi pour ton mkdir qui existe également en tant que fonction sous Perl

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. system et redirection sortie standard sous linux
    Par Choupinou dans le forum Linux
    Réponses: 14
    Dernier message: 11/01/2007, 23h25
  2. [langage] Probleme avec commande system et code
    Par Ludo167 dans le forum Langage
    Réponses: 3
    Dernier message: 14/07/2004, 12h01
  3. [langage] script perl cmd system
    Par kacedda dans le forum Langage
    Réponses: 4
    Dernier message: 02/05/2003, 09h45
  4. [langage] executer un .exe (system())
    Par nonolepetitmalin dans le forum Langage
    Réponses: 2
    Dernier message: 14/02/2003, 14h10

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