Используя java, как вы получаете объем свободного места в файловой системе solaris zfs?

StackOverflow https://stackoverflow.com/questions/759912

  •  09-09-2019
  •  | 
  •  

Вопрос

Используя java, как вы получаете объем свободного места в файловой системе solaris zfs?

У меня есть SunFire x4140 со встроенным жестким диском, установленным как / .Он также имеет подключенный JBOD с 7,6 ТБ места на жестком диске, сконфигурированный как файловая система ZFS и смонтированный как / app.

Я использую java.io.File.getUsableSpace или java.io.File.getFreeSpace, чтобы получить объем свободного места в файловой системе.На / (встроенном) жестком диске FS он работает корректно.

В /app (разделе zfs) File.getFreeSpace, File.getUsableSpace и File.getTotalSpace возвращают 0 (ноль).Кто-нибудь знает почему?Работает ли java.io.File.getUsableSpace в ZFS, и если да, то как?

Ниже показана файловая система zfs на рассматриваемом компьютере:

список /usr/sbin/zfs

NAME                USED  AVAIL  REFER  MOUNTPOINT
internal            196K  98.4G     1K  none
internal/logs        18K  98.4G    18K  /logs
j4200-1             442G  7.57T  2.44K  none
j4200-1/app         442G  7.57T   153M  /app
j4200-1/app@first   442G      -   442G  - 
Это было полезно?

Решение

Я не знаю почему, но вы можете взглянуть на libzfs, который оборачивает команду zfs в красивый Java API

Другие советы

Команда df -kP возвращает свободное пространство, но наиболее универсальным способом является использование

Ввод-вывод Apache Commons FileSystemUtils.freeSpaceKb("/объем");

он использует df, а также dir для Windows

Что сообщает команда «df»?Это тоже неправильно сообщает о свободном пространстве на zfs?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top