检查文件系统使用情况和清理空间的脚本

检查文件系统使用情况和清理空间的脚本

我对 shell 脚本还很陌生 我有几个不同发行版的 unix 系统(RHEL、CENTOS、FEDORA、UBUNTU) 有没有办法让脚本来检查下面的文件系统磁盘空间使用情况示例

Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root  6.7G  2.3G  4.4G  34% /
devtmpfs                 361M     0  361M   0% /dev
tmpfs                    371M     0  371M   0% /dev/shm
tmpfs                    371M  5.1M  366M   2% /run
tmpfs                    371M     0  371M   0% /sys/fs/cgroup
/dev/sda1                497M  124M  374M  25% /boot
tmpfs                     75M     0   75M   0% /run/user/0

并检查是否有任何磁盘的磁盘空间超过 90%,并清除空间。

答案1

您发布了df -h输出,该输出是人类可读的,但不适合脚本。

您可能需要更加关注第 4 列(可用)而不是第 5 列中的百分比。

听起来您的脚本知道可以“安全”修剪的古老日志文件。对于给定的修剪操作,该组文件将恰好位于一个文件系统上。df当您真正关心这一点时,解析系统范围的输出是没有意义的:

cd /var/log
df -k . | awk '{print $4}'

这给出了一个以千字节为单位的数字报告(而不是带有人类可读的文本后缀),准确地显示您关心的数量,当前目录文件系统的可用空间。您可以围绕它编写一个 while 循环,也许每次通过循环都会修剪一个文件(最旧的文件)。在开始循环之前进行健全性检查:确保du -k您可以在需要时释放“足够”的空间。删除dir1/*后才发现那dir2/giant_file是您应该关注的内容,这并不有趣。

相关内容