我对 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
是您应该关注的内容,这并不有趣。