[BACK]Return to daily CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / etc

Annotation of src/etc/daily, Revision 1.40

1.1       cgd         1: #!/bin/sh -
                      2: #
1.40    ! perry       3: #      $NetBSD: daily,v 1.39 2001/10/09 05:28:42 veego Exp $
1.21      mikel       4: #      @(#)daily       8.2 (Berkeley) 1/25/94
1.1       cgd         5: #
1.18      mrg         6:
1.27      mycroft     7: export PATH=/bin:/usr/bin:/sbin:/usr/sbin
1.28      lukem       8: umask 077
                      9:
                     10: if [ -s /etc/daily.conf ]; then
                     11:        . /etc/daily.conf
                     12: fi
                     13:
1.20      mikel      14: host=`hostname`
1.28      lukem      15: date=`date`
1.1       cgd        16:
1.28      lukem      17: echo "To: ${MAILTO:-root}"
                     18: echo "Subject: $host daily output for $date"
                     19: echo ""
1.18      mrg        20:
1.25      lukem      21: if [ -f /etc/rc.subr ]; then
                     22:        . /etc/rc.subr
                     23: else
                     24:        echo "Can't read /etc/rc.subr; aborting."
                     25:        exit 1;
                     26: fi
                     27:
1.23      phil       28: if [ -z "$MAILTO" -o "$USER" != "root" ]; then
1.27      mycroft    29:        MAILTO=root
1.23      phil       30: fi
                     31:
1.22      lukem      32: echo ""
                     33: echo "Uptime: " `uptime`
1.18      mrg        34:
1.29      abs        35: # Uncommenting any of the finds below would open up a race condition attack
                     36: # based on symlinks, potentially allowing removal of any file on the system.
                     37: #
1.17      jtc        38: #echo ""
                     39: #echo "Removing scratch and junk files:"
                     40: #if [ -d /tmp -a ! -h /tmp ]; then
                     41: #      cd /tmp && {
                     42: #      find . -type f -atime +3 -exec rm -f -- {} \;
                     43: #      find . ! -name . -type d -mtime +1 -exec rmdir -- {} \; \
                     44: #          >/dev/null 2>&1; }
                     45: #fi
1.1       cgd        46:
1.17      jtc        47: #if [ -d /var/tmp -a ! -h /var/tmp ]; then
                     48: #      cd /var/tmp && {
                     49: #      find . ! -name . -atime +7 -exec rm -f -- {} \;
1.35      aymeric    50: #      find . ! \( -name . -o -name vi.recover \) -type d \
                     51: #              -mtime +1 -exec rmdir -- {} \; \
1.17      jtc        52: #          >/dev/null 2>&1; }
                     53: #fi
1.10      cgd        54:
1.15      pk         55: # Additional junk directory cleanup would go like this:
                     56: #if [ -d /scratch -a ! -h /scratch ]; then
                     57: #      cd /scratch && {
                     58: #      find . ! -name . -atime +1 -exec rm -f -- {} \;
                     59: #      find . ! -name . -type d -mtime +1 -exec rmdir -- {} \; \
                     60: #          >/dev/null 2>&1; }
                     61: #fi
1.10      cgd        62:
1.17      jtc        63: #if [ -d /var/rwho -a ! -h /var/rwho ] ; then
                     64: #      cd /var/rwho && {
                     65: #      find . ! -name . -mtime +7 -exec rm -f -- {} \; ; }
                     66: #fi
1.10      cgd        67:
1.36      lukem      68: DAILYDIR=`mktemp -d /tmp/_daily.XXXXXX` || exit 1
1.18      mrg        69:
1.36      lukem      70: trap "/bin/rm -rf $DAILYDIR ; exit 0" EXIT INT QUIT
1.18      mrg        71:
1.36      lukem      72: if ! cd "$DAILYDIR"; then
                     73:        echo "Can not cd to $DAILYDIR".
1.18      mrg        74:        exit 1
                     75: fi
                     76:
1.10      cgd        77: TMP=daily.$$
1.18      mrg        78: TMP2=daily2.$$
                     79:
1.25      lukem      80: if checkyesno find_core; then
1.18      mrg        81:        find / \( ! -fstype local -o -fstype rdonly -o -fstype fdesc \
1.14      mycroft    82:                -o -fstype kernfs -o -fstype procfs \) -a -prune -o \
1.18      mrg        83:                -name 'lost+found' -a -prune -o \
1.26      nathanw    84:                \( -name '*.core' -o -name 'core' \) -a -print > $TMP
1.18      mrg        85: #              \( -name '[#,]*' -o -name '.#*' -o -name a.out \
                     86: #                 -o -name '*.CKP' -o -name '.emacs_[0-9]*' \) \
                     87: #                      -a -atime +3 -exec rm -f -- {} \; -a -print > $TMP
                     88:
1.26      nathanw    89:        egrep '\.core$|^core$' $TMP > $TMP2
1.18      mrg        90:        if [ -s $TMP2 ]; then
                     91:                echo ""
                     92:                echo "Possible core dumps:"
                     93:                cat $TMP2
                     94:        fi
                     95:
                     96: #      egrep -v '\.core' $TMP > $TMP2
                     97: #      if [ -s $TMP2 ]; then
                     98: #              echo ""
                     99: #              echo "Deleted files:"
                    100: #              cat $TMP2
                    101: #      fi
1.10      cgd       102:
1.18      mrg       103:        rm -f $TMP $TMP2
                    104: fi
