如何在 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,您必须以更好的方式管理磁盘分区。以下是解决您的问题的几种可能方法。
从 AWS EBS 控制台将现有 EC2 根 EBS 卷大小从 15 GB 扩展到更高的值。
或
找出占用高位磁盘的文件space,如果不需要则删除它们。最有可能的日志文件占用磁盘 spaces。您可以执行以下命令找出占用更多space.
的位置
cd /
du -sch * | grep G
或
向您的实例添加额外的 EBS 卷并将其挂载到 Jenkins 主目录,或更多磁盘 space 使用的位置。
就我而言,我有一个包含 nginx、postgresql 和 gunicorn 的应用程序,它们都是容器化的。我按照这些步骤解决了我的问题,
我试图弄清楚哪些文件占用我的存储空间最多
下面的命令
sudo find / -type f -size +10M -exec ls -lh {} ;
从截图中可以看出,原来未使用的和docker相关的容器是来源
然后我清除所有未使用的、停止的或悬空的图像
docker系统修剪-a
最后我能够回收大约 4.4 GB!
我有一个 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,您必须以更好的方式管理磁盘分区。以下是解决您的问题的几种可能方法。
从 AWS EBS 控制台将现有 EC2 根 EBS 卷大小从 15 GB 扩展到更高的值。
或
找出占用高位磁盘的文件space,如果不需要则删除它们。最有可能的日志文件占用磁盘 spaces。您可以执行以下命令找出占用更多space.
的位置cd /
du -sch * | grep G
或
向您的实例添加额外的 EBS 卷并将其挂载到 Jenkins 主目录,或更多磁盘 space 使用的位置。
就我而言,我有一个包含 nginx、postgresql 和 gunicorn 的应用程序,它们都是容器化的。我按照这些步骤解决了我的问题,
我试图弄清楚哪些文件占用我的存储空间最多 下面的命令
sudo find / -type f -size +10M -exec ls -lh {} ;
从截图中可以看出,原来未使用的和docker相关的容器是来源
然后我清除所有未使用的、停止的或悬空的图像
docker系统修剪-a
最后我能够回收大约 4.4 GB!