Есть несколько вопросов и ответов на 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 или другим способом получить доступ к этому значению.
Просто понял, что это не то, о чем просили, это показывает предупреждение, если используемое пространство больше предопределенного порога.
Вы можете использовать что-то вроде скрипта ниже
#!/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, оно отправляет электронное письмо предупреждающее сообщение.
Я бы использовал awk, чтобы иметь дело только со второй строкой (пропускает первый здесь) и получает вашу колонку:
$ df /dev/mapper/sil_acababdfabcf1 | awk 'NR==2 {print $4}'
11903752