#1 Le 22/06/2009, à 10:01
- atroxs
probleme avec cron
Bonjours,
J'aimerai exécuter un script avec cron mais je n'arrive pas a le faire marché.
Dans la crontab dans /etc je tape:
53 9 * * * root /home/svgbar/svg.sh >/tmp/test.log
Mon script est bien où je l'indique mais je ne vois aucune exécution et aucun résultats appart le fait que le fichier
/tmp/test.log soit créé.
Je n'ai pas l'habitude d'utiliser ce démon alors je ne c'est pas quoi faire aider moi svp .
#2 Le 22/06/2009, à 11:19
- Peck
Re : probleme avec cron
Ici tu indique d'exécuter le fiecher à 9h53 tous les jours par root.
Mais quelle crontab édite tu et comment fais-tu ?
Est-ce que le démon cron est bien lancé ?
Hors ligne
#3 Le 22/06/2009, à 11:21
- seb0uil
Re : probleme avec cron
Salut,
Que fait ton script ?
As tu bien pensé à charger les variables d'environnement au debut de celui-ci (part défaut, les scripts lancés par cron ne connaissent pas le PATH par exemple ...)
Hors ligne
#4 Le 22/06/2009, à 11:31
- atroxs
Re : probleme avec cron
j'edite celle qui est dans /etc
je ne sais pas s'il est lancé ni comment faire
et je ne savais pas qu'il fallais mettre une variable PATH
C 'est la 1ere fois que je veux utiliser ce démon donc je m'y connais pas trop
#5 Le 22/06/2009, à 11:34
- seb0uil
Re : probleme avec cron
Ben quand tu lances ton script en ligne de commande, tu as déjà pas mal de chose de connu par ton shell : toutes les variables d'environnements..
Quand tu lances le même script avec cron, ces variables ne sont pas connu. Il faut donc soit les initialiser, soit faire attention à ne pas les utiliser..
Hors ligne
#6 Le 22/06/2009, à 11:35
- atroxs
Re : probleme avec cron
comment on les initialise?
#7 Le 22/06/2009, à 11:44
- seb0uil
Re : probleme avec cron
tu peux simplement faire par exemple un
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
au début de ton script.
ptit edit :
Peux tu nous mettre ton script s'il n'est pas trop long ... ?
Dernière modification par seb0uil (Le 22/06/2009, à 11:47)
Hors ligne
#8 Le 22/06/2009, à 11:49
- atroxs
Re : probleme avec cron
Comment on sait si sa a marché?
parce que le script ne sait pas executer
#9 Le 22/06/2009, à 11:50
- atroxs
Re : probleme avec cron
#!/bin/bash
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
#**************************************************IMPORTATION DES IP ET DES NOMS D'UTILISATEURS*******************************************************
for i in `cat '/media/C/PROGRAM FILES/EasyPHP 3.0/www/stage/IP.txt'`;
do
for j in `cat '/media/C/PROGRAM FILES/EasyPHP 3.0/www/stage/NomUtilisateur.txt'`;
do
#**************************************************CREATION DES REPERTOIRES DE MONTAGE*******************************************************************
mkdir /tmp/home
mkdir /tmp/notes
#**************************************************MONTAGE DU FICHIER PARTAGÉ**************************************************************************
smbmount //$i/$j/ /tmp/home -o username=svgbar,password=******
smbmount //$i/notes/ /tmp/notes -o username=svgbar,password=******
#**************************************************TEST D'EXISTANCE DU REPERTOIR DU CLIENT*************************************************************
if [ -d /home/$USER/svg/$j ];
#**************************************************SI LE FICHIER EXISTE********************************************************************************
then
#**************************************************ROULEMENT DES VERSIONS SAUVEGARDES ET SUPPRESSION DE LA PLUS VIEILLE********************************
if [ -d /home/$USER/svg/$j/svg.9 ];
then
rm -r -d /home/$USER/svg/$j/svg.9
mv /home/$USER/svg/$j/svg.8 /home/$USER/svg/$j/svg.9
mv /home/$USER/svg/$j/svg.7 /home/$USER/svg/$j/svg.8
mv /home/$USER/svg/$j/svg.6 /home/$USER/svg/$j/svg.7
mv /home/$USER/svg/$j/svg.5 /home/$USER/svg/$j/svg.6
mv /home/$USER/svg/$j/svg.4 /home/$USER/svg/$j/svg.5
mv /home/$USER/svg/$j/svg.3 /home/$USER/svg/$j/svg.4
mv /home/$USER/svg/$j/svg.2 /home/$USER/svg/$j/svg.3
mv /home/$USER/svg/$j/svg.1 /home/$USER/svg/$j/svg.2
mv /home/$USER/svg/$j/svg.0 /home/$USER/svg/$j/svg.1
fi
else
#**************************************************SI LE FICHIER N'EXISTE PAS**************************************************************************
#**************************************************CREATION DES REPERTOIRES DE SAUVEGARDE DU CLIENT****************************************************
mkdir /home/$USER/svg/$j
mkdir /home/$USER/svg/$j/svg.0
mkdir /home/$USER/svg/$j/svg.1
mkdir /home/$USER/svg/$j/svg.2
mkdir /home/$USER/svg/$j/svg.3
mkdir /home/$USER/svg/$j/svg.4
mkdir /home/$USER/svg/$j/svg.5
mkdir /home/$USER/svg/$j/svg.6
mkdir /home/$USER/svg/$j/svg.7
mkdir /home/$USER/svg/$j/svg.8
mkdir /home/$USER/svg/$j/svg.9
fi
#**************************************************SAUVEGARDE******************************************************************************************
cp -pr /tmp/home /home/$USER/svg/$j/svg.0
cp -pr /tmp/notes /home/$USER/svg/$j/svg.0
#*************************************************DEMONTAGE DU FICHIER PARTAGE ET SUPRESSION DU REPERTOIR DE MONTAGE***********************************
smbumount /tmp/home
smbumount /tmp/notes
done
done
#*************************************************FIN**************************************************************************************************
exit 0
Dernière modification par ljere (Le 22/06/2009, à 14:36)
#10 Le 22/06/2009, à 11:50
- atroxs
Re : probleme avec cron
C'est un script de sauvegarde
#11 Le 22/06/2009, à 11:57
- seb0uil
Re : probleme avec cron
/!\ Evites peut être de laisser trainer les mdp dans le forum ...
Autrement, tu utilises $USER mais tu ne l'initialises pas...
de même tu utilises smbmount et smbumount, vérifies qu'ils sont dans le PATH positionné en début de script, tu peux utiliser la commande
which smbmount
pour voir ou il se trouve sur ton disque (je peux pas essayer, il ne sont pas installé chez moi)
Pour cp, mkdir, mv ils sont normallement dans /bin, donc pas de pb
Hors ligne
#12 Le 22/06/2009, à 13:07
- Peck
Re : probleme avec cron
Editer la crontab dans /etc n'est pas forcément la meilleure façon de faire, mais c'est sensé marcher.
Il faut avant tout vérifier que le programme est lancé. Pour cela ajoute un /bin/touch /root/truc au début de ton script. S'il est lancé tu peux effectivement regarder les problèmes de variables d'environnement. Sinon il faudra regarder du coté du lancement par cron.
Hors ligne
#13 Le 22/06/2009, à 13:37
- atroxs
Re : probleme avec cron
Je mé koi a la place de truc?
#15 Le 22/06/2009, à 13:43
- atroxs
Re : probleme avec cron
et je mé ou ton chemin?
dsl je sait rien sur la variable PATH
#16 Le 22/06/2009, à 13:54
- seb0uil
Re : probleme avec cron
Bon, dans l'ordre :
- Il faut etre sur que le script est lancé par cron :
-> Au debut de ton script (donc après le #! /bin/sh) tu mets le /bin/touch /root/truc
-> tu fais un ls -l /root/truc avant, il ne doit pas il y avoir de fichier, si c'est le cas, il faut l'effacer (rm /root/truc)
-> tu mets ton script dans cron, tu attends qu'il se lance.
-> Tu vérifies si le fichier /root/truc existe : Oui, le script a tourné en cron; non il n'a pas tourné dans le cron
Hors ligne
#17 Le 22/06/2009, à 14:03
- atroxs
Re : probleme avec cron
le fichier existe mais rien ne sait passé.
#18 Le 22/06/2009, à 14:09
- seb0uil
Re : probleme avec cron
ok, donc le script est lancé..
essaies ensuite d'y aller par étape, par exemple place avant
mkdir /tmp/home
mkdir /tmp/notes
un echo $i ; $j >> tmp/cron.log
et un echo `which smbmount` >> tmp/cron.log
et regarde dans le fichier /tmp/cron.log ce qu'il y a ensuite
Hors ligne
#19 Le 22/06/2009, à 14:25
- atroxs
Re : probleme avec cron
Sa me dis que cron.log n'existe pas dans tmp
je le créé?
#20 Le 22/06/2009, à 14:28
- Peck
Re : probleme avec cron
Tant qu'à faire des logs, puisque le script est lancé, une petite ligne qui permet de voir rapidement s'il y a un problème de variable :
env > /root/truc
Et tu lis le contenu de /root/truc
Après je parie effectivement sur un problème de PATH pour les commandes smb
Hors ligne
#21 Le 22/06/2009, à 14:35
- atroxs
Re : probleme avec cron
Dans /tmp/cron.log j'ai:
/usr/bin/smbmount
/usr/bin/smbmount
sinon dans /root/truc j'ai rien
#23 Le 22/06/2009, à 14:39
- atroxs
Re : probleme avec cron
Pour ce qui est des variable i et j , j'ai eu ca sur le terminal:
i55a-182
./svg.sh: line 13: AERIC_RD : commande introuvable
mkdir: ne peut créer le répertoire `/tmp/home': Le fichier existe
mkdir: ne peut créer le répertoire `/tmp/notes': Le fichier existe
AERIC_RD=>$j
i55a-182=>$i
#24 Le 22/06/2009, à 14:54
- atroxs
Re : probleme avec cron
c'est bon j'ai reglé le probleme des variables i et j elles apparaisse de le cron.log
#25 Le 22/06/2009, à 16:04
- atroxs
Re : probleme avec cron
mais j'arrive toujours pas a faire marcher le script