目录
查看服务器总磁盘大小
磁盘占用大小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
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
使用 fdisk
或 parted
命令来查看分区信息,会列出服务器上的磁盘和分区的详细信息,包括分区类型、大小和挂载点。
可以使用 du
命令结合 sort
和 head
命令来列出磁盘上占用空间最大的文件或目录的 top 10 列表
du -h /path/to/search | sort -rh | head -n 10
/var/log/journal/ 目录是 systemd-journald 服务的默认日志存储位置,用于存放 systemd 日志。
这些日志文件使用了一种二进制格式(*.journal)进行存储,而不是传统的文本格式(如 /var/log/messages)。这种二进制格式的日志文件具有更高的性能和更好的可读性。
通过使用 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 文件系统的顶级目录。
/bin(二进制文件):这个目录包含系统启动和维护所需的二进制可执行文件,如 shell 命令和系统工具。
/etc(配置文件):系统配置文件存放在这个目录中,包括各种应用程序和服务的配置文件,网络配置、用户帐户信息等。
/home(用户主目录):每个用户的主目录都位于此目录下,通常以用户名命名。用户在这里存储自己的文件和配置。
/var(变量文件):这个目录包含经常变化的数据,如日志文件、数据库文件、邮件队列等。
/tmp(临时文件):这个目录用于存储临时文件,通常在系统重启时会清空。
/dev(设备文件):这个目录包含系统中的设备文件,用于与硬件设备通信,如磁盘驱动器、键盘、鼠标等。
/proc(进程信息):这个虚拟目录包含系统内核和正在运行的进程的信息,可用于监控和管理系统状态。
/sys(系统文件):类似于 /proc,这个目录包含有关系统硬件和内核参数的信息。
/lib 和 /lib64(库文件):这些目录包含共享库文件,用于程序的运行时链接。
/usr(用户系统资源):这个目录通常包含用户安装的应用程序、库文件、文档和其他资源。它包含了用户级的系统文件。
/opt(可选软件包):用于存放可选的应用程序或软件包,通常由用户或管理员手动安装。
/mnt(挂载点):这个目录用于临时挂载其他文件系统,如外部硬盘、网络共享等。
/srv(服务数据):包含服务所需的数据,例如网站数据或文件共享服务的数据。
/boot(引导文件):包含引导加载程序(bootloader)和内核文件,用于系统的引导过程。
珍视排查一个看似简单问题的过程,通过排查问题,记录问题的排查思路,引申出新的知识点,并且回顾旧有知识, 温故知新 不断夯实沉淀。