任务场景:
接到报警,某台服务器/var 目录快满了,需要清理目录
任务分析:
/var目录一般是数据的默认存储目录,例如mysql的存储目录是/var/lib/mysql 系统日志的默认目录是/var/log/,先登陆服务器看看是哪一个目录占据空间大,再想办法进行目录迁移或者清理文件
实施过程
1.登陆服务器,查看硬盘的试用情况
[root@FVM1538 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/Vg01-Lv_01 74G 4.8G 66G 7% / devtmpfs 12G 0 12G 0% /dev tmpfs 12G 12K 12G 1% /dev/shm tmpfs 12G 1.3G 11G 11% /run tmpfs 12G 0 12G 0% /sys/fs/cgroup /dev/sdb1 394G 248G 127G 67% /data /dev/sda1 976M 110M 800M 13% /boot /dev/mapper/Vg01-Lv_02 7.8G 7.0G 347M 96% /var tmpfs 2.4G 0 2.4G 0% /run/user/0 overlay 7.8G 7.0G 347M 96% /var/lib/docker/overlay2/7585845f32e2e4abd37702db878dfe8f55a1ed8f3609fdfff085e46b82c07ea3/merged shm 64M 0 64M 0% /var/lib/docker/containers/c05424480b3c05c0f834b290c767be85865eeb6495994d3b932ad60ab2a0bdc4/mounts/shm
![bddd2644c757f2ad3cd36a2893c3a4e2.png](https://img-blog.csdnimg.cn/img_convert/bddd2644c757f2ad3cd36a2893c3a4e2.png)
硬盘使用情况
发现是/var目录占了96%,然后发现下方还有docker的挂载,于是推测是docker的默认目录/var/lib/docker占据空间太大
2.统计/var/lib 目录下各个目录的大小
[root@FVM1538 ~]# du -h --max-depth=1 /var/lib/ 9.9G /var/lib/docker 8.0K /var/lib/ntp 4.0K /var/lib/dav 16K /var/lib/authconfig 20K /var/lib/net-snmp 。。。 11G /var/lib/
![889147189028a9205c9174a4882154d0.png](https://img-blog.csdnimg.cn/img_convert/889147189028a9205c9174a4882154d0.png)
统计/var/lib目录的大小情况
确认是docker的默认存储目录占空间大,于是考虑迁移docker的存储目录,检查docker的存储目录命令是
![bdaa47850d417984ec76aec793b2a5d5.png](https://img-blog.csdnimg.cn/img_convert/bdaa47850d417984ec76aec793b2a5d5.png)
查找docker的默认存储路径
[root@FVM1538 ~]# docker info | grep -i ROOT Docker Root Dir: /var/lib/docker
3.创建新的目录
mkdir -p /data/docker/lib
4.停止docker
[root@FVM1538 data]# systemctl stop docker.service
5.同步/var/lib/docker 目录到新目录
[root@FVM1538 data]# rsync -av /var/lib/docker/ /data/docker/lib/
6.备份/var/lib/docker (生产环境上不要乱删除)
mv /var/lib/docker /data/07-15-docker-lib-bak
7.修改docker启动脚本
vim /usr/lib/systemd/system/docker.service #在ExecStart=/usr/bin/dockerd 后面新增 --graph=路径 ExecStart=/usr/bin/dockerd --graph=/data/docker/lib/(新增的)
8.重启docker服务
[root@FVM1538 data]# systemctl daemon-reload[root@FVM1538 data]# systemctl restart docker
9.检查硬盘和数据库容器启动情况
[root@FVM1538 data]# df -hFilesystem Size Used Avail Use% Mounted on/dev/mapper/Vg01-Lv_01 74G 4.8G 66G 7% /devtmpfs 12G 0 12G 0% /devtmpfs 12G 12K 12G 1% /dev/shmtmpfs 12G 1.3G 11G 11% /runtmpfs 12G 0 12G 0% /sys/fs/cgroup/dev/sdb1 394G 258G 117G 69% /data/dev/sda1 976M 110M 800M 13% /boot/dev/mapper/Vg01-Lv_02 7.8G 2.1G 5.3G 29% /vartmpfs 2.4G 0 2.4G 0% /run/user/0overlay 394G 258G 117G 69% /data/docker/lib/overlay2/7585845f32e2e4abd37702db878dfe8f55a1ed8f3609fdfff085e46b82c07ea3/mergedshm 64M 0 64M 0% /data/docker/lib/containers/c05424480b3c05c0f834b290c767be85865eeb6495994d3b932ad60ab2a0bdc4/mounts/shm
![60f8513b255224b6ac8b914732f7bbc5.png](https://img-blog.csdnimg.cn/img_convert/60f8513b255224b6ac8b914732f7bbc5.png)
硬盘情况
硬盘情况正常,检查容器启动情况
[root@FVM1538 ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESc05424480b3c mysql:5.7 "docker-entrypoint.s…" 5 months ago Up 17 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
容器启动也正常,问题解决。