使用java,你如何获得solaris zfs文件系统上的可用空间量?

时间:2009-04-17 10:30:56

标签: java file-io zfs

使用java,如何获得solaris zfs文件系统上的可用空间量?

我有一个安装了内置硬盘的SunFire x4140作为/。它还具有连接的JBOD,具有7.6TB的HDD空间,配置为ZFS文件系统并安装为/ app。

我使用java.io.File.getUsableSpace或java.io.File.getFreeSpace来获取文件系统上的可用空间量。在/(板载)HDD FS上它可以正常工作。

on / app(zfs分区)File.getFreeSpace,File.getUsableSpace和File.getTotalSpace都返回0(零)。有谁知道为什么? java.io.File.getUsableSpace是否可以在ZFS上运行,如果是,如何处理?

以下显示了相关计算机上的zfs文件系统:

  

/ usr / sbin / zfs list

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  - 

3 个答案:

答案 0 :(得分:2)

我不知道为什么,但你可能会看一下libzfs,它在一个不错的java API中包装zfs命令

答案 1 :(得分:1)

df -kP命令返回空闲空间, 但最通用的方法是使用

Apache Commons IO FileSystemUtils.freeSpaceKb("/volume");

它使用df以及Windows的目录

答案 2 :(得分:0)

“df”命令报告什么?这是否也没有正确报告zfs上的可用空间?