Tache cron le dernier lundi de chaque mois ?!
Résolu/Fermé
filosox
Messages postés
22
Date d'inscription
vendredi 14 septembre 2007
Statut
Membre
Dernière intervention
3 avril 2008
-
2 avril 2008 à 08:38
kourryel - 29 mars 2011 à 11:54
kourryel - 29 mars 2011 à 11:54
4 réponses
C'est impossible !
Le mieux que j'ai réussi à pondre pour le dernier lundi du mois se fait en 3 lignes... Il reste tout de même un problème sur les années bisextiles... si vous avez 2 lundi entre le 22 et le 29 février mais bon il suffit de le savoir...
Par contre je ne comprends pas trop ce qu'on écrits les précédents contributeurs sur le premier lundi du mois... qui pour le coup est simple :
Le mieux que j'ai réussi à pondre pour le dernier lundi du mois se fait en 3 lignes... Il reste tout de même un problème sur les années bisextiles... si vous avez 2 lundi entre le 22 et le 29 février mais bon il suffit de le savoir...
50 23 25-31 1,3,5,7,8,10,12 mon votre tache 50 23 24-30 4,6,9,11 mon votre tache 50 23 22-29 2 mon votre tache
Par contre je ne comprends pas trop ce qu'on écrits les précédents contributeurs sur le premier lundi du mois... qui pour le coup est simple :
1 0 1-7 * mon votre tache
Bonjour,
Pour exécuter ton script tu tape crontab -e il s'ouvrira devant toit une fenêtre avec l'éditeur dispo et tu tape:
1 23 1 * 1 ta_commande
et voila ta commande sera exécuter tout les premier lundi du mois à minuit 1 minutes.
ça te vas???
Pour exécuter ton script tu tape crontab -e il s'ouvrira devant toit une fenêtre avec l'éditeur dispo et tu tape:
1 23 1 * 1 ta_commande
et voila ta commande sera exécuter tout les premier lundi du mois à minuit 1 minutes.
ça te vas???
Bonsoir,
En général l'éditeur dispo est vi... si tu tapes crontab -l tu verras la liste des tâches apparaitre. (comme un cat)
pour modifier, c'est crontab -e comme a dit Karine.
Je te file un exemple de ce que j'ai mis en place sur un de mes serveurs.
De mémoire je crois que l'ordre est comme ci-dessous.
Minutes heure semaine mois jourdelasemaine /chemin/vers/ton/job.sh
je te conseille vivement de rajouter des commentaires avant chaque ligne, sinon c'est le bordel et même toi tu ne sauras plus à quoi sert telle ligne...
Je ne suis pas parfait, mais suit l'exemple ci-dessous.
linux:~ # crontab -l
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.3051 installed on Mon Dec 17 10:01:47 2007)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
#mise a jour freshclam - base de signature antivirus clamav
# mise a jour base de signature antivirus clamav
0 9 * * * /root/majclam.sh
# lancement d'un scan antivirus tous les dimanches à 18 heures.
0 18 * * 7 /root/scanvirus.sh
# lancement d'un scan antivirus la nuit (jours de semaine 2,4,5) a partir de 4 h
eures du matin
30 4 * * 2,4,5 /root/scanvirus.sh
# lancement de l'envoi du rapport de sauvegarde lisible tout les matins a 5 h.
0 5 * * * /root/arcmail.sh remplacer avantageusement le
# execution de fetchmail toutes les cinq minutes
5,10,15,20,25,30,35,40,45,50,55,59 * * * * /usr/bin/fetchmail -f /root/.fetchmai
lrc
# execution de l'analyse antirootkit deux fois par semaine
0 6 * * 3,6 /root/antirootkit.sh
# sauvegarde supplementaire des fichiers accueil_SAV
# Pour une recuperation plus rapide.
0 12,20 * * * /root/cpSAV.sh
# pour le nettoyage des messages de procmail dans /var/spool/mail/root
45 * * * * /root/removemailroot.sh
# verification de l'etat de le file d'attente postfix a 10 h, 14 h et 17 h tous
les jours
0 10,14,17 * * * /root/smtpverif.sh
linux:~ #
A bientux.
Jonas.
En général l'éditeur dispo est vi... si tu tapes crontab -l tu verras la liste des tâches apparaitre. (comme un cat)
pour modifier, c'est crontab -e comme a dit Karine.
Je te file un exemple de ce que j'ai mis en place sur un de mes serveurs.
De mémoire je crois que l'ordre est comme ci-dessous.
Minutes heure semaine mois jourdelasemaine /chemin/vers/ton/job.sh
je te conseille vivement de rajouter des commentaires avant chaque ligne, sinon c'est le bordel et même toi tu ne sauras plus à quoi sert telle ligne...
Je ne suis pas parfait, mais suit l'exemple ci-dessous.
linux:~ # crontab -l
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.3051 installed on Mon Dec 17 10:01:47 2007)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
#mise a jour freshclam - base de signature antivirus clamav
# mise a jour base de signature antivirus clamav
0 9 * * * /root/majclam.sh
# lancement d'un scan antivirus tous les dimanches à 18 heures.
0 18 * * 7 /root/scanvirus.sh
# lancement d'un scan antivirus la nuit (jours de semaine 2,4,5) a partir de 4 h
eures du matin
30 4 * * 2,4,5 /root/scanvirus.sh
# lancement de l'envoi du rapport de sauvegarde lisible tout les matins a 5 h.
0 5 * * * /root/arcmail.sh remplacer avantageusement le
# execution de fetchmail toutes les cinq minutes
5,10,15,20,25,30,35,40,45,50,55,59 * * * * /usr/bin/fetchmail -f /root/.fetchmai
lrc
# execution de l'analyse antirootkit deux fois par semaine
0 6 * * 3,6 /root/antirootkit.sh
# sauvegarde supplementaire des fichiers accueil_SAV
# Pour une recuperation plus rapide.
0 12,20 * * * /root/cpSAV.sh
# pour le nettoyage des messages de procmail dans /var/spool/mail/root
45 * * * * /root/removemailroot.sh
# verification de l'etat de le file d'attente postfix a 10 h, 14 h et 17 h tous
les jours
0 10,14,17 * * * /root/smtpverif.sh
linux:~ #
A bientux.
Jonas.
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
>
Jonas
2 avril 2008 à 11:00
2 avril 2008 à 11:00
Salut,
tous les infos on les trouves dans man 5 crontab
en revanche pour que la tâche s'exécute le 1er lundi du chaque moi, il faut faire un script qui determine quand tombe le 1er ou le dernier lundi de chaque mois
l'editeur par défaut on peut le changer en utilisant la variable d'environnement EDITOR
par exemple sur Debian par défaut c'est l'éditeur nano qui s'ouvre avec la commande crontab -e
si on veut utiliser vim par exemple on peut faire
106485010510997108
tous les infos on les trouves dans man 5 crontab
en revanche pour que la tâche s'exécute le 1er lundi du chaque moi, il faut faire un script qui determine quand tombe le 1er ou le dernier lundi de chaque mois
l'editeur par défaut on peut le changer en utilisant la variable d'environnement EDITOR
par exemple sur Debian par défaut c'est l'éditeur nano qui s'ouvre avec la commande crontab -e
si on veut utiliser vim par exemple on peut faire
root@debian:~# export EDITOR=$(which vim) root@debian:~# echo $EDITOR /usr/bin/vim root@debian:~#--
106485010510997108
bonjour jonas,
j'ai un pb avec mon cron sous cygwin.
je lance un cron tout bete qui est le suivant: * * * * * /test et dans mon fichier test c'est une simple ligne ls -lrt > toto
J'ai bien mis les droits 777 sur mon fichier test , mais le cron n'execute pas mon fihier, par contre si manuellement je le lance avec ./test ca marche tres bien.
Peux tu m'aider??
j'ai un pb avec mon cron sous cygwin.
je lance un cron tout bete qui est le suivant: * * * * * /test et dans mon fichier test c'est une simple ligne ls -lrt > toto
J'ai bien mis les droits 777 sur mon fichier test , mais le cron n'execute pas mon fihier, par contre si manuellement je le lance avec ./test ca marche tres bien.
Peux tu m'aider??
jivef
Messages postés
927
Date d'inscription
mercredi 11 août 2004
Statut
Membre
Dernière intervention
12 novembre 2020
306
>
jojo
20 sept. 2008 à 10:29
20 sept. 2008 à 10:29
Bonjour,
Le chemin que tu as indiqué est-il correct.
Je suis surpris que tu ais un script directement dans /
Sinon * * * * * signifie que le script doit se lancer toutes les minutes tous les jours, tous les mois, etc...
Mais si ça ne fonctionne pas, essaie de mettre une valeur sur l'heure par exemple.
Essaie de faire ceci (à la place de 8,9,10,11 écrit l'heure courante et les deux ou trois suivantes.)
* 8,9,10,11 * * * /chemin/vers/test.sh
Il est rare que l'on ait besoin de lancer une tâche perpétuellement toute les minutes.
Comment as-tu modifié ta crontab ?
As-tu bien utilisé la commande crontab -e ?
A plus.
Le chemin que tu as indiqué est-il correct.
Je suis surpris que tu ais un script directement dans /
Sinon * * * * * signifie que le script doit se lancer toutes les minutes tous les jours, tous les mois, etc...
Mais si ça ne fonctionne pas, essaie de mettre une valeur sur l'heure par exemple.
Essaie de faire ceci (à la place de 8,9,10,11 écrit l'heure courante et les deux ou trois suivantes.)
* 8,9,10,11 * * * /chemin/vers/test.sh
Il est rare que l'on ait besoin de lancer une tâche perpétuellement toute les minutes.
Comment as-tu modifié ta crontab ?
As-tu bien utilisé la commande crontab -e ?
A plus.
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
2 avril 2008 à 10:39
2 avril 2008 à 10:39
Salut,
et si lundi tombe le 2 ou un autre jour?!
1 23 veut dire à 23h00 et une minute
1 0 c'est pour minuit et une minute
et si lundi tombe le 2 ou un autre jour?!
1 23 veut dire à 23h00 et une minute
1 0 c'est pour minuit et une minute
filosox
Messages postés
22
Date d'inscription
vendredi 14 septembre 2007
Statut
Membre
Dernière intervention
3 avril 2008
2
2 avril 2008 à 11:10
2 avril 2008 à 11:10
Merci pour toutes ces réponses, j'essaye ça et vous tiens au courant, merci a krine83 sa me convient parfaitement, et pour lami20j même si lundi tombe le 2 ce qui compte c'est qu'il se repère au jour et pas a la date.
Encore merci
Encore merci
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
>
filosox
Messages postés
22
Date d'inscription
vendredi 14 septembre 2007
Statut
Membre
Dernière intervention
3 avril 2008
2 avril 2008 à 11:16
2 avril 2008 à 11:16
Ben, tu nous diras quand le lundi ne tombe pas le 1er du mois
le 3 ème champ parle du jour du mois donc 1-31
la ligne demande un lundi qui est le 1 du mois, d'où ma question ;-)
le 3 ème champ parle du jour du mois donc 1-31
la ligne demande un lundi qui est le 1 du mois, d'où ma question ;-)
dubcek
Messages postés
18753
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
7 novembre 2024
5 619
2 avril 2008 à 11:14
2 avril 2008 à 11:14
pour exécuter une commande le premier lundi du mois, exécuter dans cron, tout les 1er du mois à l'heure hhmm la commande :
at HHmm monday commande
HH est plus grand que hh, commande s'exécutera le prochain lundi ou le jour même à HHmm
si le 1er est un mardi, la commande s'exécutera le lundi suivant, etc.
at HHmm monday commande
HH est plus grand que hh, commande s'exécutera le prochain lundi ou le jour même à HHmm
si le 1er est un mardi, la commande s'exécutera le lundi suivant, etc.