Rev | Line | |
---|
[9] | 1 | #!/bin/sh
|
---|
| 2 | #
|
---|
| 3 | # daily - daily cleanup of the system.
|
---|
| 4 |
|
---|
| 5 | # Doesn't make sense when running from CD
|
---|
| 6 | if [ -f /CD ]
|
---|
| 7 | then exit
|
---|
| 8 | fi
|
---|
| 9 |
|
---|
| 10 | case "$#:$1" in
|
---|
| 11 | 1:cron|1:boot)
|
---|
| 12 | caller=$1
|
---|
| 13 | ;;
|
---|
| 14 | *) echo >&2 "Usage: $0 cron|boot"
|
---|
| 15 | exit 1
|
---|
| 16 | esac
|
---|
| 17 |
|
---|
| 18 | test -d /usr/adm || exit
|
---|
| 19 | cd /usr/adm || exit
|
---|
| 20 |
|
---|
| 21 | # Last run must have been on a previous day.
|
---|
| 22 | timestamp=daily.lasttime
|
---|
| 23 | if test -f $timestamp
|
---|
| 24 | then
|
---|
| 25 | set -- `ls -lT $timestamp`
|
---|
| 26 | test "$6 $7 $9" = "$(date '+%b %d %Y')" && exit
|
---|
| 27 | fi
|
---|
| 28 | >$timestamp
|
---|
| 29 |
|
---|
| 30 | # Remove three day old files from various tmp dirs.
|
---|
| 31 | cleantmp -3 /tmp /usr/tmp /usr/preserve /usr/spool/lpd /usr/spool/at/past
|
---|
| 32 |
|
---|
| 33 | # Truncate log files in /usr/adm.
|
---|
| 34 | test -d old || mkdir old || exit
|
---|
| 35 |
|
---|
| 36 | cycle()
|
---|
| 37 | {
|
---|
| 38 | # Cycle a log file if larger than a size in kilobytes.
|
---|
| 39 | local size="`expr "$1" + "$1"`"
|
---|
| 40 | local log="$2"
|
---|
| 41 |
|
---|
| 42 | if test -f "$log" && test -n "$(find "$log" -size +"$size")"
|
---|
| 43 | then
|
---|
| 44 | test -f "old/$log.2" && cp -p "old/$log.2" "old/$log.3"
|
---|
| 45 | test -f "old/$log.1" && cp -p "old/$log.1" "old/$log.2"
|
---|
| 46 | cp -p "$log" "old/$log.1"
|
---|
| 47 | : > "$log"
|
---|
| 48 | fi
|
---|
| 49 | }
|
---|
| 50 |
|
---|
| 51 | cycle 100 wtmp
|
---|
| 52 | cycle 100 log
|
---|
| 53 | cycle 20 ftplog
|
---|
| 54 | cycle 200 aftplog
|
---|
| 55 |
|
---|
| 56 | # Make copies of /etc/passwd and /etc/shadow if they have been changed.
|
---|
| 57 | for file in passwd shadow
|
---|
| 58 | do
|
---|
| 59 | if cmp -s /etc/$file old/$file.1
|
---|
| 60 | then
|
---|
| 61 | # Fine.
|
---|
| 62 | else
|
---|
| 63 | test -f old/$file.2 && cp -p old/$file.2 old/$file.3
|
---|
| 64 | test -f old/$file.1 && cp -p old/$file.1 old/$file.2
|
---|
| 65 | test -f /etc/$file && cp -p /etc/$file old/$file.1
|
---|
| 66 | fi
|
---|
| 67 | done
|
---|
| 68 |
|
---|
| 69 | # Continue with a local script if present.
|
---|
| 70 | test -f /usr/local/etc/daily && sh /usr/local/etc/daily $caller
|
---|
| 71 | exit 0
|
---|
Note:
See
TracBrowser
for help on using the repository browser.