rizhas@rizhas-laptop:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda7 67G 58G 5,2G 92% /
none 4,0K 0 4,0K 0% /sys/fs/cgroup
udev 1,5G 12K 1,5G 1% /dev
tmpfs 303M 1,2M 302M 1% /run
none 5,0M 0 5,0M 0% /run/lock
none 1,5G 348K 1,5G 1% /run/shm
none 100M 80K 100M 1% /run/user
overflow 1,0M 1,0M 0 100% /tmp
overflow 1,0M 1,0M 0 100% /tmp
如何清理/tmp
?
答案1
/tmp 应该在重启时清理,但是如果你不重启(这对于服务器来说很正常),清理就不会发生
find /tmp -ctime +10 -exec rm -rf {} +
将删除所有超过 10 天的文件和文件夹。您可能希望将其添加到每日 cron 中。
更新
在下面的评论中,@sfussenegger 建议使用略有不同的命令格式,这可能更适合您的需求和您正在操作的系统。
sudo find /tmp -type f -atime +10 -delete
此处的命令用于sudo
确保所有内容都被删除(或者你可以以 root 身份运行它),对尚未被删除的文件进行操作访问超过 10 天,并且只删除文件,而不是文件夹。它还用于-delete
避免执行rm
命令
答案2
您可以假设 tmp 目录(/tmp/ /usr/tmp 等)内的任何内容都可以删除。在开始删除之前,请停止您正在使用的所有程序和服务,因为程序可以使用 /tmp/ 来临时存储该会话的信息。如果您正在运行 mysql 和/或 apache,请执行此操作。/tmp/sudo service mysql stop
目录sudo service apache2 stop
中文件的名称大多数时候都会提示它们属于哪个程序。
因此从命令行...
cd /tmp/
pwd
sudo rm -r *
将清空 /tmp/ 目录并删除所有文件和子目录。请注意正确输入。pwd
其中的命令不是必需的,但应该显示/tmp
。
如果您想要以交互方式进行(因此您需要确认删除):
cd /tmp/
sudo rm -ri *
还值得注意的是,重新启动也会清除 /tmp,如下所示:/tmp 目录是如何清理的?因此,如果重启后 /tmp/ 中充满了文件,您需要调查这些文件的来源。
我还想说的是,/tmp 的 1 Mb 空间并不大。您使用 MySQL 吗?请参阅https://unix.stackexchange.com/a/76058/10017关于如何修复此问题(感谢@drc)
答案3
该tmpreaper
程序可用于清理/tmp定期删除。此程序会删除在给定时间范围内(通常为两周)未访问的所有内容。要使此功能正常工作,它所在的文件系统应启用该atimes
选项。如果您使用临时文件,看起来你正在这样做,那么你应该没问题。
当然,重启也会清除/tmp,但那样就太无聊了。
答案4
运行类似 的命令之前请务必小心rm -r ./*
。一旦运行该命令,将很难甚至不可能恢复任何数据。
全部都将被移除。确保您要删除的目录是正确的。
有更安全的方法来处理事情。
# sudo rm -r /tmp/*
这样,当您意外地从 shell 内部运行此命令时history
,它就不会删除错误的文件(除非您将它们保存在/tmp
)。