有时竭尽全力给服务器上部署的服务瘦了身了,服务器的剩余空间还是只剩下百来M,甚至十几M。部署其上的服务还频繁报错,说:“动力不足。”
这种时候,说明问题已不出在服务本身了。可能需要从服务器的其他地方来入手,清理空间。
排查
不妨采取以下步骤排查问题:
- 检查数据库大小:有些服务的内容(如WordPress的文章、页面和评论,Friendica甚至会有媒体文件)都存储在数据库中。随着时间的推移,数据库可能变得非常大。可以使用phpMyAdmin或其他数据库管理工具查看数据库的大小。
- 其他文件和目录:确保查看服务器的其他目录和文件,特别是在服务器的主目录中,看看是否有其他大文件或目录。
- 邮件账户:如果服务器还托管电子邮件,那么邮件账户可能会使用大量的磁盘空间。
- 日志文件:服务器的日志文件有时会占用大量的空间。检查如
/var/log/
这样的目录。 - 隐藏文件:确保查看所有的隐藏文件。例如,
.backup
或.snapshot
这样的目录有时可能会包含自动备份,它们可能会非常大。 - 磁盘配额:查看是否设置了磁盘配额。有时,虽然物理磁盘有空间,但由于配额限制,您可能无法使用全部空间。
- 使用磁盘分析工具:使用如
du -sh *
或ncdu
这样的命令来分析服务器的磁盘使用情况,找出最大的文件和目录。 - 检查磁盘错误:有时,磁盘错误或文件系统问题可能会导致磁盘空间显示不正确。可以考虑运行文件系统检查工具。
- 联系主机提供商:如果使用的是托管服务,并且无法确定为什么空间不足,联系主机提供商以获取帮助。
清理系统日志
系统日志是一个明显的优化点。日志文件可以变得非常大,特别是如果有某个服务频繁地写入日志。应该检查这些日志,看看是否有任何不需要的日志,或者是否有某个服务产生了异常的日志数量。可以使用日志轮转工具(如logrotate
)来自动管理和压缩日志。
一般来说,以下的日志有可能会变得较为庞大:
- journal: 这是有机会变得最大的单一日志,能够占用大量的空间。
journal
通常与systemd-journald
服务相关,该服务提供了系统日志功能。可以考虑限制其大小或清理旧的日志条目。使用journalctl
命令可以管理这些日志。- 清理旧的日志:
journalctl --vacuum-size=1G
将会保留最后1G的日志并删除其他。也可以把1G
改成实际需要的任何大小,例如512M
。 - 设置最大日志大小:编辑
/etc/systemd/journald.conf
文件,设置SystemKeepFree
或SystemKeepFree
参数来限制日志大小。这样做可以将前一条所做的大小限制持久化,一劳永逸。- 前往
/etc/systemd/journald.conf
文件,在其中设置SystemMaxUse
或RuntimeMaxUse
参数。例如:SystemMaxUse=512M
设置完毕后,需要重启systemd-journald
服务来应用更改:sudo systemctl restart systemd-journald
这样做将控制日志文件的大小,并防止它们占用过多的磁盘空间。
- 前往
- 清理旧的日志:
- syslog 和相关文件(如 kern.log 和 daemon.log): 这些文件也会占用了相对较大的空间。可以考虑使用
logrotate
来压缩、轮转和/或删除旧的日志。 - nginx、Apache和其他服务日志:随着时间的推移,它们可能会增长。特别是如果服务被大量访问,或者频繁出错,日志文件也会变到很大,可以G计。也可以考虑为这些日志设置轮转。