如何在Linux CentOS系统上清除主系统驱动器上的空间?

如何在Linux CentOS系统上清除主系统驱动器上的空间?,linux,centos,Linux,Centos,如果这听起来很愚蠢,很抱歉,但我不知道该怎么办 我有一个AmazonEC2实例,它有一个完全完整的临时驱动器(包含所有系统文件的主驱动器)。几乎所有我安装了Apache、MySQL、Sphinx、我的应用程序等的目录都位于单独的物理驱动器上,并且与临时驱动器有符号链接。据我所知,这些数据或日志都没有写入临时驱动器,所以我不确定空间发生了什么 显然,许多系统的东西仍然在短暂的驱动上,但我不知道如何清理这些东西来腾出空间。我最好的猜测是,亚马逊在对系统进行自动更新时填满了硬盘。我正在尝试安装一些新软

如果这听起来很愚蠢,很抱歉,但我不知道该怎么办

我有一个AmazonEC2实例,它有一个完全完整的临时驱动器(包含所有系统文件的主驱动器)。几乎所有我安装了Apache、MySQL、Sphinx、我的应用程序等的目录都位于单独的物理驱动器上,并且与临时驱动器有符号链接。据我所知,这些数据或日志都没有写入临时驱动器,所以我不确定空间发生了什么

显然,许多系统的东西仍然在短暂的驱动上,但我不知道如何清理这些东西来腾出空间。我最好的猜测是,亚马逊在对系统进行自动更新时填满了硬盘。我正在尝试安装一些新软件包,并通过YUM更新所有系统软件包,但驱动器没有空间


我该怎么办?

您可以使用unix磁盘实用程序命令
du
查看是什么占用了初学者的所有空间

du --max-depth=1 -h /
其中
/
可以是任何从根开始的目录,它将以人类可读的形式(-h)显示大小,而不会进一步向下递归

一旦你发现你想移除的大东西,你可以通过

rm <thing you want to remove>
如果它是一个目录,那么您需要添加
-r

rm -r /dir/to/remove
为了保护您自己,建议在每个
rm
呼叫中添加
-i
开关,这会迫使您确认要删除文件

如果有很多只读文件要删除,那么可以添加
-f
开关以强制删除,注意这一点

请注意,
rm
接受多个参数,因此,当您指定绝对路径时,请确保在引号内或没有任何空格,尤其是当您将其作为
超级
执行时,尤其是使用
-r
-f
选项。(否则,你将加入到那些做了
rm-rf/some/directory/*
并无意中杀死了他们的
/
的人中)

如果您只想查找大文件并删除这些文件,那么您也可以使用
find

find / -type f -size +100M
将仅搜索大小大于100MB的文件(
-size+100M

随后,您可以使用相同的命令删除它们

find / -type f -size +100M -exec rm \{\} \;
-exec
执行一个程序,该程序通过它找到的文件或文件夹(
\{\}
),需要以
\\终止


不要忘记,您可以将
-i
添加到
rm
以批准或不批准删除。

这非常有效。在更大的驱动器(超过几百GB)上可能需要几分钟:


输出将首先是最大的文件。您可以使用普通的“less”命令翻阅结果。。。空格键(下一页)和b(上一页)。

谢谢。这很快帮助我找到了我以为在其他地方写的HTTPD日志。旧日志在/var/log/httpd中占用了大约5GB的空间。当您真的不知道文件可能隐藏在哪里时,我发现在以下文件夹中运行此命令(
du--max depth=1-h./
)几乎总是有助于追踪罪犯:/etc、/local、/sys、,或者/var。如果您使用的是amazon EC2,请从/var/cache/yum/*开始-发布一个简单的命令:sudo-yum-clean-all可以腾出一些喘息时间,以便进一步调查。还可以查看邮件日志-默认情况下AWS会保存一个月,但是如果您有大量响应输出的cron作业(默认情况下会将其发送到用户邮件spool),它们可能会变得相当大。
find / -type f -size +100M -exec rm \{\} \;
find /directory/to/scan/ -type f -exec du -a {} + | sort -n -r | less