如何在 AWS ec2 Ubuntu 实例 运行 nginx 和 jenkins 上释放 space?

How to free up space on AWS ec2 Ubuntu instance running nginx and jenkins?

我有一个 Ubuntu ec2 实例 运行ning nginx 和 Jenkins。没有更多 space 可用于更新,我尝试释放 space 的每个命令都不起作用。此外,在尝试访问 Jenkins 时,我得到 502 Bad Gateway.

当我 运行 sudo apt-get update 我得到一长串错误,但最突出的是 E: Write error - write (28: No space left on device)

我不知道为什么没有更多 space,或者是什么原因造成的,但是 df -h 给出了以下输出:

Filesystem      Size  Used Avail Use% Mounted on
udev            2.0G     0  2.0G   0% /dev
tmpfs           394M  732K  393M   1% /run
/dev/xvda1       15G   15G     0 100% /
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/loop1       56M   56M     0 100% /snap/core18/1988
/dev/loop3       34M   34M     0 100% /snap/amazon-ssm-agent/3552
/dev/loop0      100M  100M     0 100% /snap/core/10958
/dev/loop2       56M   56M     0 100% /snap/core18/1997
/dev/loop4      100M  100M     0 100% /snap/core/10908
/dev/loop5       33M   33M     0 100% /snap/amazon-ssm-agent/2996
tmpfs           394M     0  394M   0% /run/user/1000

我试图通过 运行ning sudo apt-get autoremove 释放 space,它给了我 E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.

我运行sudo dpkg --configure -a得到了pkg: error: failed to write status database record about 'libexpat1-dev:amd64' to '/var/lib/dpkg/status': No space left on device

最后,我 运行 sudo apt-get clean; sudo apt-get autoclean 它给了我以下错误:

Reading package lists... Error!
E: Write error - write (28: No space left on device)
E: IO Error saving source cache
E: The package lists or status file could not be parsed or opened.

任何帮助释放 space 并再次获得服务器 运行ning 的帮助将不胜感激。

对于服务器(如果您不测试 Jenkins 和 Nginx)运行 Jenkins 和 Nginx,您必须以更好的方式管理磁盘分区。以下是解决您的问题的几种可能方法。

  1. 从 AWS EBS 控制台将现有 EC2 根 EBS 卷大小从 15 GB 扩展到更高的值。

  2. 找出占用高位磁盘的文件space,如果不需要则删除它们。最有可能的日志文件占用磁盘 spaces。您可以执行以下命令找出占用更多space.

    的位置

    cd /

    du -sch * | grep G

  3. 向您的实例添加额外的 EBS 卷并将其挂载到 Jenkins 主目录,或更多磁盘 space 使用的位置。

就我而言,我有一个包含 nginx、postgresql 和 gunicorn 的应用程序,它们都是容器化的。我按照这些步骤解决了我的问题,

  1. 我试图弄清楚哪些文件占用我的存储空间最多 下面的命令

    sudo find / -type f -size +10M -exec ls -lh {} ;

  2. 从截图中可以看出,原来未使用的和docker相关的容器是来源

  1. 然后我清除所有未使用的、停止的或悬空的图像

    docker系统修剪-a

最后我能够回收大约 4.4 GB!