使用 df -h,我需要创建一个 bash 脚本来显示有关 60% 利用率的任何内容

使用 df -h,我需要创建一个 bash 脚本来显示有关 60% 利用率的任何内容

我需要创建一个 bash 脚本来显示有关 60% 利用率的任何信息

答案1

不需要脚本。这是一个最少 awk 的单行代码:

df -hlP  | awk 'int($5)>60'

如果你想改变输出,只需使用 awk 'print' :

df -hlP  | awk 'int($5)>60{print "Partition "$1" has only "$4" free."}'

并将其通过管道发送到您的邮件程序:

df -hlP  | awk 'int($5)>60{print "Partition "$1" has only "$4" free."}' | mail -s "Disk usage on $(uname -n)" your_monitoring@your_provider.com

快乐的克罗恩:)

答案2

最好的选择是建立一个监控解决方案,例如 Xymon (http://downloads.sourceforge.net/project/xymon/Xymon/4.3.21/xymon-4.3.21.tar.gz?r=&ts=1438001054&use_mirror=iweb)可以随时间趋势分析您的磁盘使用情况。您只需选择“磁盘”列下的图标,它就会显示当前的情况以及首次安装 Xymon 时的情况。 df 的问题在于,它不仅对于容量较高的机器需要花费大量时间,而且在您下次启动时必须重新开始。 df 的另一个问题是,如果您有 NFS 共享,它有时可能会挂起。您可以使用 -l 开关来阻止检查本地安装点之外的任何内容。

如果您必须使用 bash,可以从这里开始:

#!/bin/bash
ALERT=60
df -H | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while read output;
do
usage=$(echo $output | awk '{ print $1}' | cut -d'%' -f1 )
partition=$(echo $output | awk '{ print $2 }' )
if [ $usage -ge $ALERT ]; then
echo "Running out of space \"$partition ($usage%)\" on $(hostname)"
fi
done

答案3

df -h | grep '[6-9][0-9]%\|100%'

将 grep 任何使用率达到或超过 60% 的内容

相关内容