You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 lines
1.8 KiB
Plaintext

# mounted-tmp - Clean /tmp directory
#
# Cleans up the /tmp directory when it does not exist as a temporary
# filesystem.
description "Clean /tmp directory"
start on (mounted MOUNTPOINT=/tmp) or (mounted MOUNTPOINT=/usr)
# The "/tmp" here is just a default and is overridden by the "start on"
# case above. It protects someone from running this job directly and
# having no $MOUNTPOINT defined.
env MOUNTPOINT=/tmp
task
script
if [ x$MOUNTPOINT = x/tmp ] && [ ! -x /usr/bin/find ] ; then
touch /tmp/.delayed_mounted_tmp_clean
exit 0
elif [ x$MOUNTPOINT = x/usr ] ; then
[ -f /tmp/.delayed_mounted_tmp_clean ] || exit 0
rm /tmp/.delayed_mounted_tmp_clean
MOUNTPOINT=/tmp
fi
. /etc/default/rcS
cd "${MOUNTPOINT}" || exit 1
rm -f .X*-lock
case "${TMPTIME}" in
-*|infinite|infinity)
exit 0
;;
esac
if [ "${TMPTIME}" = "0" -o -z "${TMPTIME}" ]
then
TEXPR=""
DEXPR=""
else
TEXPR="-mtime +${TMPTIME} -ctime +${TMPTIME} -atime +${TMPTIME}"
DEXPR="-mtime +${TMPTIME} -ctime +${TMPTIME}"
fi
EXCEPT='! -name .
! ( -path ./lost+found -uid 0 )
! ( -path ./quota.user -uid 0 )
! ( -path ./aquota.user -uid 0 )
! ( -path ./quota.group -uid 0 )
! ( -path ./aquota.group -uid 0 )
! ( -path ./.journal -uid 0 )
! ( -path ./.clean -uid 0 )
! ( -path "./...security*" -uid 0 )'
# Remove all old files, then all empty directories
find . -depth -xdev $TEXPR $EXCEPT ! -type d -delete
find . -depth -xdev $DEXPR $EXCEPT -type d -empty -delete
# Check if we have enough space in /tmp, and if not, mount a tmpfs there
avail=`df -kP /tmp | awk 'NR==2 { print $4 }'`
if [ "$avail" -lt 1000 ]; then
mount -t tmpfs -o size=1048576,mode=1777 overflow /tmp
fi
end script