xref: /minix3/etc/usr/daily (revision 69eead77ff7b92014d108017d0765cfa7d3ddba7)
1b684a8edSBen Gras#!/bin/sh
2b684a8edSBen Gras#
3b684a8edSBen Gras# daily - daily cleanup of the system.
4b684a8edSBen Gras
59748a653SBen Gras# Doesn't make sense when running from CD
6*69eead77SJean-Baptiste Boricif [ ! -z $(sysenv bootcd) ]
79748a653SBen Grasthen	exit
89748a653SBen Grasfi
99748a653SBen Gras
10b684a8edSBen Grascase "$#:$1" in
11b684a8edSBen Gras1:cron|1:boot)
12b684a8edSBen Gras    caller=$1
13b684a8edSBen Gras    ;;
14b684a8edSBen Gras*)  echo >&2 "Usage: $0 cron|boot"
15b684a8edSBen Gras    exit 1
16b684a8edSBen Grasesac
17b684a8edSBen Gras
18b684a8edSBen Grastest -d /usr/adm || exit
19b684a8edSBen Grascd /usr/adm || exit
20b684a8edSBen Gras
21b684a8edSBen Gras# Last run must have been on a previous day.
22b684a8edSBen Grastimestamp=daily.lasttime
23b684a8edSBen Grasif test -f $timestamp
24b684a8edSBen Grasthen
25b684a8edSBen Gras    set -- `ls -lT $timestamp`
26b684a8edSBen Gras    test "$6 $7 $9" = "$(date '+%b %d %Y')" && exit
27b684a8edSBen Grasfi
282720b68fSBen Gras
292720b68fSBen Gras# Update last-run time
302720b68fSBen Grasecho >$timestamp
31b684a8edSBen Gras
32b684a8edSBen Gras# Remove three day old files from various tmp dirs.
33b684a8edSBen Grascleantmp -3 /tmp /usr/tmp /usr/preserve /usr/spool/lpd /usr/spool/at/past
34b684a8edSBen Gras
35b684a8edSBen Gras# Truncate log files in /usr/adm.
36b684a8edSBen Grastest -d old || mkdir old || exit
37b684a8edSBen Gras
38b684a8edSBen Grascycle()
39b684a8edSBen Gras{
40b684a8edSBen Gras    # Cycle a log file if larger than a size in kilobytes.
41b684a8edSBen Gras    local size="`expr "$1" + "$1"`"
42b684a8edSBen Gras    local log="$2"
43b684a8edSBen Gras
44b684a8edSBen Gras    if test -f "$log" && test -n "$(find "$log" -size +"$size")"
45b684a8edSBen Gras    then
46b684a8edSBen Gras	test -f "old/$log.2" && cp -p "old/$log.2" "old/$log.3"
47b684a8edSBen Gras	test -f "old/$log.1" && cp -p "old/$log.1" "old/$log.2"
48b684a8edSBen Gras	cp -p "$log" "old/$log.1"
49b684a8edSBen Gras	: > "$log"
50b684a8edSBen Gras    fi
51b684a8edSBen Gras}
52b684a8edSBen Gras
53b684a8edSBen Grascycle 100 wtmp
54b684a8edSBen Grascycle 100 log
55b684a8edSBen Grascycle  20 ftplog
56b684a8edSBen Grascycle 200 aftplog
57b684a8edSBen Gras
58b684a8edSBen Gras# Make copies of /etc/passwd and /etc/shadow if they have been changed.
59b684a8edSBen Grasfor file in passwd shadow
60b684a8edSBen Grasdo
61b684a8edSBen Gras    if cmp -s /etc/$file old/$file.1
62b684a8edSBen Gras    then
63b684a8edSBen Gras	# Fine.
64b684a8edSBen Gras    else
65b684a8edSBen Gras	test -f old/$file.2 && cp -p old/$file.2 old/$file.3
66b684a8edSBen Gras	test -f old/$file.1 && cp -p old/$file.1 old/$file.2
67b684a8edSBen Gras	test -f /etc/$file && cp -p /etc/$file old/$file.1
68b684a8edSBen Gras    fi
69b684a8edSBen Grasdone
70b684a8edSBen Gras
7135abd486SBen Gras# Update manpage index but don't warn about nonexistant dirs
72be81e4ecSpikpik/usr/libexec/makewhatis -f 2>/dev/null
730c3983b2SBen Gras
74b684a8edSBen Gras# Continue with a local script if present.
75b684a8edSBen Grastest -f /usr/local/etc/daily && sh /usr/local/etc/daily $caller
76b684a8edSBen Grasexit 0
77