Mon crontab marche pô ?!

Forum d'assistance et d'échange sur l'installation, la configuration, et l'utilisation des système Linux et BSD. Vous pouvez y poster vos questions concernant ces systèmes d'exploitation en faisant l'effort préalable de rechercher dans le forum, dans les manuels et les documentations que la réponse n'y figure pas.

Modérateur: modos Ixus

Messagepar lembal » 21 Nov 2003 14:40

Bonjour, <BR> <BR>Dans la série : j'apprends à administrer mon Linux... La dernière en date, c'est Cron ! <BR>Alors je souhaite lancer une commande de suppression de profils errants sur mon CPD Samba de manière automatique tous les jours à 7h30. Voilà le contenu de mon crontab : <BR> <BR>SHELL=/bin/bash <BR>PATH=/sbin:/bin:/usr/sbin:/usr/bin <BR>MAILTO=root <BR>HOME=/ <BR> <BR># run-parts <BR>01 * * * * root nice -n 19 run-parts /etc/cron.hourly <BR>02 4 * * * root nice -n 19 run-parts /etc/cron.daily <BR>22 4 * * 0 root nice -n 19 run-parts /etc/cron.weekly <BR>42 4 1 * * root nice -n 19 run-parts /etc/cron.monthly <BR>30 7 * * * for i in 01 02 03 04 05 06 07 08 09 10 11 12 13 14 ; do rm -rf /home/e08$i/profile/* ; done <BR> <BR>J'ai bien pensé à relancer le service "cron" mais le contenu des répertoires "profile" ne s'effacent pô pour les users e0801,e0802,e0803....e0814. <BR> <BR>Qu'est ce que j'ai mal fait ?! <BR>
lembal
Vice-Amiral
Vice-Amiral
 
Messages: 880
Inscrit le: 13 Jan 2003 01:00
Localisation: Paris

Messagepar orange_smell » 21 Nov 2003 15:21

deux petites choses: <BR>1-tu n'as pas besoin de relancer ton cron pour prendre en compte de nouveaux evenements. <BR>2- Ta ligne de commande marche si elle est pas dans le cron ?
Hiroshima 45.
Tchernobyl 86.
Windows 95, 98, 2000, 2003.........
Avatar de l’utilisateur
orange_smell
Contre-Amiral
Contre-Amiral
 
Messages: 430
Inscrit le: 05 Août 2003 00:00
Localisation: Riyadh - Arabie Saoudite

Messagepar tomtom » 21 Nov 2003 15:38

Il ne faut pas de ligne vide au debut d'un fichier cron aussi... <BR> <BR>Je ne sais pas pourquoi, mais c'est comme ça... <BR> <BR>t.
One hundred thousand lemmings can't be wrong...
Avatar de l’utilisateur
tomtom
Amiral
Amiral
 
Messages: 6035
Inscrit le: 26 Avr 2002 00:00
Localisation: Paris

Messagepar lembal » 21 Nov 2003 15:46

Plutôt que de lancer la commande directement via un script shell...rien à faire !
lembal
Vice-Amiral
Vice-Amiral
 
Messages: 880
Inscrit le: 13 Jan 2003 01:00
Localisation: Paris

Messagepar orange_smell » 21 Nov 2003 15:49

<!-- BBCode Quote Start --><TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD><font size=-2>En réponse à:</font><HR></TD></TR><TR><TD><FONT SIZE=-2><BLOCKQUOTE> Plutôt que de lancer la commande directement via un script shell...rien à faire ! <BR> </BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE><!-- BBCode Quote End --> <BR> <BR>Tu peux ré-expliquer ca ?
Hiroshima 45.
Tchernobyl 86.
Windows 95, 98, 2000, 2003.........
Avatar de l’utilisateur
orange_smell
Contre-Amiral
Contre-Amiral
 
Messages: 430
Inscrit le: 05 Août 2003 00:00
Localisation: Riyadh - Arabie Saoudite

Messagepar lembal » 21 Nov 2003 16:16

