Linux查看文件日志大小
1 Linux查看文件日志大小
1.1 查看日志相关知识
1.查看日志路径
find /var/lib/docker/containers/ -name *-json.log
2.查看文件夹下的信息,举例root下的
列出指定路径下所有文件/文件夹的名称
以列表形式并且在显示文档大小时以可读性较高的形式显示
ls -lh /root 以K为单位
ls -l /root
3.以 -rwxr-xr-x 为例子
第一位"-"代表文件,如果第一位是"d" 代表文件夹
后面是权限读取三位一体,r:可读 w:可写 x:可执行
首先分割 - rwx r-x r-x ----> 文件 root用户读/写/执行 普通用户读/执行 其他用户读/执行
4. 清除日志文件 - https://blog.csdn.net/bad_good_man/article/details/49150275
cat /dev/null > *-json.log
1.2 问题说明
首先说明我的问题,docker运行的容器,接口一直访问无响应,我第一反应重启容器,码农定律,遇到问题无头绪时,重启能紧急解决一大半问题。
然而,我docker restart 容器id (重启容器命令),容器一蹶不振, 起不来了,我裂开,报错信息如下。
然后发现这个里面重复提到两个标红的文件夹,好奇心去百度。
/var/lib/docker/containers/"这个文件夹下的子文件内有*-json.log文件,就是容器的日志文件。
“/var/lib/docker/overlay2/” 其实磁盘空间的占用和overlay没关系(它的usage使用率和真实的disk usage磁盘使用率相同),它只是一个docker的虚拟文件系统
1.3 shell命令查看日志的步骤
方式一:直接进入文件查找日志文件
[root@ecs-8a1c-1109893 /]# cd /var/lib/docker/containers/
[root@ecs-8a1c-1109893 containers]# ls
... ...
[root@ecs-8a1c-1109893 containers]# cd 文件夹1名字
[root@ecs-8a1c-1109893 文件夹1名字]# ls
02ba9845493aa01a0416fa7c69b2aea5d3c7fd6abe5dc5f362528468ccc790f2-json.log
... ...(其他文件略过)
方式二:shell文件查看
1.进入文件夹下
cd /var/lib/docker/containers/
2.创建shell文件
vi docker_log_size.sh
【
进入后
"i" :进入编辑模式,输入内容
"ESC":退出编辑模式
":wq":保存内容后退出
"cat docker_log.sh":查看文件内容
】
3.docker_log_size.sh 具体内容
#!/bin/sh
echo "============= docker containers logs file size ==========="
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
do
ls -lh $log
done
4. "ls"查看文件,发现颜色不是绿色,执行shell文件,报错没有权限,如下图
5.查看当前文件夹的权限
[root@ecs-8a1c-1109893 containers]# ls -l
... ....
-rwxr-xr-x 1 root root 201 Jan 7 10:06 docker_log_size.sh
... ...
6.更改权限
chmod +x docker_log_size.sh
7.此时"ls"查看,文件此时为绿色,如下图,再次执行shell文件,
[root@ecs-8a1c-1109893 containers]# ./docker_log_size.sh
============= docker containers logs file size ===========
-rw-r----- 1 root root 0 Jan 6 17:29 /var/lib/docker/containers/02ba9845493aa01a0416fa7c69b2aea5d3c7fd6abe5dc5f362528468ccc790f2/02ba9845493aa01a0416fa7c69b2aea5d3c7fd6abe5dc5f362528468ccc790f2-json.log
... ...