我有一个带有 DigitalOcean 的 Ubuntu 服务器 VPS。这个 Ubuntu 服务器包含一个非常简单的 Web 服务器和网站设置,仅此而已。但是,每当我创建 droplet 的映像(使用 DigitalOcean 控制面板)时,大小总是在增加。最后一个映像是 13GB,几周前是 9GB...几个月前是 7GB...5GB...。
因此磁盘空间被占用了,但我不知道为什么。
网站和其他相关资产(包括所有日志文件)所在的目录/var/
仅使用了 1.3GB。因此,显然这不是问题的根源。
我如何确定哪些东西占用了磁盘空间?是的,我知道我可以使用 du 等,但问题是我不知道哪些东西通常会占用大量空间,哪些不会。我想看看这个扩张磁盘使用情况正在发生,因此我可以调查是否可以清除旧的/不必要的文件。
你能告诉我 ubuntu 服务器上的哪些目录/文件通常需要随着时间的推移进行修剪以防止像我遇到的那样浪费磁盘空间吗?
我已启用自动系统安全更新。这会导致问题吗?我该如何检查?我可以清除旧文件吗?它们在哪里?
答案1
首先,我如何确定是什么占用了该磁盘空间?
find . -type f -exec du -h {} + | sort -r -h > /tmp/files.txt
按大小顺序列出文件。
但问题是我不知道什么通常会占用大量空间,什么不会。
我们也不会。您可以做的是使用上述命令创建所有文件的列表,并将其与下周的同一列表进行比较。查找变大的文件或新文件(diff
这是一个很好的工具)。
其次,您能告诉我 ubuntu 服务器上的哪些目录/文件通常需要随着时间的推移进行修剪以防止像我遇到的那样浪费磁盘空间吗?
- 你安装了软件吗?Ubuntu 会保留软件包缓存。但通常这不是问题:服务器有自己的软件,工作时不应该安装新软件。只有更新,而且更新很小(主要是替换现有软件)。
第三,我启用了自动系统安全更新。这会导致问题吗?我该如何检查?我可以清除旧文件吗?它们在哪里?
- 不
- 不。
- 这取决于你决定。
- 例如var/cache/apt/archives 占用大量空间用于删除缓存存档包。
答案2
您的磁盘使用量随着时间的推移而增加可能有几个原因:
日志文件:您的 Web 服务器和其他服务的日志文件会随着时间的推移而增大,并占用大量磁盘空间。
自动更新:如果不清理旧的更新文件,启用自动系统安全更新可能会导致磁盘使用量随着时间的推移而增加。Ubuntu 将旧版本的软件包存储在目录中
/var/cache/apt/archives/
,因此如果不清理此目录,它会随着时间的推移而增长。数据存储:如果您的 Web 应用程序在服务器上存储用户数据或其他文件,这也可能会导致磁盘使用量增长。
对于 Ubuntu 服务器上通常需要随时间修剪的目录,以下是几个示例:
目录
/var/log/
:此目录包含各种服务的日志文件。您可以使用该logrotate
工具定期自动轮换和修剪日志文件。目录
/var/cache/apt/archives/
:此目录存储了 Ubuntu 包管理器下载的包。您可以使用命令清理旧包apt-get autoclean
。该
/tmp/
目录:该目录包含各种应用程序创建的临时文件。您可以使用该tmpreaper
工具自动清理此目录中的旧文件。
要检查自动系统安全更新是否导致了问题,您可以检查/var/log/apt/
目录中与包更新相关的日志。
您还可以检查/var/log/unattended-upgrades/
目录中与自动安全更新相关的日志。
要清理旧的更新文件,您可以使用该apt-get autoremove
命令。