使用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 -
答案 0 :(得分:2)
我不知道为什么,但你可能会看一下libzfs,它在一个不错的java API中包装zfs命令
答案 1 :(得分:1)
df -kP命令返回空闲空间, 但最通用的方法是使用
Apache Commons IO FileSystemUtils.freeSpaceKb("/volume");
它使用df以及Windows的目录
答案 2 :(得分:0)
“df”命令报告什么?这是否也没有正确报告zfs上的可用空间?