【Linux运维】磁盘告警排查过程及常用磁盘命令

目录

查看服务器总磁盘大小

磁盘占用大小Top10

磁盘清理、磁盘扩容

引申技术点

常用磁盘命令

查看总磁盘

查看磁盘占用大小top10

Linux 中的/var/log/journal/ 是什么,主要用于存放什么日志?

journalctl 命令参数详解及vacuum-size指定journal日志大小

Linux常见路径作用


查看服务器总磁盘大小

df -h 会显示服务器上每个挂载点的磁盘使用情况,包括总磁盘空间、已用空间和可用空间。选项 -h 以人类可读的方式显示磁盘大小。

如下可知 总磁盘接近200G

[footstone@apigatewaystorm02 ~]$ df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/vda1        99G   82G   12G  88% /

devtmpfs         16G     0   16G   0% /dev

tmpfs            16G     0   16G   0% /dev/shm

tmpfs            16G  488K   16G   1% /run

tmpfs            16G     0   16G   0% /sys/fs/cgroup

tmpfs           3.2G     0  3.2G   0% /run/user/1000

tmpfs           3.2G     0  3.2G   0% /run/user/0

磁盘占用大小Top10

du -h / | sort -rh | head -n 10 

由次命令发现/var占用86G的磁盘空间,因为/var主要用于存放linux 变量文件如日志文件、数据库文件、邮件队列等。所以/var下肯定是例如日志 通过设置logrotate定期清理的。部分服务经常忽略该配置,所以长期下来便会消耗很多磁盘空间。

基于这种思路,则可指定/var 依次向下寻找 看具体哪个路径占用空间较大。确定清理的源头。通过排查 /var/log下有3G的storm日志、及5G的/var/log/journal/可执行清理。

[footstone@apigatewaystorm01 /]$ du -h --max-depth=1 /var | sort -rh | head -n 10

86G /var

59G /var/lib

27G /var/log

364M /var/cache

108K /var/tmp

100K /var/spool

20K /var/db

12K /var/kerberos

8.0K /var/empty

4.0K /var/yp

磁盘清理、磁盘扩容

引申技术点

常用磁盘命令

查看总磁盘

df -h

会显示服务器上每个挂载点的磁盘使用情况,包括总磁盘空间、已用空间和可用空间。选项 -h 以人类可读的方式显示磁盘大小。

du -sh /path/to/directory

