Usando Java, come si ottiene la quantità di spazio libero su un file system Solaris zfs?
Domanda
Usando Java, come si ottiene la quantità di spazio libero su un file system Solaris zfs?
Ho un SunFire x4140 con hdd integrato montato come /.Dispone inoltre di un JBOD connesso con 7,6 TB di spazio su disco fisso, configurato come file system ZFS e montato come /app.
Utilizzo java.io.File.getUsableSpace o java.io.File.getFreeSpace per ottenere la quantità di spazio libero sul file system.Su / (on-board) HDD FS funziona correttamente.
Su /app (la partizione zfs) File.getFreeSpace, File.getUsableSpace e File.getTotalSpace restituiscono tutti 0 (zero).Qualcuno sa perché?Java.io.File.getUsableSpace funziona su ZFS e, in caso affermativo, come?
Di seguito viene mostrato il file system zfs sulla macchina in questione:
/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 -
Soluzione
Non so perché, ma potresti dargli un'occhiata libzfs, che racchiude il comando zfs in una bella API Java
Altri suggerimenti
Il comando df -kp restituisce lo spazio libero, ma il modo più universale è usare
Apache CommonsIO FileSystemUtils.freeSpaceKb("/volume");
utilizza df e dir per Windows
Cosa riporta il comando "df"?Anche questo non segnala correttamente lo spazio libero su zfs?