Mtime Changes

In this example, we report changes in system file and directory mtimes.

The FileMtimeChange script might send an alert message like the following:

                                PIKT ALERT
                         Mon Dec 29 02:09:52 2003
                                sheffield

WARNING:
    FileMtimeChange
        Report mtime-changed files and subdirectories in system directories

        -rwxr-xr-x  1 root   root    52269 Dec 28  2003 /usr/sbin/iptables
        -rwxr-xr-x  1 root   root    56277 Dec 28  2003 /usr/sbin/iptables-restore
        -rwxr-xr-x  1 root   root    55793 Dec 28  2003 /usr/sbin/iptables-save 
        ...

The script follows.

FileMtimeChange

        init
                status =piktstatus
                level =piktlevel
                task "Report mtime-changed files and subdirectories
                      in system directories"
                input file "=objdir/DirsSystem.obj"

        begin   // first check integrity of the find command
                set $findchksum = $checksum(5, "=find")
                if    #defined(%findchksum)
                   && $findchksum ne %findchksum
                        output mail "=find has changed checksum to $findchksum,
                                     was %findchksum"
                        // quit
                endif
                if =monday
                        set $mtime = "-3"       // find files modified over
                                                // the weekend (last 3 days)
                else
                        set $mtime = "-2"       // find files modified within
                                                // the last two days
                endif

        rule
                if -d $inlin
#ifndef paranoid
                        =outputproc(mail, "=find $inlin -mtime $mtime
                                                        -exec =lld {}
                                    \\\\; | =egrep -iv 'log|\\\\.lock|\\\\.hst|
                                    \\\\.tmp|pipe|fifo|\\\\.pid|/dev/|/var/spool|
                                    /var/adm|/var/log|/var/run|/var/locks|/tmp|
                                    /xfn|mgr/.in/|mgr/.out|mnttab|rmtab|dumpdates|
                                    ntp\\\\.drift|binding|heartbeat|mailman|dfget|
                                    /var/pikt|/proc/|/Cache/|diffing|staging|
                                    .galeon|.gconf|.mozilla|\\\\.bak'")
#elsedef
                        =outputproc(mail, "=find $inlin -mtime $mtime
                                                 -exec =lld {} \\\\;")
#endifdef  // paranoid
                endif

This is just one program example.  You could add rules, or write new scripts, for example to:  report mtime changes in other critical files and directories, page systems administrators if especially critical files are reported to be changed, etc.

For more examples, see Samples.

 
Home | FAQ | News | Intro | Samples | Tutorial | Reference | Software
Developer's Notes | Licensing | Authors | Pikt-Users | Pikt-Workers | Related Projects | Site Index | Privacy Policy | Contact Us
Page best viewed at 1024x768 or greater.   Page last updated 2019-01-12.   This site is PIKT® powered.
Copyright © 1998-2019 Robert Osterlund. All rights reserved.
Home FAQ News Intro Samples Tutorial Reference Software
PIKT Logo
PIKT Page Title
View sample
changed files
script macro