Как создать несколько разделов одинакового размера из командной строки?

В Linux есть только кооперативные блокировки. Ничто не помешает процессу открыть файл, на открытие которого у него есть разрешение. Вам нужно будет вызвать механизм блокировки во всех процессах, использующих файл, чтобы предотвратить одновременный доступ. Однако то, что вы пытаетесь сделать, не имеет ничего общего с одновременным доступом, насколько я могу судить.

Если вы удаляете файл, открытый в процессе, файл на самом деле не удаляется: удаляется только его имя. Сам файл удаляется только тогда, когда у него больше нет имени (нулевая жесткая ссылка) и он больше не открыт. Поэтому если вы выполните rm server.log, в то время как приложение JBoss все еще имеет его открытым, это не освободит место на диске, пока приложение JBoss не будет перезапущено (или не закроет файл журнала по какой-либо другой причине).

Если вы выполните > server.log или echo "" > server.log, это сделает усечение файла до 0 или 1 байта соответственно, так что место на диске будет освобождено. Если приложение JBoss писало в файл, оно будет продолжать писать в той же позиции, на 500+ МБ в файл. Это приводит к разреженному файлу, где файл содержит нулевые байты до позиции, где приложение начало запись в него. Например, если файл был 500 МБ, когда вы его усекли, а приложение продолжало записывать 1 МБ, то размер файла составляет 501 МБ, но дисковое пространство, занимаемое файлом, составляет только 1 МБ, а первые 500 МБ файла - это нулевые байты.

Если вы хотите, чтобы приложение писало в начало файла, вам придется указать ему это сделать. Как правило, вы говорите ему закрыть текущий файл журнала и начать новый. Как grebneke прокомментировал: смотрите Как очистить server.log в JBoss?

0
13.03.2019, 13:55
1 ответ
  1. Используйте для этого Ansible. ниже представлен модуль ansible для создания разделов.

    • расстались :устройство :/dev/sdb #сведения об устройстве число :1 #это номер раздела. вы можете определить числа с переменной от 1 до 20 #состояние :настоящее время часть _конец :2GiB

    parted: device: /dev/sdb number: "{{ item.num }}" state: present with_items: - {num : 1, 2, 3, 4, 5.... till 20} - filesystem: fstype: ext2 dev: /dev/sdb"{{item.num}}" with_items: - {num : 1, 2, 3, 4, 5.... till 20}

0
28.01.2020, 03:55

Теги

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