1.10      cgd       105:
1.25      lukem     106: if checkyesno run_msgs; then
1.18      mrg       107:        msgs -c
                    108: fi
1.1       cgd       109:
1.25      lukem     110: if checkyesno expire_news && [ -f /etc/news.expire ]; then
1.1       cgd       111:        /etc/news.expire
                    112: fi
                    113:
1.25      lukem     114: if checkyesno purge_accounting && [ -f /var/account/acct ]; then
1.21      mikel     115:        echo ""
                    116:        echo "Purging accounting records:"
                    117:        mv /var/account/acct.2 /var/account/acct.3
                    118:        mv /var/account/acct.1 /var/account/acct.2
                    119:        mv /var/account/acct.0 /var/account/acct.1
                    120:        cp /var/account/acct /var/account/acct.0
                    121:        sa -sq
1.1       cgd       122: fi
                    123:
1.25      lukem     124: if checkyesno run_calendar; then
1.18      mrg       125:        calendar -a > $TMP
                    126:        if [ -s $TMP ]; then
                    127:                echo ""
                    128:                echo "Running calendar:"
                    129:                cat $TMP
                    130:        fi
                    131:        rm -f $TMP
                    132: fi
1.1       cgd       133:
1.25      lukem     134: if checkyesno check_uucp && \
                    135:     [ -d /var/spool/uucp -a -f /usr/libexec/uucp/clean.daily ]; then
1.1       cgd       136:        echo ""
                    137:        echo "Cleaning up UUCP:"
1.24      lukem     138:        su daemon -c /usr/libexec/uucp/clean.daily
1.1       cgd       139: fi
                    140:
1.25      lukem     141: if checkyesno check_disks; then
1.18      mrg       142:        df -k > $TMP
1.40    ! perry     143:        dump -W > $TMP2
1.18      mrg       144:        if [ -s $TMP -o -s $TMP2 ]; then
                    145:                echo ""
                    146:                echo "Checking subsystem status:"
                    147:                echo ""
                    148:                echo "disks:"
                    149:                if [ -s $TMP ]; then
                    150:                        cat $TMP
                    151:                        echo ""
                    152:                fi
                    153:                if [ -s $TMP2 ]; then
                    154:                        cat $TMP2
                    155:                        echo ""
                    156:                fi
                    157:                echo ""
                    158:        fi
                    159: fi
                    160:
                    161: rm -f $TMP $TMP2
                    162:
1.25      lukem     163: if checkyesno check_mailq; then
1.18      mrg       164:        mailq > $TMP
                    165:        if ! grep -q "^Mail queue is empty$" $TMP; then
                    166:                echo ""
                    167:                echo "mail:"
                    168:                cat $TMP
                    169:        fi
                    170: fi
                    171:
                    172: rm -f $TMP
1.1       cgd       173:
1.25      lukem     174: if checkyesno check_uucp && [ -d /var/spool/uucp ]; then
1.39      veego     175:        su -m uucp -c "uustat -a" > $TMP
1.18      mrg       176:        if [ -s $TMP ]; then
                    177:                echo ""
                    178:                echo "uucp:"
1.21      mikel     179:                cat $TMP
1.18      mrg       180:        fi
                    181: fi
1.1       cgd       182:
1.18      mrg       183: rm -f $TMP
1.1       cgd       184:
1.25      lukem     185: if checkyesno check_network; then
1.18      mrg       186:        echo ""
                    187:        echo "network:"
1.33      itojun    188:        netstat -inv
1.1       cgd       189:        echo ""
1.18      mrg       190:        t=/var/rwho/*
                    191:        if [ "$t" != '/var/rwho/*' ]; then
                    192:                ruptime
                    193:        fi
1.1       cgd       194: fi
                    195:
1.25      lukem     196: if checkyesno run_fsck; then
1.18      mrg       197:        echo ""
                    198:        echo "Checking filesystems:"
1.37      lukem     199:        fsck -n -f | grep -v '^\*\* Phase'
1.18      mrg       200: fi
1.1       cgd       201:
                    202: echo ""
1.25      lukem     203: if checkyesno run_rdist && [ -f /etc/Distfile ]; then
1.1       cgd       204:        echo "Running rdist:"
1.20      mikel     205:        if [ -d /var/log/rdist ]; then
1.30      enami     206:                logf=`date +%Y.%b.%d`
1.20      mikel     207:                rdist -f /etc/Distfile 2>&1 | tee /var/log/rdist/$logf
                    208:        else
                    209:                rdist -f /etc/Distfile
                    210:        fi
1.1       cgd       211: fi
                    212:
1.25      lukem     213: if checkyesno run_security; then
1.36      lukem     214:        SECOUT="$DAILYDIR/sec"
                    215:        sh /etc/security 2>&1 > "$SECOUT"
                    216:        if [ ! -s "$SECOUT" ]; then
                    217:                echo "Nothing to report on $date" > "$SECOUT"
1.28      lukem     218:        fi
1.36      lukem     219:        mail -s "$host daily insecurity output for $date" $MAILTO < "$SECOUT"
1.34      hubertf   220: fi
                    221:
                    222: if checkyesno run_skeyaudit; then
                    223:        echo ""
                    224:        echo "Checking remaining s/key OTPs:"
                    225:        skeyaudit
1.31      ad        226: fi
                    227:
                    228: if [ -f /etc/daily.local ]; then
                    229:        echo ""
                    230:        echo "Running /etc/daily.local:"
                    231:        . /etc/daily.local
1.18      mrg       232: fi

CVSweb <webmaster@jp.NetBSD.org>