Tache cron le dernier lundi de chaque mois ?!
Résolu
filosox
Messages postés
22
Date d'inscription
Statut
Membre
Dernière intervention
-
kourryel -
kourryel -
Bonjour à tous,
je voudrais créer une tache cron pour que mon script s'exécute le dernier lundi de chaque mois ou le premier lundi de chaque mois, peu importe.
Ce script permet un backup du système.
Peut on le faire et si oui comment ?
Merci d'avance pour vos réponses.
je voudrais créer une tache cron pour que mon script s'exécute le dernier lundi de chaque mois ou le premier lundi de chaque mois, peu importe.
Ce script permet un backup du système.
Peut on le faire et si oui comment ?
Merci d'avance pour vos réponses.
A voir également:
- Crontab tous les lundi
- Programme groupe whatsapp du lundi au dimanche - Guide
- Crontab toutes les minutes - Forum Shell
- Afficher lundi, mardi excel ✓ - Forum Excel
- Crontab bad minute ✓ - Forum Shell
- Communautés WhatsApp : des groupes dans les groupes - Accueil - WhatsApp
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.
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??
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.
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
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.