Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1355 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [CRON] script qui ne s'éxecute pas et ne renvoi pas d'output

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

[CRON] script qui ne s'éxecute pas et ne renvoi pas d'output

n°336875
duch
Posté le 09-10-2003 à 18:34:38  profilanswer
 

je suis sur une debian woody.
 
j'ai fait le script suivant :
 

Code :
  1. MAILTO=gregory
  2. checkdate=`date | awk '{print $1}'`
  3. OF=all_databases-$(date +%Y%m%d)
  4. rm -f /var/backups/mysql/$checkdate/*
  5. mysqldump -pl xxxxxx --all-databases | gzip > /var/backups/mysql/$checkdate/$OF.gz


 
(xxxxx = mot de passe)
 
 
celui ci fonctionne parfaitement lorsque je le lance depuis le shell, mais pas depuis cron. De plus je ne reçois aucun mail, comme si il y avait pas d'output (pourtant si il y a une erreur...)
 
mon fichier cron est le suivant :
 

Code :
  1. 15 6 * * * /etc/cron.daily/mysqlbackup


 
 
je ne vois aucune erreur dans syslog (où sont les logs de cron d'ailleurs?)
 
 
 
quelqu'un a une idée?

mood
Publicité
Posté le 09-10-2003 à 18:34:38  profilanswer
 

n°336888
911GT3
en roue libre
Posté le 09-10-2003 à 19:31:34  profilanswer
 

ton script est bien executable :??:

n°337047
duch
Posté le 10-10-2003 à 10:46:18  profilanswer
 

bah si je tape ./mysqlbackup depuis le shell il se fonctionne.
 
autorisations : -rwxr-xr-x
 
 
 
comprends pô

n°337053
Tomate
Posté le 10-10-2003 à 11:02:47  profilanswer
 

essai de le mettre ds cron.daily ;)


---------------
:: Light is Right ::
n°337055
duch
Posté le 10-10-2003 à 11:04:59  profilanswer
 

tu veux dire mettre directement le script dans cron.daily?
je vais essayer ça...
 
 
comment on fait?


Message édité par duch le 10-10-2003 à 11:07:05
n°337067
Tomate
Posté le 10-10-2003 à 11:32:24  profilanswer
 

duch a écrit :

tu veux dire mettre directement le script dans cron.daily?
je vais essayer ça...
 
 
comment on fait?

cp mon_cript /etc/cron.daily ;)
 
il y a aussi la methode /etc/cron.d
tu mets un fichier avec cette ligne :

0-55/5 *        * * *   root    if [ -x /etc/is_ppp_alive.sh  ]; then /bin/bash /etc/is_ppp_alive.sh; fi


 
;)


---------------
:: Light is Right ::
n°337074
duch
Posté le 10-10-2003 à 11:41:24  profilanswer
 

je crois qu'il y a eu comme une confusion.
 
Je ne sais pas pourquoi (la fatigue) mais je n'avais pas compris que tu me disais de copier le fichier mysqlbackup dans le répertoire /etc/cron.daily
 
Je sais pourquoi je n'avais pas compris, il y est déjà :sarcastic: c'est marqué en toute lettre dans mon premier post :
 

Citation :

15 6 * * * /etc/cron.daily/mysqlbackup


 
 
je peux essayer de mettre le chemin en relatif, ça aura le mérite d'être plus court...
 
comme ça ça va? :
 

Code :
  1. 15 6 * * * ./mysqlbackup


 
 
mais ça ne marche pas mieux (je viens d'essayer en le déclenchant à 11:37), tout ce que j'ai dans syslog, c'est ça :
 

Code :
  1. Oct 10 11:37:01 icilalune /USR/SBIN/CRON[3951]: (root) CMD (./mysqlbackup)


Message édité par duch le 10-10-2003 à 11:49:13
n°337075
duch
Posté le 10-10-2003 à 11:44:12  profilanswer
 

J'ai oublié de préciser que j'avais une autre tache planifiée, et que celle ci fonctionnait parfaitement
 
pour info, voici l'autre ligne de mon fichier cron :
 

Code :
  1. 0 6 * * * /usr/lib/cgi-bin/awstats/tools/awstats_updateall.pl now


 
la seule différence c'est que ce n'est pas un script que j'ai écris. :(


Message édité par duch le 10-10-2003 à 11:46:22
n°337080
Dark_Schne​ider
Close the World, Open the Net
Posté le 10-10-2003 à 11:56:59  profilanswer
 

si j'était toi je définirait une variable PATH contenantle path vers mes binaires ou je mettrait le path complet deceux-ci, car cron n'initialise pas PATH


---------------
Mandriva : parce que nous le valons bien ! http://linux-wizard.net/index.php
n°337085
duch
Posté le 10-10-2003 à 12:01:38  profilanswer
 

merci pour cette suggestion Dark_Schneider mais à l'origine, j'ai mis le chemin en absolu ('/etc/cron.daily/mysqlbackup') donc je ne pense pas que cela puisse venir de là. Si?

mood
Publicité
Posté le 10-10-2003 à 12:01:38  profilanswer
 

n°337087
Dark_Schne​ider
Close the World, Open the Net
Posté le 10-10-2003 à 12:04:47  profilanswer
 

tu n'as pas compris, look  
 

Code :
  1. MAILTO=gregory
  2. PATH=/usr/bin:/bin:/sbin:/usr/sbin
  3.   checkdate=`date | awk '{print $1}'`
  4.   OF=all_databases-$(date +%Y%m%d)
  5.  
  6.   rm -f /var/backups/mysql/$checkdate/*  
  7.   mysqldump -pl xxxxxx --all-databases | gzip > /var/backups/mysql/$checkdate/$OF.gz


---------------
Mandriva : parce que nous le valons bien ! http://linux-wizard.net/index.php
n°337089
duch
Posté le 10-10-2003 à 12:07:05  profilanswer
 

Ah ok, j'ai compris, j'essaie ça...
 
marche pô...
 
et je ne reçois toujours pas de mail d'erreur ou de quoi que ce soit de cron
 
 
comprends pô


Message édité par duch le 10-10-2003 à 12:09:49
n°337093
Tomate
Posté le 10-10-2003 à 12:19:45  profilanswer
 

t as essaye en mettant ds /etc/cron.d le fichier ki va bien comme je t ai dis ??
 
car ta ligne 15 6 * * * ./mysqlbackup elle se trouve ds /etc/cron.d ou ds la crontab ?


---------------
:: Light is Right ::
n°337096
duch
Posté le 10-10-2003 à 12:23:14  profilanswer
 

j'ai pas essayé en mettant directement dans cron.d
 
la ligne en question se trouve dans la crontab. J'ai fais un fichier dans le dossier /etc/cron.daily (nommé daily.cron, je sais c'est pas très malin) avec toutes mes lignes et je fais ensuite
 
crontab daily.cron
 
 
ce que je ne comprends pas c'est que manifestement il appelle bien mysqlbackup (cf. syslog) mais il ne se passe rien.

n°337102
Tomate
Posté le 10-10-2003 à 12:50:45  profilanswer
 

duch a écrit :

j'ai pas essayé en mettant directement dans cron.d
 
la ligne en question se trouve dans la crontab. J'ai fais un fichier dans le dossier /etc/cron.daily (nommé daily.cron, je sais c'est pas très malin) avec toutes mes lignes et je fais ensuite
 
crontab daily.cron
 
 
ce que je ne comprends pas c'est que manifestement il appelle bien mysqlbackup (cf. syslog) mais il ne se passe rien.

moi c est pareil sur ma debian, je suis oblige de mettre ds /etc/cron.d car ds la crontab ca marche pas et je sais pas pk [:mrbrelle]


---------------
:: Light is Right ::
n°337107
duch
Posté le 10-10-2003 à 12:54:57  profilanswer
 

ok j'vais essayer ça (un peu plus tard car là j'ai un truc en route)
 
je la mets tel quel la ligne? ou il y a une syntaxe spéciale? (un exemple serait le bienvenu)
 
je vous tiens au courant

n°337108
Tomate
Posté le 10-10-2003 à 12:57:34  profilanswer
 

duch a écrit :

ok j'vais essayer ça (un peu plus tard car là j'ai un truc en route)
 
je la mets tel quel la ligne? ou il y a une syntaxe spéciale? (un exemple serait le bienvenu)
 
je vous tiens au courant

je t ai donne un exemple tout a l heure ;)
 

0-55/5 *        * * *   root    if [ -x /etc/is_ppp_alive.sh  ]; then /bin/bash /etc/is_ppp_alive.sh; fi


 
j ai mis ca ds /etc/cron.d/is_ppp_alive ;)
 
a toi de mettre ce k il fo :D


---------------
:: Light is Right ::
n°337198
duch
Posté le 10-10-2003 à 15:57:50  profilanswer
 

[question stupide]
comment je redémarre cron après avoir ajouter mon fichier dans cron.d?
[/question stupide]

n°337201
mirtouf
Light is right !
Posté le 10-10-2003 à 15:59:12  profilanswer
 

/etc/init.d/cron restart ?


---------------
-~- Libérez Datoune ! -~- Camarade, toi aussi rejoins le FLD pour que la flamme de la Révolution ne s'éteigne pas ! -~- A VENDRE
n°337203
duch
Posté le 10-10-2003 à 16:01:02  profilanswer
 

merci
 
heureusement que j'étais en mode "question stupide" :D
 
 
 
heu... je continu dans ce mode
 
j'ai mis un fichier nommé daily.cron dont le contenu est le suivant :
 

Code :
  1. 53 15 * * * /usr/lib/cgi-bin/awstats/tools/awstats_updateall.pl now
  2. 53 15 * * * /etc/cron.daily/mysqlbackup


 
dans le répertoire /etc/cron.d, puis j'ai rémarré cron, et il ne s'est rien passé. Normal docteur?


Message édité par duch le 10-10-2003 à 16:08:52
n°337204
Tomate
Posté le 10-10-2003 à 16:01:11  profilanswer
 

duch a écrit :

[question stupide]
comment je redémarre cron après avoir ajouter mon fichier dans cron.d?
[/question stupide]

pas besoin de le redemarrer ;)


---------------
:: Light is Right ::
n°337215
duch
Posté le 10-10-2003 à 16:13:11  profilanswer
 

quand je dis qu'il ne s'est rien passé, c'est qu'il n'y aucune mention de cron à cette heure là dans syslog, et les stats du sites n'ont pas été mises à jour (alors que normalement ça ça marche...).

n°337225
bobuse
Posté le 10-10-2003 à 16:22:56  profilanswer
 

bon, je débarque !
 
ton script, il faudrait pas qu'il commence par #!/path/ton_interpreteur, ou alors il faut spécifier sur la ligne d'appel : /path/ton_interpreteur /autre_path/ton_script
 
non ?

n°337227
duch
Posté le 10-10-2003 à 16:25:16  profilanswer
 

j'avais oublié de le mettre, mais il commence bien par  
 
#!/bin/sh

n°337229
bobuse
Posté le 10-10-2003 à 16:26:41  profilanswer
 

tant pis, j'aurai essayé :D

n°337239
Tomate
Posté le 10-10-2003 à 16:33:31  profilanswer
 

duch a écrit :

quand je dis qu'il ne s'est rien passé, c'est qu'il n'y aucune mention de cron à cette heure là dans syslog, et les stats du sites n'ont pas été mises à jour (alors que normalement ça ça marche...).

ca marche tjs pas ??


---------------
:: Light is Right ::
n°337245
kelus
Posté le 10-10-2003 à 16:39:08  profilanswer
 

faut aussi preciser l'utilisateur je crois  
 
donc c'est plutot  
53 15 * * * root /etc/cron.daily/mysqlbackup

n°337250
duch
Posté le 10-10-2003 à 16:48:06  profilanswer
 

non ça ne marche toujours pas (même en spécifian tl'utilisateur),
 
le pire c'est que j'ai un autre script que j'ai fait que voici :
 

Code :
  1. cd /var/spool/spam/
  2. find -name "out.*" ! -name "*.reported" -exec bash -c 'echo "{} :" >> report.txt && cat {} | grep Subject | head -1 >> report.txt && cat {} | grep 'Content analysis details' >> report.txt && mv {} {}.reported' \;
  3. echo "nombre de spams :" >> report.txt
  4. echo ls out.* | grep -c reported >> report.txt
  5. mail -s "filtre anti-spam" gregory@icilalune.com < report.txt
  6. rm report.txt


 
qui fonctionne parfaitement si je l'ajoute à la crontab.
 
On dirais bien que le problème vient de mysqldump. JE vais essayer de l'appeller directement depuis cron...

n°337256
Tomate
Posté le 10-10-2003 à 17:09:49  profilanswer
 

duch a écrit :

non ça ne marche toujours pas (même en spécifian tl'utilisateur),
 
le pire c'est que j'ai un autre script que j'ai fait que voici :
 

Code :
  1. cd /var/spool/spam/
  2. find -name "out.*" ! -name "*.reported" -exec bash -c 'echo "{} :" >> report.txt && cat {} | grep Subject | head -1 >> report.txt && cat {} | grep 'Content analysis details' >> report.txt && mv {} {}.reported' \;
  3. echo "nombre de spams :" >> report.txt
  4. echo ls out.* | grep -c reported >> report.txt
  5. mail -s "filtre anti-spam" gregory@icilalune.com < report.txt
  6. rm report.txt


 
qui fonctionne parfaitement si je l'ajoute à la crontab.
 
On dirais bien que le problème vient de mysqldump. JE vais essayer de l'appeller directement depuis cron...


t as bien mis un fichier ds /etc/cron.d avec juste la ligne ke je t ai donne ??
 
bizarre car moi y a ke comme ca ke ca marche chez moi [:mrbrelle]


---------------
:: Light is Right ::
n°337258
duch
Posté le 10-10-2003 à 17:11:29  profilanswer
 

j'ai bien essayé de mettre un fichier dans cron.d mais pas exactement avec la ligne que tu m'as donnée
 
j'ai mis ça :  
 

Code :
  1. 53 15 * * * /usr/lib/cgi-bin/awstats/tools/awstats_updateall.pl now
  2. 53 15 * * * /etc/cron.daily/mysqlbackup


 
en tout cas je viens d'essayer en appelant directement mysqldump depuis la crontab et ça marche :
 

Code :
  1. 02 17 * * * /usr/bin/mysqldump -pl xxxxxxx --all-databases | gzip > /var/backups/mysql/test.gz


Message édité par duch le 10-10-2003 à 17:12:20
n°337259
Tomate
Posté le 10-10-2003 à 17:15:54  profilanswer
 

duch a écrit :

j'ai bien essayé de mettre un fichier dans cron.d mais pas exactement avec la ligne que tu m'as donnée
 
j'ai mis ça :  
 

Code :
  1. 53 15 * * * /usr/lib/cgi-bin/awstats/tools/awstats_updateall.pl now
  2. 53 15 * * * /etc/cron.daily/mysqlbackup


 
en tout cas je viens d'essayer en appelant directement mysqldump depuis la crontab et ça marche :
 
 

Code :
  1. 02 17 * * * /usr/bin/mysqldump -pl xxxxxxx --all-databases | gzip > /var/backups/mysql/test.gz




donc aye ca marche ?
 
cool :)


---------------
:: Light is Right ::
n°337260
Tomate
Posté le 10-10-2003 à 17:16:28  profilanswer
 

je sais po si tu peux mettre 2 lignes comme ca ds cron.d ;)


---------------
:: Light is Right ::
n°337271
duch
Posté le 10-10-2003 à 18:03:36  profilanswer
 

bon ben on verra la semaine prochaine...

n°337275
Tomate
Posté le 10-10-2003 à 18:05:14  profilanswer
 

duch a écrit :

bon ben on verra la semaine prochaine...

heu c est tous les jours k ils sont lances tes scripts la ;)


---------------
:: Light is Right ::
n°337305
Dark_Schne​ider
Close the World, Open the Net
Posté le 10-10-2003 à 18:49:00  profilanswer
 

dernière fois
 

Code :
  1. MAILTO=gregory
  2. PATH=/usr/bin:/bin:/sbin:/usr/sbin
  3.   checkdate=`/bin/date | /bin/awk '{print $1}'`
  4.   OF=all_databases-$(/bin/date +%Y%m%d)
  5.  
  6.   /bin/rm -f /var/backups/mysql/$checkdate/*  
  7.   /usr/bin/mysqldump -pl xxxxxx --all-databases | /usr/bin/gzip > /var/backups/mysql/$checkdate/$OF.gz


 
je pars du fait quez mysqldump se trouve dans /usr/bin. adapter selon la situation


---------------
Mandriva : parce que nous le valons bien ! http://linux-wizard.net/index.php
n°337306
Tomate
Posté le 10-10-2003 à 18:49:54  profilanswer
 

si ct un pb de script, il aurai un mail de cron ;)


---------------
:: Light is Right ::
n°339037
duch
Posté le 14-10-2003 à 11:40:37  profilanswer
 

Dark_Schneider >
 
j'ai essayé ta méthode, sans succès :(
 
 
tomate77 > ta méthode non plus ne fonctionne pas, j'ai essayé de mettre un fichier avec une seule ligne dans le répertoire /etc/cron.d dont le contenu est le suivant :
 
40 11 * * * /usr/lib/cgi-bin/awstats/tools/awstats_updateall.pl now
 
(et ça normalement ça marche avec la crontab)
 
et il ne le lance pas :(


Message édité par duch le 14-10-2003 à 11:52:57
n°339042
duch
Posté le 14-10-2003 à 11:52:33  profilanswer
 

mais il y a pire...
 
j'avais fait il y a quelque temps le script suivant (que je n'utilise plus maintenant):
 

Code :
  1. cd /var/spool/spam/
  2. find -name "out.*" ! -name "*.reported" -exec bash -c 'echo "{} :" >> report.txt && cat {} | grep Subject | head -1 >> report.txt && cat {} | grep 'Content analysis details' >> report.txt && mv {} {}.reported' \;
  3. echo "nombre de spams :" >> report.txt
  4. echo ls out.* | grep -c reported >> report.txt
  5. mail -s "filtre anti-spam" gregory@icilalune.com < report.txt
  6. rm report.txt


 
 
et bien celui-ci (je viens de réessayer), si je l'appelle depuis la crontab, il marche nickel.
 
va comprendre Charles...
 
 
Je suis maintenant persuadé, qu'il ne s'agit pas d'un problème de path, ni d'un bug dans la gestion de la crontab, mais d'un problème lors de l'appel de mysqldump.
 
problème, si j'appelle mysqldump directement depuis la crontab, il marche. Quelqu'un comprends quelque chose là?


Message édité par duch le 14-10-2003 à 12:01:16
n°339061
Dark_Schne​ider
Close the World, Open the Net
Posté le 14-10-2003 à 12:21:46  profilanswer
 

essaie en enlevantle truc avec les dates, juste le mysqldump .... |  gzip ...


---------------
Mandriva : parce que nous le valons bien ! http://linux-wizard.net/index.php
n°339065
duch
Posté le 14-10-2003 à 12:29:38  profilanswer
 

J'AI TROUVE!!!!!
 
désolé pour le crie de joie.
 
c'est une idée que j'avais eu, mais ça me paraissait trop débile pour être ça.
 
 
Le problème c'est que qd j'utilise la commande "date" dans cron ça renvoie une date au format anglais et avec la première lettre en majuscule, alors que qd j'éxecute le script dans le shell ça me renvoie une date française, donc il ne pouvait pas écrire dans le répertoire correspondant (lun|mar|mer|jeu|ven|sam|dim).
 
 
Ce qui m'amène à d'autres questions :  
 
- pourquoi le format de date dans cron n'est pas le même
- si on ne peut pas le régler, comment forcer le format renvoyé par date.
- bordel de merde pourquoi cron ne renvoit-il pas de mail d'erreur?


Message édité par duch le 14-10-2003 à 12:32:23
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [CRON] script qui ne s'éxecute pas et ne renvoi pas d'output

 

Sujets relatifs
un script pour[linux] problème script shell : exit status
perl/Tk script.[script] connaitre son ip publique
iade pour un pitit script :)[script]lancer directement en arriere plan
[script]reconnection automatiquescript shell sous linux
Simuler la souris et le clavier par un script...Changer les ACLs d'un fichier sous Windows depuis un script Linux
Plus de sujets relatifs à : [CRON] script qui ne s'éxecute pas et ne renvoi pas d'output


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR