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

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Logiciels

  [cron] Ajouter un script au cron.daily

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[cron] Ajouter un script au cron.daily

n°966030
sonic_on_e​cstasy
Never trust a hippie!!
Posté le 18-10-2007 à 16:49:45  profilanswer
 

Salut,
 
Je suis actuellement sur une FC6 et je souhaiterais exécuter un script qui lance un RSYNC tous les jours.
 
J'ai déjà le cron.daily qui s'exécute tous les jours à 4h02. J'aurais donc aimé que mon script se lance à cette horaire.
 
J'ai donc fait un lien symbolique dans le dossier /etc/cron.daily vers mon script et sur le script et sur le lien j'ai fait un chmod 777 pour etre sur...
 
Le problème que j'ai c'est que mon script ne se lance pas... :fou:  
 
Quand je le fais à la main (./script_rsync ) c'est OK; mais pas en automatique.
 
 
quand je fais un vim de /etc/crontab j'ai:

Code :
  1. SHELL=/bin/bash
  2. PATH=/sbin:/bin:/usr/sbin:/usr/bin
  3. MAILTO=root
  4. HOME=/
  5. # run-parts
  6. 01 * * * * root run-parts /etc/cron.hourly
  7. 02 4 * * * root run-parts /etc/cron.daily
  8. 22 4 * * 0 root run-parts /etc/cron.weekly
  9. 42 4 1 * * root run-parts /etc/cron.monthly
  10. ~


 
et pourtant quand je fais un crontab -e (qui si je ne m'abuse devrait me montrer le contenu du cron de mon user (en l'occurence root)) c'est vide...
 
Pourriez vous m'aider?
 
Merci par avance!!


Message édité par sonic_on_ecstasy le 19-10-2007 à 09:38:14
mood
Publicité
Posté le 18-10-2007 à 16:49:45  profilanswer
 

n°966038
Le_Tolier
Hello IT ?
Posté le 18-10-2007 à 16:56:37  profilanswer
 

oula, pour editer une crontab c est :

Code :
  1. crontab -u username -e


et pour la visualiser

Code :
  1. crontab -u username -l
 

dans tout les cas fait un man crontab pour bien comprendre son fonctionnement ;)

Message cité 1 fois
Message édité par Le_Tolier le 18-10-2007 à 16:57:22

---------------
Never f**k with your systems administrator. Why? Because they know what you do with all that free time! |?? | SAVE Jericho !
n°966039
sonic_on_e​cstasy
Never trust a hippie!!
Posté le 18-10-2007 à 16:57:46  profilanswer
 

mais si je suis logguer en root et que je fais un crontab -e je vois pas le crontab de root?
 
EDIT:
 
Je viens de faire un crontab -u root -e bah c'est la meme chose que crontab -e   :(


Message édité par sonic_on_ecstasy le 18-10-2007 à 16:59:23
n°966045
Le_Tolier
Hello IT ?
Posté le 18-10-2007 à 17:03:07  profilanswer
 

bah oui c'est normale :) je vois pas ou est ton prob ?  
tu as plus qu'a rajouter la ligne qui va bien ds ta crontab vu que maintenant tu connais la commande pour editer une crontab


---------------
Never f**k with your systems administrator. Why? Because they know what you do with all that free time! |?? | SAVE Jericho !
n°966049
sonic_on_e​cstasy
Never trust a hippie!!
Posté le 18-10-2007 à 17:05:34  profilanswer
 

en fait la question que je me pose c'est pourquoi est ce que qd je rajoute mon script dans le cron.daily ca me le lance pas tous les jours à 4h du matin?
 
faut absolument le faire par le crontab?

n°966058
Le_Tolier
Hello IT ?
Posté le 18-10-2007 à 17:15:28  profilanswer
 

j'ai pas bien compris ta manip, qui m'a l'air pas du tout correct poru cronner un script.
La bonne demarcche c'est d'éditer la crontab du user voulue avec le crontab -e puis de remplir cette crontable avec la syntaxe qui va bien :

Citation :


#Cron ntpdate
00      06      *       *       1                                       /usr/sbin/ntpdate 212.97.63.99 >>/var/log/syslog 2>&1

 

#Cron pour le backup des bdd
00      03      *       *       1-7     /root/scripts/backup_daily.bash  >>/var/log/backup.log 2>&1

 


 