使用 du(disk usage 命令查看特定目录或文件夹的磁盘使用情况,这会显示指定目录的磁盘使用情况,包括总大小。将 /path/to/directory 替换为你要检查的目录的路径

lsblk

使用 lsblk 命令查看块设备信息,包括硬盘和分区的详细信息以及它们的大小、挂载点等信息。

[root@tencent-beta17 ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1  8.8M  0 rom
vda    253:0    0  500G  0 disk
└─vda1 253:1    0  500G  0 part /
fdisk -l

parted -l

使用 fdiskparted 命令来查看分区信息,会列出服务器上的磁盘和分区的详细信息,包括分区类型、大小和挂载点。

查看磁盘占用大小top10

可以使用 du命令结合 sorthead 命令来列出磁盘上占用空间最大的文件或目录的 top 10 列表

du -h /path/to/search | sort -rh | head -n 10

  • du -h /path/to/search 用于计算指定目录(/path/to/search 替换为你的目标path)下的每个文件和目录的磁盘使用情况,并以人类可读的格式显示结果。
  • sort -rh , -r 选项表示反向排序,从大到小;-h 选项表示按人类可读格式的数字大小排序。
  • head -n 10 用于显示排序后的结果中的前 10 条记录。

Linux的journal service

Linux 中的/var/log/journal/ 是什么,主要用于存放什么日志?

/var/log/journal/ 目录是 systemd-journald 服务的默认日志存储位置,用于存放 systemd 日志。

这些日志文件使用了一种二进制格式(*.journal)进行存储,而不是传统的文本格式(如 /var/log/messages)。这种二进制格式的日志文件具有更高的性能和更好的可读性。

journalctl 命令参数详解及vacuum-size指定journal日志大小

通过使用 journalctl 命令,可以访问和查询这些日志文件。

journalctl 是一个 Linux 系统日志查询工具,用于查看系统日志。

-u :仅显示与指定单元(unit)相关的日志。单元可以是一个系统服务、套接字、挂载点等。
-b 或 --boot=:仅显示指定引导 ID 相关的日志。可以使用数字(如 -b 0 表示当前引导)或 reboot-time(最后一次引导)。
-p :仅显示指定优先级的日志。优先级可以是一个整数或一个优先级名称(如 emerg、alert、crit、err、warning、notice、info、debug)。
-k 或 --dmesg:仅显示内核日志。
-n  或 --lines=:仅显示指定数量的日志条目。
-f 或 --follow:持续输出新的日志条目,类似于 tail -f 命令。
-o  或 --output=:指定输出格式。支持的格式有 short、short-iso、short-precise、short-iso-precise、verbose、export 和 json。
--since=:仅显示指定日期之后的日志。
--until=:仅显示指定日期之前的日志。
--disk-usage:显示日志的磁盘使用情况统计。
--list-boots:显示可用的引导 ID 列表。

其中,journalctl --vacuum-size 可用于设置系统日志的磁盘空间限制。如上问题,/var/log/journal/下日志文件过大,那便可设定journalctl --vacuum-size=500M,因为系统日志会随时间不断增长占用磁盘空间。--vacuum-size 参数可以帮助限制日志占用的磁盘空间大小。通过指定一个大小值,journalctl 将删除旧的日志条目,以使日志保持在指定的大小范围内。

用法示例:journalctl --vacuum-size=500M。

在上述示例中,500M 是一个大小值,表示磁盘空间的限制为500M。当日志大小超过这个限制时,journalctl 将删除一些旧的日志条目,以减小日志的总体大小。

--vacuum-size 参数只控制日志的总体大小,并不会删除特定时间范围内的日志条目。如果你需要根据时间来删除日志条目,请使用 --since 和 --until 参数。

Linux常见路径作用

/(根目录):根目录是整个文件系统的起点,包含了所有其他文件和目录。它是 Linux 文件系统的顶级目录。

/bin(二进制文件):这个目录包含系统启动和维护所需的二进制可执行文件,如 shell 命令和系统工具。

/etc(配置文件):系统配置文件存放在这个目录中,包括各种应用程序和服务的配置文件,网络配置、用户帐户信息等。

/home(用户主目录):每个用户的主目录都位于此目录下,通常以用户名命名。用户在这里存储自己的文件和配置。

/var(变量文件):这个目录包含经常变化的数据,如日志文件、数据库文件、邮件队列等。

/tmp(临时文件):这个目录用于存储临时文件,通常在系统重启时会清空。

/dev(设备文件):这个目录包含系统中的设备文件,用于与硬件设备通信,如磁盘驱动器、键盘、鼠标等。

/proc(进程信息):这个虚拟目录包含系统内核和正在运行的进程的信息,可用于监控和管理系统状态。

/sys(系统文件):类似于 /proc,这个目录包含有关系统硬件和内核参数的信息。

/lib 和 /lib64(库文件):这些目录包含共享库文件,用于程序的运行时链接。

/usr(用户系统资源):这个目录通常包含用户安装的应用程序、库文件、文档和其他资源。它包含了用户级的系统文件。

/opt(可选软件包):用于存放可选的应用程序或软件包,通常由用户或管理员手动安装。

/mnt(挂载点):这个目录用于临时挂载其他文件系统,如外部硬盘、网络共享等。

/srv(服务数据):包含服务所需的数据,例如网站数据或文件共享服务的数据。

/boot(引导文件):包含引导加载程序(bootloader)和内核文件,用于系统的引导过程。

珍视排查一个看似简单问题的过程,通过排查问题,记录问题的排查思路,引申出新的知识点,并且回顾旧有知识, 温故知新 不断夯实沉淀。

你可能感兴趣的:(运维,linux,java)