O Script de Uso de Disco Exibe Saída Errada

0

Eu escrevi um script bash simples para verificar o uso do disco e enviar um alerta de email para todas as partições acima de 85%. Eu quero que a saída seja assim:

"/ dev / mapper / rootvg-root está em 87%. Um email foi enviado ao seu administrador."

No entanto, o script atual imprime todas as partições e a porcentagem usada não corresponde à partição correta. Código abaixo com saída:

#!/bin/bash
admin="[email protected]"
threshold="85"

util='df -h | tail -n +2 | awk '{print $5}' | sed 's/.$//''
part='df -h | tail -n +2 | head -$1 | awk '{print $1}''

for i in $util;
do

if [ $i -ge $threshold ]; then

echo "$part is currently at ${i}%. An email has been sent to your             administrator." 
mail -s "Critical Alert: $part is currently at ${i}%. Clear space immeadiately!" $admin

fi
done

Saída:

/dev/mapper/rootvg-root
devtmpfs
tmpfs
/dev/mapper/rootvg-var
/dev/mapper/rootvg-u01
/dev/mapper/rootvg-home
/dev/mapper/rootvg-apps
/dev/mapper/rootvg-tmp is currently at 92%. An email has been sent to your administrator.

/ dev / mapper / rootvg-tmp não está em 92%, / dev / mapper / rootvg-root é e as outras partições abaixo de 85% não devem estar aparecendo.

    
por N.M.D 29.08.2016 / 18:07

1 resposta

1

#!/bin/bash
admin="[email protected]"
threshold="85"

df -l --output=source,pcent | while IFS=" %" read -r part i; do
    if [ $i -ge $threshold ] 2>/dev/null; then
        echo "$part is currently at ${i}%. An email has been sent to your             administrator." 
        mail -s "Critical Alert: $part is currently at ${i}%. Clear space immeadiately!" $admin
    fi
done
    
por 29.08.2016 / 18:34