s3: Wait longer after failure, pick up any failed pieces later.
[clinton/scripts.git] / hcoop-clean-tmp
... / ...
CommitLineData
1#!/bin/sh
2
3# Thu Mar 27 13:59:00 EDT 2008 docelic:
4#
5# Clean /tmp for files older than TMPTIME days. Basically the copy of
6# /etc/init/bootclean's clean_tmp().
7#
8# How much files are kept is controlled by existing variable TMPTIME in
9# /etc/default/rcS.
10#
11
12umask 022
13
14. /lib/init/vars.sh
15. /lib/lsb/init-functions
16
17cd /tmp || { log_failure_msg "bootclean: Could not cd to /tmp." ; return 1 ; }
18
19[ "$(find . -maxdepth 0 -perm -002)" = "." ] || return 0
20
21if [ ! "$TMPTIME" ]
22then
23 log_warning_msg "Using default TMPTIME 0."
24 TMPTIME=0
25fi
26
27[ "$VERBOSE" = no ] || log_action_begin_msg "Cleaning /tmp"
28
29rm -f .X*-lock
30
31#
32# Don't clean remaining files if TMPTIME is negative or 'infinite'
33#
34case "$TMPTIME" in
35 -*|infinite|infinity)
36 [ "$VERBOSE" = no ] || log_action_end_msg 0 "skipped"
37 return 0
38 ;;
39esac
40
41if [ "$TMPTIME" = 0 ]
42then
43 TEXPR=""
44 DEXPR=""
45else
46 TEXPR="-mtime +$TMPTIME -ctime +$TMPTIME -atime +$TMPTIME"
47 DEXPR="-mtime +$TMPTIME -ctime +$TMPTIME"
48fi
49
50EXCEPT='! -name .
51 ! ( -path ./lost+found -uid 0 )
52 ! ( -path ./quota.user -uid 0 )
53 ! ( -path ./aquota.user -uid 0 )
54 ! ( -path ./quota.group -uid 0 )
55 ! ( -path ./aquota.group -uid 0 )
56 ! ( -path ./.journal -uid 0 )
57 ! ( -path ./.clean -uid 0 )
58 ! ( -path ./lost+found -uid 0 )
59 ! ( -path './...security*' -uid 0 )'
60
61report_err()
62{
63 if [ "$VERBOSE" = no ]
64 then
65 log_failure_msg "bootclean: Failure cleaning /tmp."
66 else
67 log_action_end_msg 1 "bootclean: Failure cleaning /tmp"
68 fi
69}
70
71#
72# First remove all old files...
73# (Use xargs here so that only one additional process gets created)
74#
75find . -depth -xdev $TEXPR $EXCEPT ! -type d \
76 -print0 | xargs -0r rm -f -- \
77 || { report_err ; return 1 ; }
78
79#
80# ...and then all empty directories
81# (Don't use xargs here because dirs must be removed one by one from
82# the bottom up)
83#
84find . -depth -xdev $DEXPR $EXCEPT -type d -empty \
85 -exec rmdir \{\} \; \
86 || { report_err ; return 1 ; }
87
88[ "$VERBOSE" = no ] || log_action_end_msg 0
89
90exit 0
91
92