Aller au contenu

[RESOLU] Scripts - bug avec CRON


ggbce

Messages recommandés

J'ai 3 scripts que j'ai fait pour les exécuter avec CRON pour faire l'entretien de mon serveur. J'ai réinstallé le serveur la semaine dernière après un crash et depuis ce temps 2 des mes 3 scripts ne foncitonnent plus... et c'est très étrange !!!

Mon script #1 (/scripts/sauvegarde) contient de simple cp, tar, mysqldump, mon script #2 (/scripts/ftpsend) contient encore de simple commande ftp et mon script #3 (/scripts/scanne) une commande pour lancer un scanne antivirus. Tous les 3 scripts ont les même droits: rwxr-xr-x. De plus j'ai créé des lien symbolique vers /bin afin de les ajouter au PATH.

Donc lorsque sur la console dans n'importe dossier avec n'importe quel usager (root en l'occurence) je tape sauvegarde, ftpsend ou scanne ça fonctionne super bien !!!

J'ai ajouté une tâche dans /etc/cron.daily/ pour chacune des commande comme ceci:

x_sauvegarde (qui contient simplement "sauvegarde" comme commande)

y_ftpsend (qui contient "ftpsend")

z_scanne (qui contient "scanne")

Et bien les tâches x_sauvegarde, y_ftpsend ne fonctionnent pas... mais z_scanne fonctionne bien !

Voici ce que journal CRON retourne en mail à root:

/etc/cron.daily/x_sauvegarde:
/usr/bin/run-parts: /etc/cron.daily/x_rapports: cannot execute binary file

/etc/cron.daily/y_ftpsend:
/usr/bin/run-parts: /etc/cron.daily/y_sauvegarde: cannot execute binary file

/etc/cron.daily/z_scanne:
BDC/Linux-Console v7.0 (build 2492) (i386) (Dec 11 2003 13:24:00)
Copyright (C) 1996-2003 SOFTWIN SRL. All rights reserved.

/opt/bdc/Plugins/cevakrnl.rvd ....................................
updated
/opt/bdc/Plugins/cran.ivd ................ updated
/opt/bdc/Plugins/emalware.ivd .........................................
updated
/opt/bdc/Plugins/update.txt  updated
BDC/Linux-Console v7.0 (build 2492) (i386) (Dec 11 2003 13:24:00)
Copyright (C) 1996-2003 SOFTWIN SRL. All rights reserved.

* packed with (PkLite)
* packed with (ExePack 3.69)
* packed with (PkLite)
* packed with (PkLite)
* packed with (ExePack 3.69)
* packed with (PkLite)
* packed with (ExePack 3.69)
* packed with (PkLite)
* packed with (ExePack 3.69)
* packed with (Upx)
* packed with (LzExe)
* packed with (Upx)
* packed with (ASPack 2.11x)
* packed with (Upx)
* packed with (Upx)
* packed with (Upx)
* packed with (Upx)
* packed with (PECompact 2.xx)
* packed with (Upx)
* packed with (Upx)
* packed with (Upx)
* packed with (Upx)
* packed with (CExe)
* packed with (CExe)
* packed with (CExe)
* packed with (CExe)
* packed with (CExe)
* packed with (Upx)
* (dumped from emulator)
* (dumped from emulator)
* packed with (CExe)
* packed with (CExe)
* packed with (Upx 0.71-0.72)


Results:
Folders		   :19549
Files			 :81554
Packed			:361
Infected files	:0
Suspect files	 :0
Warnings		  :0
Disinfected files :0
I/O errors		:188
Files/second	  :15
Scan time		 :01:28:21

Alors je ne comprend pas du tout pourquoi !!!

Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines après...

Je fais un p'tit UP :yes:

J'ai vraiment un problème étange avec CRON et je ne comprend pas pourquoi.

Avez vous une idée ?

Si dans mon dossier /etc/cron.daily j'ajoute un fichier de tâche avec les bons droits et que j'y écrit le fichier scripts a exécuter ./rapports ou que je fais préallablement un lien symbolique de ./rapports dans mon /bin pour exécuter celui-ci ça ne marche pas ....

cannot execute binary file

Pourtant en ligne de commande directement un ou l'autre marche très bien.

Mais avant le formattage ça fonctionnait très bien ! Est-ce qu'il y a qqchose dans CRON (sa config) qui pourrait me bloquer, ou une autre méthode pour exécuter mes scripts qui fonctionnerait ?

Voici sa config dans crontab:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
45 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

et la liste de mes fichiers dans /etc/cron.daily

[root@intranet cron.daily]# ls
total 40
drwxr-xr-x	2 root	 root		 4096 déc  2 13:59 .
drwxr-xr-x   36 root	 root		 4096 déc  2 15:44 ..
lrwxrwxrwx	1 root	 root		   28 nov 15 03:26 00-logwatch -> ../log.d/scripts/logwatch.pl
-rwxr-xr-x	1 root	 root		  276 jun 24  2001 0anacron
-rwxr-xr-x	1 root	 root		   51 avr 15  2002 logrotate
-rwxr-xr-x	1 root	 root		  104 avr 18  2002 rpm
-rwxr-xr-x	1 root	 root		  132 jun 25  2001 slocate.cron
-rwxr-xr-x	1 root	 root		  193 avr 13  2002 tmpwatch
-rwxr-xr-x	1 root	 root		   57 déc  2 13:58 x_rapports
-rwxr-xr-x	1 root	 root		   50 déc  2 13:59 y_sauvegarde
-rwxr-xr-x	1 root	 root		   66 déc  2 13:59 z_scanne

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Et bien après plusieurs recherches j'ai trouvé... mais je ne sais pas pourquoi ???

Si le place mon exécution dans /var/spool/cron/ (crontab -e) ça fonctionne

Si je place mon exécution dans un fichier script dans /etc/cron.daily (ou /etc/cron.weekly, .monthly, ...) ça ne marche pas pour tous les scripts... seulement certains.

Je ne comprends pas pourquoi crontab et les dossiers /etc/cron.??? fonctionnent différement ?

------------------------------

Si quelqu'un sait j'aimerais avoir un éclairage sur ce point.

Merci quand même !

--------------------------------------

C'était dû au fait que les PATH et variables d'environnement ne sont pas chargées pareilles si j'ajoute dans /etc/cron.*

Donc c'est toujours mieux de passer par contab -e pour ajouter une nouvelle tâche, puis au besoin passer la variable directement lors de l'exécution de la tâche. Ex.: 1 * * * * LC_TIME=fr_FR /mondossier/monscript

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...