📌  相关文章
📜  检查磁盘空间 linux - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:10:55.466000             🧑  作者: Mango

检查磁盘空间 Linux - Shell-Bash

在Linux系统中,我们可以使用Shell脚本来检查磁盘空间。以下是一些常用的命令和脚本。

df命令

df命令是一个Linux/Unix中的磁盘空间查看命令。如果没有指定任何文件或目录名,则默认显示整个文件系统的可用空间、已用空间、及使用率等信息。

df -h

输出

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        20G  9.8G  8.8G  53% /
tmpfs            32G     0   32G   0% /dev/shm
/dev/sda2       558G   43G  514G   8% /home

其中,-h表示使用人类可读的格式。

du命令

du命令可以用于查看目录中每个文件的空间占用情况。

du -sh /path/to/directory

输出

500K	/path/to/directory

其中,-s选项可以汇总目录内所有文件的占用空间,-h表示使用人类可读的格式。

Shell脚本

我们还可以写一些自定义的Shell脚本来检查磁盘空间。以下是一个示例脚本用于检查磁盘空间是否过低,并发送警报通知。

#!/bin/bash

# 设置阈值
threshold=90

# 获取分区表信息,一行一次循环
while read partition size used free percent mountpoint
    do
        # 排除非磁盘分区
        case $mountpoint in
            /proc|/sys|/boot|/dev/shm|/run|/sys/fs/cgroup|/snap/core*|/var/lib/snapd/snap/*) continue ;;
        esac

        # 删除百分号符号
        percent=${percent%\%}

        # 比较空闲空间是否小于阈值
        if [ $percent -ge $threshold ]
            then
                # 发送邮件告警
                echo "Low disk space alert: $mountpoint has $percent% used ($free/$size)" | mail -s "Disk Space Alert" admin@admin.com
        fi
done < <( df -hPT )

其中,df -hPT命令输出文件系统的分区表。分区表中各列的含义如下:

  • Filesystem: 文件系统名;
  • Type: 文件系统类型;
  • Blocks: 分区总大小;
  • Used: 已用空间;
  • Avail: 可用空间;
  • Use%: 使用率;
  • Mounted on: 挂载点路径。

最后,括号中的< <( ... )语法是bash中的一种进程替换方式,用于读取子进程(df -hPT)的输出。

以上是在Linux系统中检查磁盘空间的一些方法和技巧。无论何种方法,都需要我们时刻关注磁盘空间的使用情况,以保障系统的稳定和可靠性。