Ajouter un script au cron.daily [cron] - Logiciels - Linux et OS Alternatifs
Marsh Posté le 18-10-2007 à 16:56:37
oula, pour editer une crontab c est :
Code :
|
et pour la visualiser
Code :
|
dans tout les cas fait un man crontab pour bien comprendre son fonctionnement
Marsh Posté le 18-10-2007 à 16:57:46
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
Marsh Posté le 18-10-2007 à 17:03:07
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
Marsh Posté le 18-10-2007 à 17:05:34
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?
Marsh Posté le 18-10-2007 à 17:15:28
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 pour le backup des bdd |
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
Marsh Posté le 18-10-2007 à 17:30:57
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.
@+
Marsh Posté le 18-10-2007 à 17:57:39
sonic_on_ecstasy a écrit : très bien j'ai rajouté dans ma crontab: |
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.
Marsh Posté le 18-10-2007 à 18:03:08
Le_Tolier a écrit : |
Ok jsuis d'accord...mais comment je dois faire ça?? lol (tu viens de me tuer en 2 mots...
Marsh Posté le 18-10-2007 à 18:11:42
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
Marsh Posté le 19-10-2007 à 09:37:58
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 :
|
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!!
Marsh Posté le 07-02-2008 à 15:58:34
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 :
|
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...
Marsh Posté le 08-02-2008 à 08:29:44
Bon alors, déjà il va falloir reprendre quelques trucs ...
1/
Le_Tolier a écrit : oula, pour editer une crontab c est :
|
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é
Marsh Posté le 08-02-2008 à 09:51:26
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 :
|
Et enfin je vais regardé pour créer une variable vers le chemin du rsync
Merci pour ton aide.
Marsh Posté le 08-02-2008 à 11:33:48
/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)
Marsh Posté le 08-02-2008 à 14:15:18
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 ...
Marsh Posté le 08-02-2008 à 18:39:30
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.
Marsh Posté le 09-02-2008 à 10:50:53
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é ?
Marsh Posté le 09-02-2008 à 17:15:58
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?
Marsh Posté le 09-02-2008 à 17:49:35
Truc bete mais bon... t'as essaye de mettre /bin/sh à la place de /bin/bash ?
Marsh Posté le 10-02-2008 à 20:19:27
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...
Marsh Posté le 10-02-2008 à 20:24:32
sonic_on_ecstasy a écrit : euh tu es sur de ta commande? |
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 ...
Marsh Posté le 13-02-2008 à 23:08:14
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.
Marsh Posté le 14-02-2008 à 11:47:25
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 :
|
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...
Marsh Posté le 18-02-2008 à 18:49:53
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...
Marsh Posté le 18-10-2007 à 16:49:45
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...
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:
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