script qui ne s'éxecute pas et ne renvoi pas d'output [CRON] - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 10-10-2003 à 10:46:18
bah si je tape ./mysqlbackup depuis le shell il se fonctionne.
autorisations : -rwxr-xr-x
comprends pô
Marsh Posté le 10-10-2003 à 11:02:47
essai de le mettre ds cron.daily
Marsh Posté le 10-10-2003 à 11:04:59
tu veux dire mettre directement le script dans cron.daily?
je vais essayer ça...
comment on fait?
Marsh Posté le 10-10-2003 à 11:32:24
duch a écrit : tu veux dire mettre directement le script dans cron.daily? |
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 |
Marsh Posté le 10-10-2003 à 11:41:24
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à 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 :
|
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 :
|
Marsh Posté le 10-10-2003 à 11:44:12
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 :
|
la seule différence c'est que ce n'est pas un script que j'ai écris.
Marsh Posté le 10-10-2003 à 11:56:59
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
Marsh Posté le 10-10-2003 à 12:01:38
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?
Marsh Posté le 10-10-2003 à 12:04:47
tu n'as pas compris, look
Code :
|
Marsh Posté le 10-10-2003 à 12:07:05
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ô
Marsh Posté le 10-10-2003 à 12:19:45
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 ?
Marsh Posté le 10-10-2003 à 12:23:14
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.
Marsh Posté le 10-10-2003 à 12:50:45
duch a écrit : j'ai pas essayé en mettant directement dans cron.d |
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
Marsh Posté le 10-10-2003 à 12:54:57
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
Marsh Posté le 10-10-2003 à 12:57:34
duch a écrit : ok j'vais essayer ça (un peu plus tard car là j'ai un truc en route) |
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
Marsh Posté le 10-10-2003 à 15:57:50
[question stupide]
comment je redémarre cron après avoir ajouter mon fichier dans cron.d?
[/question stupide]
Marsh Posté le 10-10-2003 à 15:59:12
/etc/init.d/cron restart ?
Marsh Posté le 10-10-2003 à 16:01:02
merci
heureusement que j'étais en mode "question stupide"
heu... je continu dans ce mode
j'ai mis un fichier nommé daily.cron dont le contenu est le suivant :
Code :
|
dans le répertoire /etc/cron.d, puis j'ai rémarré cron, et il ne s'est rien passé. Normal docteur?
Marsh Posté le 10-10-2003 à 16:01:11
duch a écrit : [question stupide] |
pas besoin de le redemarrer
Marsh Posté le 10-10-2003 à 16:13:11
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...).
Marsh Posté le 10-10-2003 à 16:22:56
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 ?
Marsh Posté le 10-10-2003 à 16:25:16
j'avais oublié de le mettre, mais il commence bien par
#!/bin/sh
Marsh Posté le 10-10-2003 à 16:33:31
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 ??
Marsh Posté le 10-10-2003 à 16:39:08
faut aussi preciser l'utilisateur je crois
donc c'est plutot
53 15 * * * root /etc/cron.daily/mysqlbackup
Marsh Posté le 10-10-2003 à 16:48:06
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 :
|
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...
Marsh Posté le 10-10-2003 à 17:09:49
duch a écrit : non ça ne marche toujours pas (même en spécifian tl'utilisateur),
|
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
Marsh Posté le 10-10-2003 à 17:11:29
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 :
|
en tout cas je viens d'essayer en appelant directement mysqldump depuis la crontab et ça marche :
Code :
|
Marsh Posté le 10-10-2003 à 17:15:54
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
|
donc aye ca marche ?
cool
Marsh Posté le 10-10-2003 à 17:16:28
je sais po si tu peux mettre 2 lignes comme ca ds cron.d
Marsh Posté le 10-10-2003 à 18:05:14
duch a écrit : bon ben on verra la semaine prochaine... |
heu c est tous les jours k ils sont lances tes scripts la
Marsh Posté le 10-10-2003 à 18:49:00
dernière fois
Code :
|
je pars du fait quez mysqldump se trouve dans /usr/bin. adapter selon la situation
Marsh Posté le 10-10-2003 à 18:49:54
si ct un pb de script, il aurai un mail de cron
Marsh Posté le 14-10-2003 à 11:40:37
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
Marsh Posté le 14-10-2003 à 11:52:33
mais il y a pire...
j'avais fait il y a quelque temps le script suivant (que je n'utilise plus maintenant):
Code :
|
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à?
Marsh Posté le 14-10-2003 à 12:21:46
essaie en enlevantle truc avec les dates, juste le mysqldump .... | gzip ...
Marsh Posté le 14-10-2003 à 12:29:38
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?
Marsh Posté le 09-10-2003 à 18:34:38
je suis sur une debian woody.
j'ai fait le script suivant :
(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 :
je ne vois aucune erreur dans syslog (où sont les logs de cron d'ailleurs?)
quelqu'un a une idée?