[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: How to enable Debian to automatically clear the tmp directory



Am 2008-08-28 10:39:05, schrieb Ryan Klein:
> I have been searching for a way to have Debian automatically remove 
> files in the /tmp directory after a period of time. We need it mainly 
> for removing old session files that grow quite rapidly (a rate of 10 per 
> second). I am hoping Debian has a built in utility, otherwise a package 
> will suffice if not a simple bash script. Thanks for your input.

With 10 seonds you will not be very happy...

I think, you are searching for

----[ '/etc/defaults/rcS' ]---------------------------------------------
#
# /etc/default/rcS
#
# Default settings for the scripts in /etc/rcS.d/
#
# For information about these variables see the rcS(5) manual page.
#
# This file belongs to the "initscripts" package.

TMPTIME=0
SULOGIN=no
DELAYLOGIN=no
UTC=no
VERBOSE=no
FSCKFIX=no
RAMRUN=no
RAMLOCK=no
------------------------------------------------------------------------

and set TMPTIME to 1 which mean ONE DAY,  but this  will  only  work  on
bootup...

and maybe you can use a cronjob executed each minute and the codesniplet

----[ '/etc/init.d/bootclean' ]-----------------------------------------
clean_tmp() {
        cd /tmp || { log_failure_msg "bootclean: Could not cd to /tmp." ; return 1 ; }

        #
        # Only clean out /tmp if it is world-writable. This ensures
        # it really is a/the temp directory we're cleaning.
        #
        [ "$(find . -maxdepth 0 -perm -002)" = "." ] || return 0

        if [ ! "$TMPTIME" ]
        then
                log_warning_msg "Using default TMPTIME 0."
                TMPTIME=0
        fi

        [ "$VERBOSE" = no ] || log_action_begin_msg "Cleaning /tmp"

        #
        # Remove regardless of TMPTIME setting
        #
        rm -f .X*-lock

        #
        # Don't clean remaining files if TMPTIME is negative or 'infinite'
        #
        case "$TMPTIME" in
          -*|infinite|infinity)
                [ "$VERBOSE" = no ] || log_action_end_msg 0 "skipped"
                return 0
                ;;
        esac

        #
        # Wipe /tmp, excluding system files, but including lost+found
        #
        # If TMPTIME is set to 0, we do not use any ctime expression
        # at all, so we can also delete files with timestamps
        # in the future!
        #
        if [ "$TMPTIME" = 0 ]
        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 )'

        mkflagfile /tmp/.clean || return 1

        report_err()
        {
                if [ "$VERBOSE" = no ]
                then
                        log_failure_msg "bootclean: Failure cleaning /tmp."
                else
                        log_action_end_msg 1 "bootclean: Failure cleaning /tmp"
                fi
        }

        #
        # First remove all old files...
        # (Use xargs here so that only one additional process gets created)
        #
        find . -depth -xdev $TEXPR $EXCEPT ! -type d \
                -print0 | xargs -0r rm -f -- \
                || { report_err ; return 1 ; }

        #
        # ...and then all empty directories
        # (Don't use xargs here because dirs must be removed one by one from
        # the bottom up)
        #
        find . -depth -xdev $DEXPR $EXCEPT -type d -empty \
                -exec rmdir \{\} \; \
                || { report_err ; return 1 ; }

        [ "$VERBOSE" = no ] || log_action_end_msg 0
        return 0
}
------------------------------------------------------------------------

and you should be careful WHAT you are DELETING!

Thanks, Greetings and nice Day/Evening
    Michelle Konzack
    Systemadministrator
    24V Electronic Engineer
    Tamay Dogan Network
    Debian GNU/Linux Consultant


-- 
Linux-User #280138 with the Linux Counter, http://counter.li.org/
##################### Debian GNU/Linux Consultant #####################
Michelle Konzack   Apt. 917                  ICQ #328449886
+49/177/9351947    50, rue de Soultz         MSN LinuxMichi
+33/6/61925193     67100 Strasbourg/France   IRC #Debian (irc.icq.com)

Attachment: signature.pgp
Description: Digital signature


Reply to: