正如我们所知/tmp目录在每个启动时都会清除,因为默认情况下TMPTIME为0。
在这里您可以更改以下文件中的时间:
/etc/default/rcS
清除每个启动并不是像服务器那样重新启动的机器的理想选择。由于我的服务器有378天的正常运行时间,因此我有超过500,000个文件在/TMP中占用5GB空间。
我的问题是如何在小时内设置tmptime SO/TMP文件自动删除。
我该怎么办?
TMPTIME
用于配置在启动时删除临时文件的脚本。它可以设置最高年龄在被删除之前,例如如果将其设置为5,则在脚本运行时将删除5天以上的所有内容。脚本本身是安装您的/tmp
目录的脚本,通常仅在重新启动时运行。如您所说,该服务器并不经常重新启动,因此这对您几乎没有用。
解决问题的可能解决方案是tmpreaper
命令。可以从包装存储库中获得,例如debian Systems或sudo yum -y install tmpreaper
的sudo apt-get install tmpreaper
基于RedHat的系统。
安装后,它可以按以下方式运行:
tmpreaper [options] <time_spec> <dirs>
举例说明从/tmp
目录中删除超过12个小时的所有内容,您将要做:
tmpreaper 12h /tmp
然后,您可以将其添加到一个小时的crontab中,以便每个小时都会删除超过12小时的文件,例如:
17 * * * * tmpreaper 12h /tmp
在测试时,我会使用-t
选项建议,以确认它将在正确运行之前删除您的期望。这将列出它将删除的文件而不会实际删除。要获得更多罚款的控制,请查看man tmpreaper
以获取控制已删除的文件类型的选项。
如果您不想安装tmpreaper
,则可以使用find
命令进行操作,例如find /tmp -mmin +720 -delete
至少在12小时前删除修改文件。tmpreaper
更专注于手头的任务,因此您可能会发现使用更容易。