Répondre
Exécutez-le sur le 1er, 2ème, 4ème (et peut-être 5ème, cela peut arriver) week-ends.
# m h dom mon dow command
* * 1-20,28-31 * 0 echo #test
Je ne sais pas si cela se déroulera tous les jours, ou tout simplement le dimanche (jour 0), mais il ne fonctionnera pas sur le 21 au 27 - la troisième semaine. Il peut être assez simple de mettre un chèque dans le script qui va sortir si c'est la troisième semaine (ou ce n'est pas un dimanche).
Cela ne fonctionnera pas réellement (du moins pas avec vixie cron). Cela provoquera l'exécution du script les jours 1-20, 28-31, * et * tous les dimanches. Lorsque dom et dow sont spécifiés, le script est exécuté lorsque l'une ou l'autre condition réussit. –
Je suis corrigé - mais une vérification dans le script pour un 'non-dimanche, donc exit' résoudrait cela. Puis, encore une fois, de même courir tous les dimanches, puis en sortant si c'était le 21-27. –
Si vous souhaitez l'exécuter sur un possible samedi, sauf le troisième (essayer # 3):
GREP=/usr/local/bin/grep
TODAY=/bin/date "+%d"
THIRD_SAT=/bin/date -v1d -v+1m -v-7d -v-sat "+%d"
#min hr day month weekday script
0 0 * * 6 ($THIRD_SAT | $GREP $TODAY) || /bin/echo doit
Cela ne fonctionnera pas réellement (du moins pas avec vixie cron). Cela provoquera l'exécution du script les jours 1-13, 21-31, * et * tous les samedis. Lorsque le jour du mois et le jour de la semaine sont spécifiés, le script est exécuté lorsqu'une condition réussit. –
Merci d'avoir signalé cela. Je n'avais pas réalisé que les deux dernières colonnes sont ORed au lieu de ANDed. Apprendre quelque chose de nouveau chaque jour! –
- faire une tâche cron qui exécute un script donné en cas de besoin en ignorant la partie 3ème week-end
- faites un travail cron qui s'exécute sur le 21 et un autre sur le 28 pour éteindre le script et revenir pour un autre script no-op.
Hacky mais il travaillerait
Enregistrez ce qui suit comme /usr/local/bin/is_third_week_in_month.sh
ou un lieu
#!/bin/bash
if [ $# != 3 ]
then
echo "Usage: $0 <yyyy> <mm> <dd>" 1>&2
exit 127
fi
YEAR=$1
MONTH=$2
DAY=$3
FIRST_WEEK_IN_MONTH=`date +%V -d $YEAR-$MONTH-01`
WEEK_FOR_DAY=`date +%V -d $YEAR-$MONTH-$DAY`
DIFF=$(($WEEK_FOR_DAY - $FIRST_WEEK_IN_MONTH))
if [ $DIFF = 2 ]
then
# this is the third week
exit 0
else
exit 1
fi
puis ajouter à crontab
12 00 * * 1,2,3,4,5 your_command
12 00 * * 6,7 test ! /usr/local/bin/is_third_week_in_month.sh `date "+%Y %m %d"` && your_command
Ou vous pouvez modifier le script pour vérifier pour la date aussi bien si vous voulez avoir seulement une ligne dans crontab.
Sur mon système, la date +% V imprime un zéro non significatif pour les numéros de semaine à un seul chiffre. Cela fait que le calcul de $ DIFF pense qu'il a des valeurs octales et échoue. Essayez d'exécuter ce script pour 2009 02 19, par exemple. Dénudez le zéro initial comme suit: FIRST_WEEK_IN_MONTH = 'date +% V -d $ YEAR- $ MOIS-01 | sed s/^ 0 //' --- et sur la ligne suivante --- WEEK_FOR_DAY = 'date +% V -d $ YEAR- $ MONTH- $ DAY | sed s/^ 0 // ' –
En outre, le numéro de semaine ISO (% V) pour le 1er janvier peut être 52 (par exemple 2006) ou 53 (par exemple 2005) Le calcul $ DIFF est négatif et ne parvient pas à trouver la semaine 3 en janvier. Donc vous devriez changer le "% V" à "% W" qui commence toujours l'année en semaine zéro ou un et termine l'année en semaine 52 ou 53 (% V peut terminer l'année en 52, 53 ou 1). –
- 1. django "manage.py index" ne s'exécute pas comme un travail cron
- 2. Comment puis-je planifier un rapport dans SharePoint pour s'exécuter le dernier jour du mois?
- 3. Comment écrire un chèque de date shellscript qui ne fonctionnera pas Sauf 3ème semaine samedi, dimanche et 4ème semaine lundi du mois
- 4. Dire à IKImageBrowserView de ne pas planifier le préchargement
- 5. Exécution d'un travail Cron
- 6. Annuler le fichier ne se trouve pas dans un espace de travail en perforce
- 7. Travail de cron pour se connecter au serveur sql et exécuter un sproc en utilisant python
- 8. Je veux exécuter un fichier en utilisant cron travail pas dans un navigateur
- 9. Syntaxe de travail Cron sur Google App Engine
- 10. Tableau qui ne se rétrécit pas lors du redimensionnement
- 11. Comment faire un travail cron toutes les 72 minutes
- 12. Comment planifier l'heure du test
- 13. ce qui fonctionne exactement le travail de cron de quarz au printemps?
- 14. wxPython ne se ferme pas Cadre avec un parent qui est un handle de fenêtre
- 15. Planifier quelque chose sur un clic du contrôle de calendrier
- 16. Un bon moyen d'avoir un fil de travail sans fin?
- 17. Existe-t-il un moyen de surveiller le nombre de cheminements CAS qui se produisent?
- 18. Comment puis-je planifier un travail dans Sql Agent (Sql Server 2005) via le code C#?
- 19. Comment puis-je voir les erreurs qui se sont produites dans un flux de travail skelta?
- 20. Dans Sharepoint, je veux déclencher un flux de travail automatiquement tous les mois, ce qui montre que les listes qui a ce mois particulier dater
- 21. Cron travail: garder les 20 dernières lignes
- 22. StarTeam ne vérifie pas dans le dossier de travail?
- 23. Le travail du minuteur de nettoyage automatique du flux de travaux ne s'exécute pas
- 24. Comment se débarrasser du message Checkstyle 'Le fichier ne se termine pas par un saut de ligne.'
- 25. Comment désactiver une boîte de sélection qui ne se trouve pas dans un formulaire?
- 26. L'événement Form_Load ne se déclenche pas sur un formulaire qui hérite d'une autre classe de formulaire
- 27. Existe-t-il un moyen pour VBA de connaître les variables qui ne sont pas utilisées?
- 28. Le travail d'Hudson se bloque à Runtime.exec
- 29. Pourquoi le côté serveur ne comprend-il pas le travail?
- 30. Problème avec parallèle ne démarre pas toujours un autre travail quand on finit
Quand voulez-vous qu'il fonctionne? – davidfg4
Voulez-vous qu'il fonctionne tous les jours qui ne fait pas partie de la 3ème fin de semaine, ou voulez-vous qu'il se déroule chaque week-end qui n'est pas le 3ème week-end? Si les mois commencent un lundi, est-ce le 1er week-end? – Eddie