Я ненавижу удалять старые посты, но это единственное подходящее место для публикации этой информации. В CentOS 7 установка MariaDB 10 по умолчанию (с использованием стандартных rpm CentOS )имеет неправильное расположение файлов часовых поясов. У нас были проблемы с приложениями, которые зависят от MySQL для получения информации о часовом поясе. Независимо от того, какие настройки мы использовали в приложениях, они всегда возвращали время часового пояса UTC.
Это:
mysql_tzinfo_to_sql /usr/share/zoneinfo/right |mysql -u root mysql -p
Немедленно исправил проблему. Нет необходимости в перезагрузке! Я очистил кеш и т. д. для хорошей меры...
sfdisk -F /dev/sdX
напечатает как сумму свободного места, так и список областей свободного пространства:
# sfdisk -F /dev/sde
Unpartitioned space /dev/sde: 477.77 MiB, 500973568 bytes, 978464 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
Start End Sectors Size
22528 32527 10000 4.9M
53248 69391 16144 7.9M
71680 479231 407552 199M
479232 1023999 544768 266M
Так что, если вас интересует только сумма, вы можете разобрать ее с первой строки:
# sfdisk -F /dev/sde | head -1 | cut -d":" -f2 | cut -d"," -f1
477.77 MiB
Обратите внимание, что вычисление свободного пространства таким образом сложно. Здесь у меня есть 478 МБ свободного места, но это не значит, что я могу использовать все это, я сделал разделы таким образом, что первые две свободные области непригодны для использования (слишком малы для использования ), а пространство в в конце диска нет единого сплошного свободного места. Это преувеличенный пример, но я видел худшее разбиение, чем это:-)
Если вы хотите получить «самое большое свободное непрерывное пространство, используемое для раздела», вам нужно проверить начало и конец, типы разделов и т. д., и это будет сложно проанализировать из вывода bash, вам, вероятно, потребуется используйте библиотеку (, например libfdisk или libblockdev)для получения точной информации (что означает программирование на C или Python ).
Мне больше всего нравится способ Фредди, все выходные данные содержат информацию, которую я ищу, нет необходимости искать новый инструмент, чтобы получить. Позвольте мне сделать еще один комментарий здесь для начинающих, как я:
Идея Фредди верна, номер немного не тот, чтобы получить использованный сектор:
Список всех используемых секторов:
sudo fdisk -l /dev/sda |tail -n 5
/dev/sda1 2048 390819839 390817792 186.4G Linux filesystem
/dev/sda2 390819840 422070271 31250432 14.9G Linux swap
/dev/sda3 422070272 423120895 1050624 513M EFI System
/dev/sda4 423120896 423153663 32768 16M Microsoft reserved
/dev/sda5 423153664 628613119 205459456 98G Microsoft basic data
Подсчет всех используемых секторов в 4-м столбце:
sudo fdisk -l /dev/sda |tail -n 5 | awk '{count=count+$4}END{print count}'
628611072
Это 628611072 вместо 628613120.
Free sectors = total sectors - used sectors
= 976773168 - 628611072
= 348162096
Один сектор содержит 512 байт, свободного места:
(976773168 - 628611072)*512/(1024*1024*1024)
=166G
Спасибо за идею Фредди.