« Superblocs de secours ext3 | Home | météo sous linux avec ZyGrib »

dernier samedi du mois

posté par cep le 21 novembre 2008

On a parfois besoin de savoir à quelle date va tomber le dernier samedi du mois, ou autre jour de l’année.

Le petit programme ncal lancé sans paramètre supplémentaire affiche le mois en cours.
:~$ ncal
novembre 2008
lu       3 10 17 24
ma     4 11 18 25
me     5 12 19 26
je       6 13 20 27
ve      7 14 21 28
sa  1  8 15 22 29
di   2  9 16 23 30

Partant de là, la simple commande :
ncal |awk '/sa/ {print $NF}'
permet d’afficher la date du dernier samedi du mois en cours. Pour connaitre le dernier dimanche, il suffit de remplacer /sa/ par /di/ et pour un autre mois, il faut passer l’option du mois à ncal.

Ainsi on peut par exemple lancer précisément un script le dernier samedi du mois car cron ne le permet pas directement. Le script pourrait être :

#!/bin/sh
#compare la date du jour avec une référence
#représentant la date du dernier samedi du mois.
#Si les dates concordent, le programme ou le script
#passé en paramètre SAVE est lancé

SAVE=$(sh ton_script_à_lancer) #à adapter en portant le chemin du scrip
JOUR=$(date +%d)
REF=$(ncal |awk '/sa/ {print $NF}') #remplacer /sa/ pour un autre jour

if [ $JOUR = $REF ]
then
$SAVE
else
echo "ce n'est pas le bon jour"
fi

Il suffira ensuite de demander à cron de lancer cette tâche sur une plage de jours, par exemple du 22 au 31, et à son tour cette tâche lancera le programme au moment voulu.

ncal comme cal et calendar font parti du paquet bsdmainutils, en principe installé en standard sur toutes les distributions.

cep

Topics: Général, linux |

Comments

*
Pour prouver que vous n'êtes pas un bot, recopiez le code ci-dessous
Anti-Spam Image