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

Administration système Discussion :

execution de script par crontab


Sujet :

Administration système

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2008
    Messages : 42
    Points : 29
    Points
    29
    Par défaut execution de script par crontab
    bonjour,

    J'ai un script que je voudrais executer toutes les minutes.
    J'ai donc fait un pour l'éditer de la sorte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #min    heure   jour    mois    num_jour        tache
     
     
    *       *       *       *       *               /home/moi/cron.bash
    ~
    Le script cron.bash est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #!/bin/bash
     
    rep=$(date +%H:%M)
    mkdir /home/moi/$rep
     
    perl /home/moi/snmp-cron.pl>/home/moi/cron.txt
    #echo toto > /home/moi/cron.txt
    Le script bash s'execute bien, car toutes les minutes j'ai un nouveau repertoire créé comme voulu($rep)

    Cependant mon script perl ne s'execute pas car il me créé bien le fichier cron.txt mais il reste vide !
    Pourtant si j'active la ligne du echo toto, il me créé bien le fichier cron.txt et ecrit bien toto dedans .

    Quand j'execute dans mon shell la même commande, à savoir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /home/moi/snmp-cron.pl>/home/moi/cron.txt
    Cela fonctionne parfaitement: le fichier cron.txt a le contenu voulu!

    Où est la subtilité avec cron?

    Je ne suis pas root si cela peut avoir un rapport.

    Merci beaucoup

  2. #2
    Membre éclairé Avatar de Pilru
    Homme Profil pro
    Dev ASP.NET/jQuery ; Admin ORACLE
    Inscrit en
    Septembre 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev ASP.NET/jQuery ; Admin ORACLE

    Informations forums :
    Inscription : Septembre 2007
    Messages : 491
    Points : 833
    Points
    833
    Par défaut
    Dans le script cron.bash, mets le chemin absolu vers perl : /usr/bin/...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2008
    Messages : 42
    Points : 29
    Points
    29
    Par défaut
    merci bien, j'avais effectivement ce problème, ce qui m'a permis d'en detecter un autre.
    quand j'ai fait dans le terminal:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /usr/bin/perl /home/moi/snmp-cron.pl > /home/moi/cron.txt
    il ne trouvait pas des librairies que j'utiilisais dans mon script, j'ai donc ajouté la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    push(@INC,"/home/moi/lib");
    au tout début de mon script.

    Maintenant en le relançant dans mon shell, cela fonctionne et le fichier cron.txt est correctement rempli.

    Mais avec cron, il laisse toujours un fichier vide, ce qui laisse penser que mon script ne s'execute pas ...

    On avance, on avance

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2008
    Messages : 42
    Points : 29
    Points
    29
    Par défaut
    En regardant mes fichiers logs systèmes, je me suis appercu que l'erreur venait du fait qu'il ne trouvait pas mes librairies.

    Pourtant avant de les inclure je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    push(@INC,"/home/moi/lib");
    Et sans inclure ma librairie et que j'affiche le contenu de @INC, mon repertoire est bien présent à la fin de la liste .

    Avec le je trouve dans le fichier log:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Can't locate var2.pm in @INC (@INC contains: /usr/lib/perl5/5.8.5/i386-linux-thread-multi /usr/lib/perl5/5.8.5 /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.4/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl/5.8.4 /usr/lib/perl5/site_perl/5.8.3 /usr/lib/perl5/site_perl/5.8.2 /usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.4/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl/5.8.4 /usr/lib/perl5/vendor_perl/5.8.3 /usr/lib/perl5/vendor_perl/5.8.2 /usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl .) at /home/moi/snmp-cron.pl line 10.
    BEGIN failed--compilation aborted at /home/moi/snmp-cron.pl line 10.
    Le fichier var2.pm est bien entendu dans le repertoire que j'ai voulu ajoutter avec le push.

    Savez vous pourquuoi il ne reconnait pas le nouveau @INC ?

    En mode console cela fonctionne toujours parfaitement.

    je devrais peut etre poster ceci dans le forum perl.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2008
    Messages : 42
    Points : 29
    Points
    29
    Par défaut
    c'est bon j'ai trouvé , il fallait utiliser:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    use lib "/home/moi/lib";

    Ca fonctionne nickel maintenant!

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2008
    Messages : 42
    Points : 29
    Points
    29
    Par défaut
    Encore une petite question:
    Je veux faire executer mon script toutes les 25 minutes.

    J'ai donc mis dans mon crontab:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    */25    *       *       *       *               /home/moi/cron.bash
    Mais je constate qu'il s'est executé à ces heures là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    00:00, 00:25,  00:50  
    01:00, 01:25,  01:50
    02:00, 02:25,  02:50
    03:00, 03:25,  03:50
    Pourquoi arrivé à 50 il se lance dix minutes apres?

    Par exemple il devrait se lancer à 01:15 pas 01:00 .

  7. #7
    Membre éclairé Avatar de Pilru
    Homme Profil pro
    Dev ASP.NET/jQuery ; Admin ORACLE
    Inscrit en
    Septembre 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev ASP.NET/jQuery ; Admin ORACLE

    Informations forums :
    Inscription : Septembre 2007
    Messages : 491
    Points : 833
    Points
    833
    Par défaut
    Citation Envoyé par Z-fly Voir le message
    Encore une petite question:
    Je veux faire executer mon script toutes les 25 minutes.

    J'ai donc mis dans mon crontab:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    */25    *       *       *       *               /home/moi/cron.bash
    Mais je constate qu'il s'est executé à ces heures là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    00:00, 00:25,  00:50  
    01:00, 01:25,  01:50
    02:00, 02:25,  02:50
    03:00, 03:25,  03:50
    Pourquoi arrivé à 50 il se lance dix minutes apres?

    Par exemple il devrait se lancer à 01:15 pas 01:00 .
    Sans doute parce que la deuxième * indique qu'il faut l'exécuter toute les heures.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2008
    Messages : 42
    Points : 29
    Points
    29
    Par défaut
    Sans doute mais donc comment fait-on pour que ce soit réelement toutes les 25 minutes ?

    Au pire je met à 30 et je suis pas emmerdé, mais juste pour savoir quelqun conait la solution?

  9. #9
    Membre éclairé Avatar de Pilru
    Homme Profil pro
    Dev ASP.NET/jQuery ; Admin ORACLE
    Inscrit en
    Septembre 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev ASP.NET/jQuery ; Admin ORACLE

    Informations forums :
    Inscription : Septembre 2007
    Messages : 491
    Points : 833
    Points
    833
    Par défaut
    Essayes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    */25    0-23       *       *       *               /home/moi/cron.bash
    Mais, je ne suis pas sûr.

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

Discussions similaires

  1. execution de script par snmp
    Par sarrabd dans le forum Réseau
    Réponses: 0
    Dernier message: 02/01/2011, 17h23
  2. [MooTools] Execution de script dans une page ajax généré par mootools
    Par gaet-gaet dans le forum Bibliothèques & Frameworks
    Réponses: 5
    Dernier message: 26/09/2009, 13h28
  3. [MySQL] Executer un script par une seule IP
    Par Dark Jukka dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 14/04/2008, 20h46
  4. Script php exécuté par crontab
    Par Shenron114 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 05/11/2007, 17h54
  5. Comment exécuter .cshrc à partir d'un script sh lancé par crontab
    Par kenavoparis dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 23/08/2007, 14h53

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