どのようにSolaris ZFSファイルシステムの空き容量を取得するか、Javaを使用して?
質問
Javaを使用して、どのようにSolaris ZFSファイルシステムの空き容量を得るのですか?
私は、内蔵HDD /としてマウント付きのSunFire X4140のを持っています。また、ZFSファイルシステムとして構成及び/アプリケーションとして実装、HDD容量の7.6TBに接続されたJBODを有している。
私は、ファイルシステムの空き容量を取得するためにjava.io.File.getUsableSpaceまたはjava.io.File.getFreeSpaceを使用しています。 /(オンボード)HDDのFS上では正しく動作します。
/アプリ(ZFSパーティション)File.getFreeSpace、File.getUsableSpaceとFile.getTotalSpace上のすべての戻り0(ゼロ)。誰もがなぜ知っていますか? ZFS上java.io.File.getUsableSpaceの作業を行い、もしそうなら、どのように?
以下は、問題のマシン上の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 のを見てみましょうすることができ、その素敵なJava APIのZFSコマンドをラップ
他のヒント
DF -kPコマンドは、空き容量を返します しかし、ほとんどの普遍的な方法を使用することです。
はApache CommonsのIO FileSystemUtils.freeSpaceKb ( "/体積"); の
それはDFだけでなく、Windows用のディレクトリを利用
「DF」コマンドのレポートとは何でしょうか?また、正しくZFS上の空き領域を報告していないということですか?