xref: /freebsd/usr.sbin/periodic/etc/daily/100.clean-disks (revision d0b2dbfa0ecf2bbc9709efc5e20baf8e4b44bbbf)
1*81ea85a8SBrad Davis#!/bin/sh
2*81ea85a8SBrad Davis#
3*81ea85a8SBrad Davis#
4*81ea85a8SBrad Davis# Remove garbage files more than $daily_clean_disks_days days old
5*81ea85a8SBrad Davis#
6*81ea85a8SBrad Davis
7*81ea85a8SBrad Davis# If there is a global system configuration file, suck it in.
8*81ea85a8SBrad Davis#
9*81ea85a8SBrad Davisif [ -r /etc/defaults/periodic.conf ]
10*81ea85a8SBrad Davisthen
11*81ea85a8SBrad Davis    . /etc/defaults/periodic.conf
12*81ea85a8SBrad Davis    source_periodic_confs
13*81ea85a8SBrad Davisfi
14*81ea85a8SBrad Davis
15*81ea85a8SBrad Daviscase "$daily_clean_disks_enable" in
16*81ea85a8SBrad Davis    [Yy][Ee][Ss])
17*81ea85a8SBrad Davis	if [ -z "$daily_clean_disks_days" ]
18*81ea85a8SBrad Davis	then
19*81ea85a8SBrad Davis	    echo '$daily_clean_disks_enable is set but' \
20*81ea85a8SBrad Davis		'$daily_clean_disks_days is not'
21*81ea85a8SBrad Davis	    rc=2
22*81ea85a8SBrad Davis	elif [ -z "$daily_clean_disks_files" ]
23*81ea85a8SBrad Davis	then
24*81ea85a8SBrad Davis	    echo '$daily_clean_disks_enable is set but' \
25*81ea85a8SBrad Davis		'$daily_clean_disks_files is not'
26*81ea85a8SBrad Davis	    rc=2
27*81ea85a8SBrad Davis	else
28*81ea85a8SBrad Davis	    echo ""
29*81ea85a8SBrad Davis	    echo "Cleaning disks:"
30*81ea85a8SBrad Davis	    set -f noglob
31*81ea85a8SBrad Davis	    args="-name "`echo "$daily_clean_disks_files" |
32*81ea85a8SBrad Davis		sed -e 's/^[ 	]*//' \
33*81ea85a8SBrad Davis		    -e 's/[ 	]*$//' \
34*81ea85a8SBrad Davis		    -e 's/[ 	][ 	]*/ -o -name /g'`
35*81ea85a8SBrad Davis
36*81ea85a8SBrad Davis	    case "$daily_clean_disks_verbose" in
37*81ea85a8SBrad Davis		[Yy][Ee][Ss])
38*81ea85a8SBrad Davis		    print=-print;;
39*81ea85a8SBrad Davis		*)
40*81ea85a8SBrad Davis		    print=;;
41*81ea85a8SBrad Davis	    esac
42*81ea85a8SBrad Davis
43*81ea85a8SBrad Davis	    rc=$(find / \( ! -fstype local -o -fstype rdonly \) -prune -o \
44*81ea85a8SBrad Davis		\( $args \) -atime +$daily_clean_disks_days \
45*81ea85a8SBrad Davis		-execdir rm -df {} \; $print | tee /dev/stderr | wc -l)
46*81ea85a8SBrad Davis	    [ -z "$print" ] && rc=0
47*81ea85a8SBrad Davis	    [ $rc -gt 1 ] && rc=1
48*81ea85a8SBrad Davis	    set -f glob
49*81ea85a8SBrad Davis	fi;;
50*81ea85a8SBrad Davis
51*81ea85a8SBrad Davis    *)  rc=0;;
52*81ea85a8SBrad Davisesac
53*81ea85a8SBrad Davis
54*81ea85a8SBrad Davisexit $rc
55