dans le présent le 1er jour de chaque semaine à 6h00 du mat ntpdate est lancé.
2eme ligne chaque de la semaine à 3h00 (03h00 AM) un script de backup est lancé.
Mais encore fois regarde le man crontab et tu verras tu comprendras bcp mieux


Message édité par Le_Tolier le 18-10-2007 à 17:17:23

---------------
Never f**k with your systems administrator. Why? Because they know what you do with all that free time! |?? | SAVE Jericho !
n°966070
sonic_on_e​cstasy
Never trust a hippie!!
Posté le 18-10-2007 à 17:30:57  profilanswer
 

très bien j'ai rajouté dans ma crontab:
 
00  04  *  *  *  /usr/local/bin/script_rsync
 
 
donc tous les jours à 4h j'ai mon script qui se lance...enfin théoriquement!! :)
 
pour essayer de ré expliquer ma méthode, j'avais rajouter dans le dossier cron.daily mon script en espérant qu'il se lance avec le reste du cron.daily!
 
Merci pour ton aide en tout cas.
 
@+

n°966079
Le_Tolier
Hello IT ?
Posté le 18-10-2007 à 17:57:39  profilanswer
 

sonic_on_ecstasy a écrit :

très bien j'ai rajouté dans ma crontab:
 
00  04  *  *  *  /usr/local/bin/script_rsync
 
 
donc tous les jours à 4h j'ai mon script qui se lance...enfin théoriquement!! :)
 
pour essayer de ré expliquer ma méthode, j'avais rajouter dans le dossier cron.daily mon script en espérant qu'il se lance avec le reste du cron.daily!
 
Merci pour ton aide en tout cas.
 
@+


 
normalement ca ce lanceras il y a pas de souci, si ton script est bien fait car quand il est lancé via cron c'est un environnemnt différent de celui de root qui est utilisé. Tu devrais aussi rediriger la STOUT et STERR car sinon tu risque de te faire pourrir par mail si jamais il y a des erreurs.


---------------
Never f**k with your systems administrator. Why? Because they know what you do with all that free time! |?? | SAVE Jericho !
n°966080
sonic_on_e​cstasy
Never trust a hippie!!
Posté le 18-10-2007 à 18:03:08  profilanswer
 

Le_Tolier a écrit :


Tu devrais aussi rediriger la STOUT et STERR car sinon tu risque de te faire pourrir par mail si jamais il y a des erreurs.


 
Ok jsuis d'accord...mais comment je dois faire ça?? lol (tu viens de me tuer en 2 mots...  :heink:

n°966083
o'gure
Modérateur
Multi grognon de B_L
Posté le 18-10-2007 à 18:11:42  profilanswer
 

Le_Tolier a écrit :

Tu devrais aussi rediriger la STOUT et STERR car sinon tu risque de te faire pourrir par mail si jamais il y a des erreurs.


Plutot configuré la variable MAILTO à rien du tout pour qu'il n'envoit aucun mail(cf man 5 crontab).

 

sinon pour les redirections cf le man de ton shell. Il s'agit de le faire avec des > et des 2&>  vers /dev/null par exemple


Message édité par o'gure le 18-10-2007 à 18:19:47

---------------
Relax. Take a deep breath !
mood
Publicité
Posté le 18-10-2007 à 18:11:42  profilanswer
 

n°966234
Taz
bisounours-codeur
Posté le 18-10-2007 à 22:51:05  profilanswer
 

@daily

n°966340
sonic_on_e​cstasy
Never trust a hippie!!
Posté le 19-10-2007 à 09:37:58  profilanswer
 

dernier problème et puis j'arrête...vu que c'est une sauvegarde (un RSYNC), j'aimerai avoir des logs...donc dans mon script j'ai mis:
 

Code :
  1. #!/bin/bash
  2. #
  3. #
  4. LOG=/var/log/rsync.log
  5. SRC=/home/usrprf/
  6. DEST=NASF:/home/rsync/SERV2000
  7. echo "" >> $LOG
  8. echo "------------------------------------------------" >> $LOG
  9. date +"!!Rsync donnees utilisateurs!!  %d-%m-%Y %H:%M" >> $LOG
  10. echo "" >> $LOG
  11. rsync -avc --delete $SRC $DEST >> $LOG
  12. echo "" >> $LOG
  13. echo "------------------------------------------------" >> $LOG
  14. date +"!!Fin du script!!  %d-%m-%Y %H:%M" >> $LOG
  15. echo "------------------------------------------------" >> $LOG
  16. echo "" >> $LOG


 
