Как получить доступное пространство детерминированным?

Когда я использую команду вырезать, каждый раз я получаю другой результат, который имеет смысл. Поэтому мне интересно, как получить ответ, похожий на этот, но согласованный для разных узлов Ubuntu?

ubuntu@ip:~/aws_script$ df -h / | grep '/dev'
/dev/xvda1       32G   21G  9.8G  68% /
ubuntu@ip:~/aws_script$ df -h / | grep '/dev' | cut -d' ' -f13
9.8G

Мне действительно все равно, какую команду вы бы использовали, если бы не cut до тех пор, пока он выполняет свою работу детерминистически.

3 ответа

Решение

Вы хотите вторую строку, четвертый столбец. Так что используйте awk для этого:

$ df -h / | awk 'NR==2{print $4}'                                                                                                     
41G

Чтобы получить доступное место на / с df, используйте:

df --output=avail -h / | grep -v ^Avail

Как это устроено

--output=avail говорит df чтобы показать только доступное пространство.

grep -v ^Avail удаляет строку заголовка

awk более мощный, чем cut

df -h / |awk '/dev/{print $4}'

Изменено в соответствии с просьбой Serg

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