Bash - уведомление об использовании диска - PullRequest
0 голосов
/ 25 марта 2020

Этот сценарий должен выводить предупреждение об использовании основного диска, если оно превышает 50%, но не выводит. Мой диск в настоящее время заполнен на 60%, поэтому теоретически он должен работать.

Я добавил оператор else, чтобы определить, не работает ли l oop, но оператор else не запущен.

У меня нет ошибок, поэтому сложно определить, где именно я ошибся.

#!/bin/bash

df -H | grep /dev/sda2 | awk '{ printf "%d", $5}' > diskOutput.txt

input="diskOutput.txt"
while IFS= read -r line
do
        if [ $line -gt 50 ]
        then
                up="`uptime | cut -b 1-9`"
                output="WARNING UTILISATION $line - $up"
                echo "$output"
        else
                echo "no-in"
        fi

done < $input
#rm diskOutput.txt
echo "finished"

1 Ответ

0 голосов
/ 25 марта 2020

Попробуй это.

#!/bin/bash

df -H | grep /dev/sda2 | awk '{ printf "%d", $5}' > diskOutput.txt
echo "" >>diskOutput.txt
input="diskOutput.txt"
while IFS= read -r line
do
        if [ $line -gt 50 ]
        then
                up="`uptime | cut -b 1-9`"
                output="WARNING UTILISATION $line - $up"
                echo "$output"
        else
                echo "no-in"
        fi

done < $input
#rm diskOutput.txt
echo "finished"

Вы устанавливаете внутренний разделитель полей в качестве пробела.

while IFS= read -r line

Но при создании файла с %d вы удаляете все символы, кроме цифр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...