Ha moi y en avoir bafouiller ! Oui, ma commande fonctionne en dehors de cron (je m'attendais à une réponse de la sorte !) et je voulais dire que j'ai essayé de mettre ma commande dans un script shell (qui marche lui aussi !) et de lancer ce script shell depuis crontab... toujours marche pô ! <BR> <BR>Question bête : c'est grave si je supprime toutes les lignes qui surplombent la mienne dans le fichier crontab ? Vu que Tom, tu as dit qu'il ne fallait pas de ligne vierge au début du fichier ?!
lembal
Vice-Amiral
Vice-Amiral
 
Messages: 880
Inscrit le: 13 Jan 2003 01:00
Localisation: Paris

Messagepar tomtom » 21 Nov 2003 16:29

Dans la crontab, il y a le lancement de tous les cron.* (daily, monthly etc..) et ceci est necessaire (il y a des taches journalières sur un système ! Va donc voir ce qu'il y a dans ces fichiers <IMG SRC="images/smiles/icon_wink.gif"> ). <BR> <BR>Par contre, c'est ma première ligne de la crontab qui ne doit pas être vide ! Et puis il faut eviter les espaces entre les lignes.... <BR>Par contre, je ne suis pas sur que tu puisses positionner les variables comme tu le fais.... <BR> <BR>Deja, comment edites-tu ta crontab ? avec crontab -e ou directement en vi dessus ? <BR> <BR>Je te conseille la première methode, qui verifie la validité de ton script. <BR> <BR>Je te deconseille de positionner des variables dedans, utilises plutot les chemins absolus ! <BR> <BR>t.
One hundred thousand lemmings can't be wrong...
Avatar de l’utilisateur
tomtom
Amiral
Amiral
 
Messages: 6035
Inscrit le: 26 Avr 2002 00:00
Localisation: Paris

Messagepar tomtom » 21 Nov 2003 16:32

en postant, j'ai compris ton erreur.... <BR> <BR>Tu ne dois pas editer le fichier /etc/crontab qui est positionné par le système, et qui devrait rester tel quel... <BR>Soit tu utilises les cron.* si ils te satisfont, ,soit tu edites à l'aide de crontab -e en root la crontab user de root, ce qui marchera mieux ! <BR> <BR> <BR>t.
One hundred thousand lemmings can't be wrong...
Avatar de l’utilisateur
tomtom
Amiral
Amiral
 
Messages: 6035
Inscrit le: 26 Avr 2002 00:00
Localisation: Paris

Messagepar lembal » 21 Nov 2003 16:38

Oui j'ai utilisé vi pour éditer /etc/crontab... je vais essayer crontab -e, sinon j'utiliserai le cron.dayly qui me convient bien ! Thanx !
lembal
Vice-Amiral
Vice-Amiral
 
Messages: 880
Inscrit le: 13 Jan 2003 01:00
Localisation: Paris

Messagepar tomtom » 21 Nov 2003 17:04

Arf ! <BR>J'ai trouvé pourquoi ca marche pas dans ta crontab système <IMG SRC="images/smiles/icon_smile.gif"> <BR> <BR>La syntaxe de la crontab user (celle que tu as avec crontab -e) est : <BR> <BR>m h M D d command <BR> <BR> <BR>par contre, la crontab systeme (/etc/crontab) demande la specification de l'utilisateur en plus : <BR> <BR>m h M D d user command <BR> <BR> <BR>donc tu avas juste à inserer un "root" avant ta commande pour que ça fonctionne <IMG SRC="images/smiles/icon_wink.gif"> <BR> <BR>Mais de toutes façons, il est plus sur d'utiliser la crontab user, et cela suffit largement d'ailleurs..... <BR> <BR>Mieux, tu pourrais le mettre dans la crontab de chacun des users pour l'effacement de ses fichiers uniquement. <BR> <BR>T.
One hundred thousand lemmings can't be wrong...
Avatar de l’utilisateur
tomtom
Amiral
Amiral
 
Messages: 6035
Inscrit le: 26 Avr 2002 00:00
Localisation: Paris

Messagepar lembal » 21 Nov 2003 17:28

J'ai utilisé le crontab -e (donc utilisateur) et j'ai testé : ça fonctionne ! Je m'arrête donc là... en finissant par une question bête : c'est quoi la différence entre crontab utilisateur et crontab système. Une questio nde droits je suppose ?!
lembal
Vice-Amiral
Vice-Amiral
 
Messages: 880
Inscrit le: 13 Jan 2003 01:00
Localisation: Paris

Messagepar tomtom » 21 Nov 2003 17:36

Ben en fait, oui, la crontab user execute les taches avec le user proprietaire... Alors que la system le fait avec un user que tu specifies (crond est lancé par root, et fait un su vers l'user specifié pour executer les taches). <BR> <BR>En fros, la crontab system est utilisée pour mettre les taches "systeme" alors que la user sert à faire une tache que l'user devrait faire tous les X mais qu'il n'a pas envie de faire. <BR> <BR>Typiquement, j'ai dans ma crontab user un script qui degage tous les temp de mon home dir de temps en temps. <BR>Mais pour faire le menage dans /tmp, ou tout le monde peut ecrire, j'utilise une tache system. <BR>En fait, j'utilise la crontab du user root pour avoir tous les droits. Ce qui revient à peu pres au même. <BR> <BR>L'avantage de pouvoir specifier le user, c'est par exemple pour purger (ou faire tourber) les logs de ton serveur apache, tu vas utiliser le user www-data.... Ceci evite que les scripts n'aient trop de droit, au cas ou ils soient exploitables.... <BR> <BR>Personnellement, je n'utilise quasi jamais la crontab systeme, et trop souvent la user root, mais comme dit l'autre, "c'est mal !" <BR> <BR>t.
One hundred thousand lemmings can't be wrong...
Avatar de l’utilisateur
tomtom
Amiral
Amiral
 
Messages: 6035
Inscrit le: 26 Avr 2002 00:00
Localisation: Paris

Messagepar lembal » 21 Nov 2003 17:42

Alors si j'ai édité la crontab user en root... c'est comme si c'était une crontab système en gros ?! Et ça se lancera quand même sans être loggé.... et "c'est mal" !
lembal
Vice-Amiral
Vice-Amiral
 
Messages: 880
Inscrit le: 13 Jan 2003 01:00
Localisation: Paris

Messagepar tomtom » 21 Nov 2003 17:49

C'est pas vraiment comme une crontab system, puisque tes batchs vont s'executer en root. C'est comme une crontab system ou tu aurais specifié le user root <IMG SRC="images/smiles/icon_wink.gif"> <BR> <BR>Ceci bien sur s'executera même si tu n'es pas loggué. Par contre, si la machine est etteinte à l'heure dite, ca ne tournera pas (ca, c'est l'avantage de anacron sur cron <IMG SRC="images/smiles/icon_wink.gif"> ). <BR> <BR> <BR>"C'est mal", ,oui et non. D'abord, si tu as besoin d'effacer des fichiers appartenant t à différents utilisateurs, tu n'as pas trop le choix (à moins de mettre un script dans chacune de leurs crontabs...). <BR>Ensuite, un danger existe si un utilisateur peut avoir un acces en ecriture au script lancé par exemple, ou si une "race condition" se presente, permettant à un utilisateur d'executer un script arbitraire avec les droits du script qui tourne. Ceci fait partie des failles de securité classique. <BR> <BR>La règle de prudence est "moins il y a dechoses qui tourneen root, mieux c'est ". Mai sparfois on n'a pas le choix. Souvent aussi le risque n'est pas tres grand par rapport à l'emm******** que genere le fait de faire autrement. A toi de voir. <BR> <BR>Je te l'ai dit, je fais toujours ainsi car c'est plus rapide... Mais ce n'est pas forcemment une reference <IMG SRC="images/smiles/icon_wink.gif"> <BR> <BR>t.
One hundred thousand lemmings can't be wrong...
Avatar de l’utilisateur
tomtom
Amiral
Amiral
 
Messages: 6035
Inscrit le: 26 Avr 2002 00:00
Localisation: Paris

Messagepar lembal » 21 Nov 2003 17:54

Ok merci, j'ai tout compris cette fois ! Je ferai un chmod 700 /root/rm.sh pour être tranquille. Et puis mon mot de passe root possède plus de 16 caractères bien barbares sans aucun sens... et pis encore je me logge jamais que sur mon serveur en root, pas sur les machines windows du domaine... et pis enfin aucune de mes machines ne garde en cache les informations des comptes qui se loggent : vive les *.reg !!! <BR> <BR>Danke Viel Mal ! (bouh mon Allemand est très loin...)
lembal
Vice-Amiral
Vice-Amiral
 
Messages: 880
Inscrit le: 13 Jan 2003 01:00
Localisation: Paris


Retour vers Linux et BSD (forum généraliste)

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité