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