暂无图片
暂无图片
3
暂无图片
暂无图片
暂无图片

查看文件磁盘使用情况

原创 yBmZlQzJ 2022-12-05
843

前言

最近制作的Docker镜像体积已经快到达7G了,这几天想着能否将里面的内容进行一些删减,以此来达到降低容量的功能

然后通过了解,首先得使用Linux命令,查看文件磁盘所占的空间大小,下面可以通过以下命令进行操作

  • df 可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件束手无策
  • du 查看文件和文件夹的磁盘使用空间

在使用中,一般是df命令和du命令一起联合使用的

查看文件磁盘使用情况

# 查看分区的文件系统,显示目前所有文件系统的可用空间及使用情形
# 参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式
df -h

或者使用du命令来对每个文件及文件夹大小进行查看:

# 仅列出/ 目录下面所有的一级目录文件大小, --max-depth=1 是指定深度
du -h --max-depth=1 /

通过上面显示的,我们就能够大致了解每个文件夹的大小了,然后在进去里面把一些不必要的内容删除即可 ~# 记一次因代码出错不断输出日志占满Docker容器硬盘的排查经历

前言

今天蘑菇博客突然宕机,进入页面后,发现很多内容无法正常显示,开始不知道是什么原因而引起的,然后想要启动mogu_web的日志进行查看

tail -f catalina.out

启动后,发现卡死,无法正常输出日志,这时候我以为是因为那里出了问题,然后想着可能是因为项目那里出现问题了,还是先把现在的镜像提交一下

docker commit -m "bak" XXXXX  moxi/mogu_blog

然后突然出现下面的错误:

Error response from daemon: mkdir /var/lib/docker/overlay2/f53be9948dcd7fb15d9d05b6ab523a3e25d3ab213d884a2282dea4dfd5bb8059: no space left on device

大概意思就是说没有硬盘空间了,然后想着既然没有空间了,那就把一些镜像删除吧

docker images;

选择一些没用的镜像,然后删除,发现删除也不能删除,这个时候想着,可能不是因为镜像的缘故,而造成空间不够的,会不会是其它文件的原因,先遍历一下文件的所占空间

df -h

得到下面的信息:

Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        910M     0  910M   0% /dev
tmpfs           920M     0  920M   0% /dev/shm
tmpfs           920M  105M  816M  12% /run
tmpfs           920M     0  920M   0% /sys/fs/cgroup
/dev/vda1        40G   40G     0 100% /
overlay          40G   40G     0 100% /var/lib/docker/overlay2/ad1a22ed400f8a753167934d5ba4455266871718f00654038ba6b59b3b8e26bc/merged
shm              64M     0   64M   0% /var/lib/docker/containers/4344540fce1ecf3a2b801f8edb2a235c56e892946f2ea517a408467fdffb2174/shm
tmpfs           184M     0  184M   0% /run/user/0

从这里能够看到 40G的空间,全部被docker占用了,既然不是docker镜像所占用了,那肯定就只有容器了,使用下列命令,查看docker的镜像和容器所占空间

docker system df

看到这里,瞬间就得出答案了,果然是因为运行的容器而造成空间不够了

image-20200107220623904

因为一个容器就占用了29.03GB的容量,下面我们就需要进入容器里面看看,到底是什么东西,占用了这么多内存了,我们使用du命令,查看占用空间,这篇博客讲了一些常用的命令:Linux下查看文件和文件夹占用空间大小

du -h --max-depth=1 /

image-20200107220734387

我们发现是 /home目录里面的内容,占用了27G的空间,我们接着深入的查看

du -h --max-depth=1 /home/mogu_blog/

到这里就明白了,是因为mogu_sms项目,占用了27G的空间

image-20200107221131603

通过排查,是一个日志文件而造成的,想着可能是因为这个日志文件不断输出错误,而造成空间不够用的问题,所以我们现在需要解决这个错误后,然后把对应的日志输出文件给删除

rm -rf catalina.out

再次查看,恢复正常了

image-20200107221812359

我们回到宿主机,继续查看,空间也已经变成了1G了

image-20200107221950421

我们再次启动项目,发现可以查看日志# VMWare给CentOS扩容

前言

今天因为自己的虚拟机满了,无法继续创建Docker镜像,就想着给虚拟机扩容,从原来的20G提升到40G

添加新磁盘

首先我们需要关闭我们正在运行的虚拟机,然后找到设置页面,新添加一个20G的硬盘

image-20201202214511360

进入系统

然后我们进入系统

#查看服务器未挂载的磁盘 fdisk -l

image-20201202214713601

从上图可以看出,服务器的 /dev/vdb 42.9GB 此磁盘未挂载

如果此磁盘未挂载最下面会出一类似的话:Disk /dev/sdc doesn’t contain a valid partition table

从下图可以清楚的看到第三个硬盘sdc没有分区。sda和sdb都分区过了。

sda:sda1 sda2 sda3

sdb:sdb1 sdb2

image-20201202214846146

磁盘分区

下面我们需要对未挂载的磁盘进行分区

# 查看分区 fdisk /dev/vdb

然后执行下面操作

n -> p -> 回车 -> 回车 -> w

大概意思如下:

  • n:添加一个分区
  • P:主分区
  • 两个回车指是开始和结束的磁盘扇区大小
  • w:写入磁盘

image-20201202215158513

此时虽然已经进行了分区,但是还没有文件系统,所以磁盘依然不能使用

格式化磁盘

下面我们需要格式化磁盘,然后写入文件系统

# 格式化磁盘,写入文件系统 mkfs.ext4 /dev/vdb1

出现如下图这们的界面,就是格式化磁盘写入文件成功:

image-20201202215544386

挂载新磁盘

# 创建一个新目录 mkdir /huichengff # 挂载 mount /dev/vdb1 /huichengff

如果挂载成功,会出现如下图这样的界面

image-20201202215838271

查看磁盘信息

当我们再来查所有分区时,用fdisk -l 命令就会多了一个主分区,/dev/vdb1;如下图:

``image-20201202215857121

开启自动挂载

新创建的分区不能开机自动挂载,每次重启机器都要手动挂载。

设置开机自动挂载需要修改/etc/fstab文件 ;命令如下:

# 编辑 vim /etc/fstab # 打开后,在最后一行加入以下代码 /dev/vdb1 /huichengff ext4 defaults 0 1
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论