Проверьте, не меньше ли свободного места на диске из командной строки

Есть несколько вопросов и ответов на askubuntu о просмотре дискового пространства из командной строки.

Естественно, df - это инструмент для этого.

Однако я хотите, чтобы скрипт при входе в систему поднимал предупреждение, если свободное место на диске ниже некоторого порога.

К сожалению, df, похоже, использует столбцы произвольного размера, и я не уверен, как извлечь только значение из колонке, которую интересует.

Например:

$ df /dev/mapper/root
Filesystem       1K-blocks    Used Available Use% Mounted on
/dev/mapper/root   2563092 1649968    763212  69% /
$ df /dev/mapper/root | tail -n 1
/dev/mapper/root   2563092 1649968    763212  69% /
$ df /dev/mapper/root | tail -n 1 | cut -d ' ' -f 9
763212

Действительно, я хочу четвертый столбец, но я должен попросить девятый.

Is существует более простой способ извлечь значение столбца из вывода df или другим способом получить доступ к этому значению.

1
задан 29 October 2014 в 01:54

2 ответа

Просто понял, что это не то, о чем просили, это показывает предупреждение, если используемое пространство больше предопределенного порога.

Вы можете использовать что-то вроде скрипта ниже

#!/bin/bash
X=
X=$(du -sc | awk 'NR < 2' | awk '{ print $1 }')
if [ $X -gt 999000 ]; then
  message="Already using `du -sch | awk 'NR <2' |awk '{ print $1 }'` KB"
echo $message | mail -s "File System Full Warning" email@address.com
fi

X содержит количество используемых КБ, если оно больше 999000, оно отправляет электронное письмо предупреждающее сообщение.

2
ответ дан 24 May 2018 в 02:21
  • 1
    Правильно, но это означает, что пространство используется ... – Jan 29 October 2014 в 02:08

Я бы использовал awk, чтобы иметь дело только со второй строкой (пропускает первый здесь) и получает вашу колонку:

$ df /dev/mapper/sil_acababdfabcf1 | awk 'NR==2 {print $4}'
11903752
2
ответ дан 24 May 2018 в 02:21
  • 1
    Спасибо, awk выглядит лучше, чем tail и cut, спасибо. Я буду использовать это в следующий раз. На данный момент я смог использовать лучшую семантику, предоставленную ответом @ muru. – Drew Noakes 29 October 2014 в 02:13

Другие вопросы по тегам:

Похожие вопросы: