Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/06/2008, 15h12   #1
Candidat au titre de Membre du Club
 
Inscription : mai 2008
Messages : 42
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2008
Messages : 42
Points : 13
Points : 13
Envoyer un message via MSN à Z-fly
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 :
1
2
3
4
5
6
 
#min    heure   jour    mois    num_jour        tache
 
 
*       *       *       *       *               /home/moi/cron.bash
~
Le script cron.bash est :
Code :
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 :
/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
Z-fly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 15h20   #2
Membre expérimenté
 
Avatar de Pilru
 
Homme
Dev ASP.NET/jQuery ; Admin ORACLE
Inscription : septembre 2007
Messages : 418
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 : 418
Points : 531
Points : 531
Dans le script cron.bash, mets le chemin absolu vers perl : /usr/bin/...
Pilru est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 16h27   #3
Candidat au titre de Membre du Club
 
Inscription : mai 2008
Messages : 42
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2008
Messages : 42
Points : 13
Points : 13
Envoyer un message via MSN à Z-fly
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 :
/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 :
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
Z-fly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2008, 10h51   #4
Candidat au titre de Membre du Club
 
Inscription : mai 2008
Messages : 42
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2008
Messages : 42
Points : 13
Points : 13
Envoyer un message via MSN à Z-fly
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 :
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 :
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.
Z-fly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2008, 11h27   #5
Candidat au titre de Membre du Club
 
Inscription : mai 2008
Messages : 42
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2008
Messages : 42
Points : 13
Points : 13
Envoyer un message via MSN à Z-fly
c'est bon j'ai trouvé , il fallait utiliser:
Code :
use lib "/home/moi/lib";

Ca fonctionne nickel maintenant!
Z-fly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2008, 10h45   #6
Candidat au titre de Membre du Club
 
Inscription : mai 2008
Messages : 42
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2008
Messages : 42
Points : 13
Points : 13
Envoyer un message via MSN à Z-fly
Encore une petite question:
Je veux faire executer mon script toutes les 25 minutes.

J'ai donc mis dans mon crontab:
Code :
*/25    *       *       *       *               /home/moi/cron.bash
Mais je constate qu'il s'est executé à ces heures là:
Code :
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 .
Z-fly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2008, 11h04   #7
Membre expérimenté
 
Avatar de Pilru
 
Homme
Dev ASP.NET/jQuery ; Admin ORACLE
Inscription : septembre 2007
Messages : 418
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 : 418
Points : 531
Points : 531
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 :
*/25    *       *       *       *               /home/moi/cron.bash
Mais je constate qu'il s'est executé à ces heures là:
Code :
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.
Pilru est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2008, 11h23   #8
Candidat au titre de Membre du Club
 
Inscription : mai 2008
Messages : 42
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2008
Messages : 42
Points : 13
Points : 13
Envoyer un message via MSN à Z-fly
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?
Z-fly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2008, 15h03   #9
Membre expérimenté
 
Avatar de Pilru
 
Homme
Dev ASP.NET/jQuery ; Admin ORACLE
Inscription : septembre 2007
Messages : 418
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 : 418
Points : 531
Points : 531
Essayes
Code :
*/25    0-23       *       *       *               /home/moi/cron.bash
Mais, je ne suis pas sûr.
Pilru est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h41.


 
 
 
 
Partenaires

Hébergement Web