Es tracta que a partir d’un dia concret, es comenti una linea d’un cron, i aquest ja no es torni a executar mes.
El contingut del crontab es com segueix:
[bi@server1 test_cron]$ crontab -l
#al minut 15 cada 6 hores
15 */6 * * * /home/bi/test_cron/list_files.sh ; /home/bi/test_cron/desactivacron.sh > /home/bi/test_cron/cron.log
He fet el següent bash que ho modifica:
——————— desactivacron.sh —————–
#!/bin/sh
#
# Copia i modifica el crontab
#
#Creem un arxiu temporal
tmpfile=$(mktemp)
today=$(date +%Y%m%d)
cond=$(date -d 2017-05-01 +”%Y%m%d”)
#echo “$today > $cond ?”
#Recuperem el crontab actual
crontab -l > $tmpfile
#Si avui es mes gran que la data $cond
if [ $today -gt $cond ]
then
#Si hem passat de la data, es comenta el cron i ja no s’executarà mes…
sed -i ‘s/^15/#15/’ $tmpfile
else
#Si encara no hem passat la data, es descomenta el cron (en cas que el tingues comentat)
sed -i ‘s/^#15/15/’ $tmpfile
fi
crontab $tmpfile
#El·liminem l’arxiu temporal
rm $tmpfile
———————
Si fem
[bi@server1 test_cron]$ ./desactivacron.sh
El cron queda comentat o no segons si s’ha arribat a la data estipulada.
Aquest sh a la vegada l’executo