簡體   English   中英

如何在運行 nginx 和 jenkins 的 AWS ec2 Ubuntu 實例上釋放空間?

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

我有一個運行 nginx 和 Jenkins 的 Ubuntu ec2 實例。 沒有更多空間可用於更新,我嘗試釋放空間的每個命令都不起作用。 此外,當試圖到達 Jenkins 我得到502 Bad Gateway

當我運行sudo apt-get update時,我得到一長串錯誤,但主要的錯誤是E: Write error - write (28: No space left on device)

我不知道為什么沒有更多空間,或者是什么原因造成的,但df -h給出了以下 output:

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

我試圖通過運行sudo apt-get autoremove來釋放空間,它給了我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 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.

任何有助於釋放空間並使服務器再次運行的幫助將不勝感激。

就我而言,我有一個包含 nginx、postgresql 和 gunicorn 的應用程序,它們都是容器化的。 我按照這些步驟解決了我的問題,

  1. 我試圖找出哪些文件最消耗我的存儲空間,使用以下命令:
sudo find / -type f -size +10M -exec ls -lh {} \;
  1. 從截圖中可以看出,未使用的和 docker 相關的容器是源

在此處輸入圖像描述

  1. 然后我清除所有未使用、停止或懸空的圖像: docker system prune -a

最后我能夠回收大約 4.4 GB!

對於運行 Jenkins 和 Nginx 的服務器(如果您不測試 Jenkins 和 Nginx),您必須以更好的方式管理磁盤分區。 以下是解決問題的幾種可能方法。

  1. 通過 AWS EBS 控制台將現有 EC2 根 EBS 卷大小從 15 GB 擴展到更高的值。

    或者

  2. 找出占用大量磁盤空間的文件並在不需要時將其刪除。 很可能是消耗磁盤空間的日志文件。 您可以執行以下命令來找出占用更多空間的位置。

cd /      
du -sch * | grep G

或者

  1. 將額外的 EBS 卷添加到您的實例並將其掛載到 Jenkins 主目錄或使用更多磁盤空間的位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM