服务器情况及遇到的问题
一台linux服务器,主要部署的为docker容器。出现当输入进入文件夹命令时,点击Tab
键不能自动出来文件夹名,如下:
[root@web158 ~]# cd /opt/n-bash: 无法为立即文档创建临时文件: 设备上没有空间
g-bash: 无法为立即文档创建临时文件: 设备上没有空间
问题排查
无法为立即文档创建临时文件: 设备上没有空间的问题,是服务器存储不够的原因。可查找磁盘占用情况,排查文件是否有些多余的东西,比如docker容器的日志等
1.查看磁盘占用情况
输入如下命令:
df -Th
可看到如下结果:
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/cl-root xfs 37G 37G 20K 100% /
devtmpfs devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs tmpfs 7.8G 84K 7.8G 1% /dev/shm
tmpfs tmpfs 7.8G 782M 7.0G 10% /run
tmpfs tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 173M 842M 18% /boot
/dev/sdb1 ext3 197G 22G 166G 12% /data
tmpfs tmpfs 1.6G 16K 1.6G 1% /run/user/42
overlay overlay 37G 37G 20K 100% /var/lib/docker/overlay/d73573ecc6b0a31d9d76e7ff47c33e93a00ecefb749430f100cf29abbe2cfb29/merged
overlay overlay 37G 37G 20K 100% /var/lib/docker/overlay/032feba497f9b7ab8700b95514bfbbcdabe39ba99c8e1b0f9d8721c27e502532/merged
shm tmpfs 64M 0 64M 0% /var/lib/docker/containers/9f08072b76f5183884aa5dd18b94fd2d66ebfd48db55252ad3b720d133e2e551/shm
overlay overlay 37G 37G 20K 100% /var/lib/docker/overlay/e0c52042f0bf4275873f6dedacaf072d7a35fcac61e80755ef6e84cf0fd55a38/merged
shm tmpfs 64M 0 64M 0% /var/lib/docker/containers/a62805d95f9c6a061faa93c1eb2f732c284d77d27d936e759912b83aca88ea19/shm
overlay overlay 37G 37G 20K 100% /var/lib/docker/overlay/e24aa22cee58a01e62b90e4f206d4b156e7a5c6e9b8ef66970bb1a81478fc6b9/merged
shm tmpfs 64M 0 64M 0% /var/lib/docker/containers/a3c97e2a8652c75298feb49c3ad0092492e1eb4624bdc4251cb07b26a9127c4b/shm
overlay overlay 37G 37G 20K 100% /var/lib/docker/overlay/f13ae774c4aaf009a64faecb71041176d7c1bcfbf97c1d07d3ca2c8b2f0eea5a/merged
shm tmpfs 64M 0 64M 0% /var/lib/docker/containers/f4cd372bde4ae039a2d1c97631b8227953cc9cfc3bfee01fa2e91b9801d3d51d/shm
tmpfs tmpfs 1.6G 0 1.6G 0% /run/user/0
从上图来看,已用的占用最多的,都是/var/lib/docker/
文件夹,这里进入到/var/lib/docker/containers
文件夹中,日志文件在这里。
首先,输入如下命令,进入到/var/lib/docker/containers
文件夹:
cd /var/lib/docker/containers
进入到上边文件夹后,再输入如下命令查看该文件夹下的子文件占用大小:
du -sh ./*
结果会看到如下内容:
[root@web158 containers]# du -sh ./*
218M ./0e74b46047443b5f432a1b42fbfd9b019feff6bbefbf495647ec95b4dccac536
23M ./1307ebdabfeaa622186b871a93f9b9494e5110d875037e1fce89730c7e305a7f
69M ./21fee68abe042514d9c1c137d73e7e2ce845dca42a234b7f3104ef85658d2e29
3.1M ./2ebb141ec0fbcb6488af7ef2316fe25bc9f90d25ad358f5fd05816ca6add1a25
556K ./597a0ce3ca2ac829cebbc32cf1b7c13de764fe7624817507e13fa977dba88926
32K ./5b695e4363d2e84f90f254a141f627680d4f4ae45a821609223a800e8f7a1172
24K ./66da7cc19e5d852a4ce164177478e668027b67622d283c43dddb4d7970eded09
156M ./8b30208c1bce4e74f35fa923c644c54bb0b55c337562ae44885fee7718f3fb66
28K ./8f77ac3611d1fd4d0067496b9aef8a11664c23ebc8a69656a8468c0874adb824
27M ./9f08072b76f5183884aa5dd18b94fd2d66ebfd48db55252ad3b720d133e2e551
339M ./a3c97e2a8652c75298feb49c3ad0092492e1eb4624bdc4251cb07b26a9127c4b
2.2G ./a62805d95f9c6a061faa93c1eb2f732c284d77d27d936e759912b83aca88ea19
381M ./a9fd715f1a823f17f4aefcc473fdb139672e0321d23565405025ccfc7e1a245b
11M ./c82ddeae399c583ee32c9691f5077c4f77842b31e7b1b90be32700881071737a
2.5M ./e5cafad5a1d73e4fe68aaaab94567a2d682bd33fe660910c78ca84bbb3f4b979
27M ./eb16d35320a33c784ffdd065d5659f388a15f41ef33866ab4abd1b7880f93b71
133M ./f4cd372bde4ae039a2d1c97631b8227953cc9cfc3bfee01fa2e91b9801d3d51d
44K ./fbe168f39f793260dfc6ca8b849f684420166c0c0bbc1e2a375abc6ce88cb310
从上边能看到有个文件夹达到了2.2G
,可以排查一下这个文件夹。
2.问题解决
在当前文件夹下,输入如下命令,过滤出大小达到G
的文件夹名:
du -sh ./* | grep G | awk '{print $2}'
以上命令表示,查看当前文件夹下的所有文件及文件夹的大小,过滤出大小为G的,然后打印出第2列,及文件夹名。当输入du -sh ./*
时,在上边也能看到,第二列正好是文件夹名,所以这里为什么是{pring $2}’
。
得到如下内容:
[root@web158 containers]# du -sh ./* | grep G | awk '{print $2}'
./a62805d95f9c6a061faa93c1eb2f732c284d77d27d936e759912b83aca88ea19
进入到该文件夹内:
cd a62805d95f9c6a061faa93c1eb2f732c284d77d27d936e759912b83aca88ea19
然后输入ll -h
,查看文件大小:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191224092609199.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dvaGFxaXlp,size_16,color_FFFFFF,t_70)
如上图所示,其中有个a62805d95f9c6a061faa93c1eb2f732c284d77d27d936e759912b83aca88ea19-json.log
文件达到了2.2G,将其清空即可,注意不能删除!
输入如下命令,清空文件:
>a62805d95f9c6a061faa93c1eb2f732c284d77d27d936e759912b83aca88ea19-json.log
清空之后,再输入命令就不会有这个问题了。