The files and directories in the tmp directory are cleaned only during a reboot. This can be problematic if you have applications that write a lot to the tmp directory and you do not want to reboot your Linux system. A good solution for periodic cleanup of the tmp directory is the tmpreaper tool.
How to Install and use Tmpreaper
Instaling it is very easy:
sudo apt install tmpreaper
Note that you might need to run that command as sudo to be able to delete files created by other users.
- To be sure that you are not deleting important file, make sure you use the
--test
option to do a dry run:
tmpreaper --test 2d /tmp
if you sure to delete files can do this.
tmpreaper 2d /tmp
OPTIONS
, -h, --help Print a brief version, copyright, and usage statement on stderr, then exit with error status 1. -t, --test Don't actually remove any files, but go through the motions, checking through the directory, then pretend to remove the eligible files. -v, --verbose Print a verbose display. Two levels of verbosity are available---use this option twice to get the most verbose output. The --test option automaticly sets --verbose once. Higher numbers mean more output (max. is 3). To force normal verbosity after --test, use "--verbose=0". This will generally only show error messages. Use "--test --verbose=0 --showdeleted" to give a shellscript-like list of actions that would have been done (see the --showdeleted description below). --showdeleted Show what files and directories are deleted. The output is in the form of shell commands, i.e. "rm /dir/dir2/file" and "rmdir /dir/dir2". When used together with --test, this option will still cause the "shell commands" to be printed, although nothing is really done. Note that this may show more than without --test, as problems removing the file won't be detected (e.g. immutable files). -f, --force Remove files even if EUID doesn't have write access (akin to rm -f). Normally, files owned by the current EUID, with no write bit set are not removed. --delay=x Delay execution at the start for a random time, up to x seconds; if no value is specified, the default maximum time to delay is 256 seconds. This is an option useful in cron scripts to make the execution of tmpreaper less predictable, thus making things a little harder for those who would attempt to use tmpreaper to thwart security. -T x, --runtime=x Execution of tmpreaper will aborted after x seconds; this is to prevent attacks that create many, many files. By default the timeout is set to 55 seconds. A value of 0 will disable this feature, which is not advised as this feature prevents possible race-conditions between different instances of tmpreaper. -m, --mtime Base the decision of whether to remove the file on its mtime, rather than on its atime. -M, --mtime-dir Base the decision of whether to remove the directory on its mtime, rather than on its atime. -c, --ctime Base the decision of whether to remove the file on its ctime, in addition to its atime. Only applicable if the --mtime options is not given! -s, --symlinks Remove symlinks too, not just regular files and directories. -a, --all Remove all file types, not just regular files, symlinks, and directories. --protect '' Protect the files that match thefrom deletion. This option may be used more than once. It has no one letter abbreviation, you must spell out the full word "protect". If you do not enclose the in single quotes, the shell will perform the expansion before tmpreaper reads its argument array. The program does not support that syntax, so you must use single quotes around the glob pattern. tmpreaper will chdir(2) into each of the directories you've specified for cleanup, and check for files matching the there. It then builds a list of them, and uses that to protect them from removal. For example: tmpreaper --test --verbose --protect \ '.X*-{lock,unix,unix/*}' --protect '.ICE-{unix{/*,}}' \ 5d /tmp # 5 day grace period
Leave a Reply
Want to join the discussion?Feel free to contribute!