1*81ea85a8SBrad Davis#!/bin/sh 2*81ea85a8SBrad Davis# 3*81ea85a8SBrad Davis# 4*81ea85a8SBrad Davis# Perform temporary directory cleaning so that long-lived systems 5*81ea85a8SBrad Davis# don't end up with excessively old files there. 6*81ea85a8SBrad Davis# 7*81ea85a8SBrad Davis 8*81ea85a8SBrad Davis# If there is a global system configuration file, suck it in. 9*81ea85a8SBrad Davis# 10*81ea85a8SBrad Davisif [ -r /etc/defaults/periodic.conf ] 11*81ea85a8SBrad Davisthen 12*81ea85a8SBrad Davis . /etc/defaults/periodic.conf 13*81ea85a8SBrad Davis source_periodic_confs 14*81ea85a8SBrad Davisfi 15*81ea85a8SBrad Davis 16*81ea85a8SBrad Daviscase "$daily_clean_tmps_enable" in 17*81ea85a8SBrad Davis [Yy][Ee][Ss]) 18*81ea85a8SBrad Davis if [ -z "$daily_clean_tmps_days" ] 19*81ea85a8SBrad Davis then 20*81ea85a8SBrad Davis echo '$daily_clean_tmps_enable is set but' \ 21*81ea85a8SBrad Davis '$daily_clean_tmps_days is not' 22*81ea85a8SBrad Davis rc=2 23*81ea85a8SBrad Davis else 24*81ea85a8SBrad Davis echo "" 25*81ea85a8SBrad Davis echo "Removing old temporary files:" 26*81ea85a8SBrad Davis 27*81ea85a8SBrad Davis set -f noglob 28*81ea85a8SBrad Davis args="-atime +$daily_clean_tmps_days -mtime +$daily_clean_tmps_days" 29*81ea85a8SBrad Davis args="${args} -ctime +$daily_clean_tmps_days" 30*81ea85a8SBrad Davis dargs="-empty -mtime +$daily_clean_tmps_days" 31*81ea85a8SBrad Davis [ -n "$daily_clean_tmps_ignore" ] && { 32*81ea85a8SBrad Davis args="$args "`echo " ${daily_clean_tmps_ignore% }" | 33*81ea85a8SBrad Davis sed 's/[ ][ ]*/ ! -name /g'` 34*81ea85a8SBrad Davis dargs="$dargs "`echo " ${daily_clean_tmps_ignore% }" | 35*81ea85a8SBrad Davis sed 's/[ ][ ]*/ ! -name /g'` 36*81ea85a8SBrad Davis } 37*81ea85a8SBrad Davis case "$daily_clean_tmps_verbose" in 38*81ea85a8SBrad Davis [Yy][Ee][Ss]) 39*81ea85a8SBrad Davis print=-print;; 40*81ea85a8SBrad Davis *) 41*81ea85a8SBrad Davis print=;; 42*81ea85a8SBrad Davis esac 43*81ea85a8SBrad Davis 44*81ea85a8SBrad Davis rc=$(for dir in $daily_clean_tmps_dirs 45*81ea85a8SBrad Davis do 46*81ea85a8SBrad Davis [ ."${dir#/}" != ."$dir" -a -d $dir ] && cd $dir && { 47*81ea85a8SBrad Davis find -x -d . -type f $args -delete $print 48*81ea85a8SBrad Davis find -x -d . ! -name . -type d $dargs -delete $print 49*81ea85a8SBrad Davis } | sed "s,^\\., $dir," 50*81ea85a8SBrad Davis done | tee /dev/stderr | wc -l) 51*81ea85a8SBrad Davis [ -z "$print" ] && rc=0 52*81ea85a8SBrad Davis [ $rc -gt 1 ] && rc=1 53*81ea85a8SBrad Davis set -f glob 54*81ea85a8SBrad Davis fi;; 55*81ea85a8SBrad Davis 56*81ea85a8SBrad Davis *) rc=0;; 57*81ea85a8SBrad Davisesac 58*81ea85a8SBrad Davis 59*81ea85a8SBrad Davisexit $rc 60