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