(Terug) naar scripts op heeck.nl of heeck.nl

******************************************************************************************
croncheck.sh is de crontab-big-brother

Dit scriptje heb ik op een aantal servers in de crontab van root staan, en het draait elke 5 minuten.
Als een gebruiker op het systeem zijn of haar crontab aanpast wordt dit bemerkt.
Alle wijzigingen worden gearchiveerd in een alleen voor root leesbare directory, met timestamps in de filenamen.
Zo zijn alle wijzigingen in iedereens crontabs altijd voor lange tijd terug te vinden.
Hiermee heb ik al meerdere 'spookverschijnselen' achteraf aan menselijk handelen weten te koppelen.
NB: Let even op de wrap in regel 26

01 #!/bin/sh
02 #Bestandsnaam           : croncheck.sh
03 #Bestandslocatie        : /usr/local/bin
04 #Auteur                 : Jurjen Heeck
05 #Datum laatste wijziging: 17-02-2005
06 #Versienummer           : 2.00
07 #Bestandstype           : shell script
08 #Beknopte documentatie  : controle op en archivering van wijzigingen in 
09 #                         crontabs, puur op timestamp. aanbevolen interval 5min.
10 #
11 #
12 ############ begin config ############
13 crondir=/var/spool/cron/  #basisdir crontabfiles
14 cronarch=/var/cronarch/   #dir gearchiveerde crontabfiles
15 ############ einde config ############
16 datum=`date +%Y%m%d%H%M`
17 datumformaat=[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]
18 umask 077
19 # Test aanwezigheid archiefdir crontabs of maak deze aan.
20 test -d $cronarch || mkdir $cronarch
21 if [ `ls $crondir| wc -l` -gt 0 ]
22 then
23   for crontab in `ls $crondir`
24   do
25     # Controleer aanwezigheid archieffile crontab, of maak deze aan.
26     ls ${cronarch}${crontab}${datumformaat} >/dev/null 2>&1 || 
       cp ${crondir}${crontab} ${cronarch}${crontab}${datum}
27     # Check potentieel leeftijdsverschil crontab en meeste recente archiefversie. 
28     # Als de crontab nieuwer is opnieuw archiveren.
29     if [ ${crondir}${crontab} -nt $(ls -rt ${cronarch}${crontab}${datumformaat}|tail -1) ]
30     then
31       cp ${crondir}${crontab} ${cronarch}${crontab}${datum}
32     fi
33   done
34 fi
Als je last hebt van de regelnummers in deze pagina geef je hem maar aan je systeembeheerder :-)
* Begin **********************************************************************************