Поэтому я собираюсь добавить предупреждение о нехватке места на жестком диске на мой домашний сервер. Мне нравится внешний вид , после чего приходит от сюда:

ADMIN="yourmail@example.com"
# set alert-level 90 % standard
ALERT=10
df -H | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $6 }' | while read output;
do
  usep=$(echo $output | awk '{ print $1}' | cut -d'%' -f1  )
  partition=$(echo $output | awk '{ print $2 }' )
  if [ $usep -ge $ALERT ]; then
    echo "space low on \"$partition ($usep%)\", on server $(hostname) at $(date)" |
 mail -s "Alert: Free space low, $usep % used on $partition" $ADMIN
  fi
done

Поскольку я считаю разумным понимать любой сценарий, который вы запускаете перед тем, как запускать его, я смотрел справочные страницы, чтобы выяснить, как работает каждый из отдельных разделов программы, и это выглядит довольно просто. Единственное, чего я не понимаю, это флаг -ge в условном выражении if . Согласно введению bash для страницы if они оба будут иметь значение true, если "файл существует". Как эта логика проходит правда, когда я сравниваю две переменные. В других языках программирования я бы использовал синтаксис == . Точно так же, почему мы сравниваем значения от 90 (как сообщает df) с 10 который является переменной ALERT , я предполагаю, что это как-то связано с тем, как условные вычисления оцениваются? У меня нет оснований полагать, что этот код не будет работать, я просто хотел бы знать, почему, прежде чем добавлять его в скрипт.

Благодарю.

0