Usando o Java, como você obtém a quantidade de espaço livre em um sistema de arquivos Solaris ZFS?
Pergunta
Usando o Java, como você obtém a quantidade de espaço livre em um sistema de arquivos Solaris ZFS?
Eu tenho um Sunfire X4140 com HDD embutido montado como /. Ele também possui um JBOD conectado com 7,6 TB de espaço em HDD, configurado como um sistema de arquivos ZFS e montado como /aplicativo.
Eu uso java.io.file.getusableSpace ou java.io.file.getfreespace para obter a quantidade de espaço livre no sistema de arquivos. On / (o bordo) HDD FS Funciona corretamente.
ON /APP (The ZFS Partition) file.getfreespace, file.getusableSpace e file.gettotalspace All Return 0 (zero). Alguem sabe por quê? Java.io.file.getusableSpace funciona no ZFS e, em caso afirmativo, como?
A seguir, mostra o sistema de arquivos ZFS na máquina em questão:
Lista/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 -
Solução
Eu não sei por que, mas você pode dar uma olhada em libzfs, que envolve o comando ZFS em uma boa API Java
Outras dicas
O comando df -kp retorna o espaço livre, mas a maneira mais universal é usar
Apache Commons io Filesystemutils.freespacekb ("/volume");
Utiliza o DF e também o Dir for Windows
O que o relatório de comando "DF"? Isso também não está relatando espaço livre no ZFS corretamente?