donc dans /var/log/rsync.log, ça m'écris à chaque fois date et heure de début et de fin et toutes les modifs qui sont faites.
 
Quand je le lance à la main ça marche, et quand je le fais via cron bah rien dans ce fichier de log...
 
ou est ce que je peux trouver des logs de ma sauvegarde?
 
dans /var/log/ j'ai rien (les logs cron, cron.1 cron.2 cron.3 ne correspondent pas en date...) mon rsync.log que je mets dans mon script marche pas... et dans /var/spool/mail/root j'ai rien a ce sujet non plus...donc je peux pas savoir si tout est ok... :(  
 
merci pour votre aide!!

n°966593
sonic_on_e​cstasy
Never trust a hippie!!
Posté le 19-10-2007 à 16:33:45  profilanswer
 

Ptit UP pour la week end...

n°1009145
sonic_on_e​cstasy
Never trust a hippie!!
Posté le 07-02-2008 à 15:58:34  profilanswer
 

Un ptit UP pour déterrer le topic...
 
Jsuis toujours là dessus, sur plusieurs machines différentes et ça marche pas!
 
Je ré expose mon problème peut être plus clairement qu'au début...
 
J'ai un script de backup dans /usr/local/bin qui s'appelle script_rsync et qui est bien exécutable...  (si je fais ./script_rsync ça fonctionne.
 
 
Dans la crontab de root j'ai rajouté la ligne suivante: (avec un crontab -e)
 

10   04    * * * /usr/local/bin/script_rsync

 
Pourtant mon script ne se lance pas à 4h10 du matin tous les soirs....
 
 
 
 
Au passage je remets mon script:
 

Code :
  1. #!/bin/bash
  2. #
  3. #
  4. LOG=/var/log/rsync.log
  5. SRC=/home/DocUsers/
  6. SRC2=/home/Partage/
  7. DEST=NASF:/home/rsync/SERV0500/Data/
  8. DEST2=NASF:/home/rsync/SERV0500/Partage/
  9. echo "" >> $LOG
  10. echo "------------------------------------------------" >> $LOG
  11. date +"!!Rsync donnees utilisateurs!!  %d-%m-%Y %H:%M" >> $LOG
  12. echo "" >> $LOG
  13. rsync -avc --delete $SRC $DEST >> $LOG
  14. echo "" >> $LOG
  15. echo "------------------------------------------------" >> $LOG
  16. date +"!!Fin rsync DATA!!  %d-%m-%Y %H:%M" >> $LOG
  17. echo "------------------------------------------------" >> $LOG
  18. echo "" >> $LOG
  19. echo "" >> $LOG
  20. echo "------------------------------------------------" >> $LOG
  21. date +"!!Rsync Partage!!  %d-%m-%Y %H:%M" >> $LOG
  22. echo "" >> $LOG
  23. rsync -avc --delete $SRC2 $DEST2 >> $LOG
  24. echo "" >> $LOG
  25. echo "------------------------------------------------" >> $LOG
  26. date +"!!Fin rsync Partage      !!  %d-%m-%Y %H:%M" >> $LOG
  27. echo "------------------------------------------------" >> $LOG
  28. echo "" >> $LOG


 
 
 
Si quelqu'un avait une ptite idée... c'est surement un ptit truc de rien du tout qui me bloque mais j'arrive pas à tomber dessus...
 
 
Merci pour votre aide...


Message édité par sonic_on_ecstasy le 07-02-2008 à 16:01:15
n°1009261
fighting_f​alcon
Posté le 08-02-2008 à 08:29:44  profilanswer
 

Bon alors, déjà il va falloir reprendre quelques trucs ...
 
1/

Le_Tolier a écrit :

oula, pour editer une crontab c est :

Code :
  1. crontab -u username -e


et pour la visualiser

Code :
  1. crontab -u username -l




 
l'option -u permet de préciser l'utilisateur, si on ne la spécifie pas, la commande considère l'utilisateur courant
 
donc dans ton cas,
crontab -u root -e et crontab -e (en tant que root) c'est pareil
 
 
2/ crontab -e ça édite la crontab d'un utilisateur rien à voir avec les cron.d, cron.daily, ... du système
Pour eux il n'y a pas (en ligne de commande du moins) d'éditeur de conf, c'est tout par scripts ...
 
3/ pourquoi ton script dans le dossier cron.daily ne marchait pas : je pense que le fait que tu aies mis un lien n'a pas du lui plaire, essaie avec ton script directement  
 
4/ ton problème de log / script qui ne se lance pas
- ton fichier /usr/local/bin/script_rsync est bien executable ?
- la partition dans laquelle il est n'a pas l'option noexec ?
- dans les logs de cron (/var/log/cron) as tu des traces comme quoi ton script est bien lancé ou rien du tout ?
- au passage, au lieu d'appeler directement rsync, fais une variable et précise le chemin complet. Les crons tournent dans un environnement plus que limité

n°1009288
sonic_on_e​cstasy
Never trust a hippie!!
Posté le 08-02-2008 à 09:51:26  profilanswer
 

J'ai lancé simplement crontab puisque j'étais connecté en root mais c'est ce que je voulais.
 
Concernant les cron.d daily j'avais enlevé le lien lors des premières remarques.
 
Je n'ai donc que la crontab du user root qui est renseignée.
 
 
Et concernant le script, il est exécutable puisque j'arrive à le lancer à la main.
au passage, le ls -l donne  
 
-rwxr-xr-x 1 root root 975 fév  6 18:08 /usr/local/bin/script_rsync
 
et enfin dans le /var/log/cron je n'ai aucune trace que cron s'est lancé, j'ai simplement des traces de mes modifs de la crontab:
 

Code :
  1. Feb  7 15:58:45 SERV0500 crontab[24772]: (root) END EDIT (root)
  2. Feb  7 15:59:01 SERV0500 crond[23925]: (root) RELOAD (cron/root)
  3. Feb  7 16:04:30 SERV0500 crond[24809]: (CRON) STARTUP (V5.0)
  4. Feb  7 16:48:30 SERV0500 crontab[25051]: (root) BEGIN EDIT (root)
  5. Feb  7 16:49:42 SERV0500 crontab[25051]: (root) END EDIT (root)
  6. Feb  7 17:13:59 SERV0500 crontab[25138]: (root) BEGIN EDIT (root)
  7. Feb  7 17:14:05 SERV0500 crontab[25138]: (root) REPLACE (root)
  8. Feb  7 17:14:05 SERV0500 crontab[25138]: (root) END EDIT (root)
  9. Feb  7 17:14:09 SERV0500 crontab[25140]: (root) LIST (root)
  10. Feb  7 17:15:01 SERV0500 crond[24809]: (root) RELOAD (cron/root)


 
Et enfin je vais regardé pour créer une  variable vers le chemin du rsync
 
Merci pour ton aide.


Message édité par sonic_on_ecstasy le 08-02-2008 à 09:52:03
n°1009315
fighting_f​alcon
Posté le 08-02-2008 à 11:22:30  profilanswer
 

fais voir la sortie de la commande "mount"

n°1009319
sonic_on_e​cstasy
Never trust a hippie!!
Posté le 08-02-2008 à 11:33:48  profilanswer
 

/dev/sda1 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda7 on /home type ext3 (rw)
/dev/sda6 on /tmp type ext3 (rw)
/dev/sda2 on /usr type ext3 (rw)
/dev/sda3 on /var type ext3 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

n°1009363
fighting_f​alcon
Posté le 08-02-2008 à 14:15:18  profilanswer
 

aller, mode debug à fond :
 
1- change ta crontab :
* * * * * /usr/local/bin/script_rsync
 
2- arrête le démon
/etc/init.d/cron stop
 
3- lance cron mais en 1er plan, sans démon :
cron -f
 
et dis nous ce qu'il se passe ...

n°1009428
sonic_on_e​cstasy
Never trust a hippie!!
Posté le 08-02-2008 à 18:39:30  profilanswer
 

euh tu es sur de ta commande?
 
Je n'ai que crond et pas cron et pas de -f comme flag dispo...
 
Au passage je rappelle que je suis sur une FC6 64Bits.

n°1009514
e_esprit
Posté le 09-02-2008 à 10:50:53  profilanswer
 

Deja pour la commande rsync, mets le path complet (/usr/bin/rsync à priori).

 

Sinon tu n'as aucune trace de tes echos dans le fichier le de log :??:
Et rien non plus dans le log de cron à l'heure ou il est supposé être lancé ?


Message édité par e_esprit le 09-02-2008 à 10:51:05

---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
n°1009549
sonic_on_e​cstasy
Never trust a hippie!!
Posté le 09-02-2008 à 17:15:58  profilanswer
 

non rien du tout...
 
J'ai esasyé de faire un script tout bête qui s'exécute toutes les minutes toutes les heures... qui me revoi l'heure dans un fichier texte...rien du tout
 
J'ai également essayé de mettre les chemin complets pas mieux...
 
 
C'est comme si crond était dans les choux alors que le service tourne...
 
Dans les logs cron j'ai juste mes modifs de ma crontab et les reboot des services mais rien d'autre.
 
Any ideas?

n°1009550
e_esprit
Posté le 09-02-2008 à 17:49:35  profilanswer
 

Truc bete mais bon... t'as essaye de mettre /bin/sh à la place de /bin/bash ?


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
n°1009881
sonic_on_e​cstasy
Never trust a hippie!!
Posté le 10-02-2008 à 20:19:27  profilanswer
 

non je n'ai pas essayé, mais j'ai repris le bin/bash d'un autre script qui fonctionnait sur un serveur équivalent (même distrib, même kernel...)
 
Dans le doute j'essaierai...

n°1009882
fighting_f​alcon
Posté le 10-02-2008 à 20:24:32  profilanswer
 

sonic_on_ecstasy a écrit :

euh tu es sur de ta commande?
 
Je n'ai que crond et pas cron et pas de -f comme flag dispo...
 
Au passage je rappelle que je suis sur une FC6 64Bits.


 
je parlais de cron (et non crond) avec l'option -f pour dire de lancer cron mais pas en mode démon, de sorte qu'il ne se détache pas de la console depuis laquelle tu l'as lancé, pour ainsi que tu voies tout ce qu'il fait
 
 
man crond sur ta distrib pour voir si un truc similaire est possible sous FC6 ...

n°1010999
regdub
Posté le 13-02-2008 à 23:08:14  profilanswer
 

Je conseillerais de vérifier la crontab en entier car il y a peut être une erreur qui empêche cron de s'y retrouver.


---------------
Legalize it @HFR
n°1011137
sonic_on_e​cstasy
Never trust a hippie!!
Posté le 14-02-2008 à 11:47:25  profilanswer
 

la crontab a été vidée complètement.
De plus, plus aucune tache cron ne fonctionne (logrotate...)
 
J'ai passé cette commande pour lancer cron en interactif (en ayant bien sur arreté le démon) /usr/sbin/crond -x sch,load,test
 
et le résultat c'est  
 

Code :
  1. user [root:0:0:...] cmd="run-parts /etc/cron.monthly"
  2. user [root:0:0:...] cmd="run-parts /etc/cron.weekly"
  3. user [root:0:0:...] cmd="run-parts /etc/cron.daily"
  4. user [root:0:0:...] cmd="run-parts /etc/cron.hourly"
  5. user [root:0:0:...] cmd="cd /usr/sbin && perl ocsinventory-client.pl > /dev/null 2>&1"
  6. user [root:0:0:...] cmd="echo "HELLO WORLD" >> /var/log/test.jerem"
  7. Minute-ly job. Recording time 1202940781
  8. [19157] Target time=1202944440, sec-to-wait=60


 
 
et j'ai ça en boucle....on voit bien les tâches cron listées mais pas exécutées...
 
En sachant que la ligne * * * * * echo "HELLO WORLD" >> /var/log/test.jerem de la crontab a été mise sur une autre machine Fc6 et que ça marche...

n°1012483
sonic_on_e​cstasy
Never trust a hippie!!
Posté le 18-02-2008 à 18:49:53  profilanswer
 

pour info le problème semble résolu,  
 
tout venait de l'utilisation d'un programme tiers pour gérer l'intégration à un domaine AD W2K3 qui avait modifié le fichier /etc/pam.d/system-auth
 
En remettant ce fichier dans sa configuration originale, tout est OK.
 
Merci qd mm d'avoir essayer de m'aider...

mood
Publicité
Posté le   profilanswer
 


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

  [cron] Ajouter un script au cron.daily

 

Sujets relatifs
Problème avec crontab (pas d'execution du script)Script rsync et dossier avec espaces
Script automatique LFTP[RESOLU] besoin aide script shell (pb sur boucle while)
Temps d'exécution maximum d'un script bashScript SHELL. Executer du code dans une 2eme fenetre...
[Résolu]petit script shellautorisé un user à écrire dans /var/spool/cron/crontabs
nombres limites de tache pour cronShell : mini script pour l'utilisation de sed
Plus de sujets relatifs à : [cron] Ajouter un script au cron.daily


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