0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Linuxでディスク容量をスキャンしてGrandPerspectiveで可視化する話

Last updated at Posted at 2025-01-13

はじめに

GrandPerspectiveは、Mac用の便利なディスク容量可視化ソフトです。Linuxでもファイルをスキャンして、GrandPerspectiveで容量を可視化したいと思ったことはありませんか?LinuxでディレクトリをスキャンしてGrandPerspectiveに互換なファイルを生成するRust製のコマンドラインツール gpscan を作成したので紹介します。

ツリーマップ形式でディスク容量を可視化するGrandPerspective

GrandPerspectiveはErwin Bonsmaさんが開発しているMac用のファイル容量可視化ソフトです。SourceForgeから無料でダウンロードできます。(MacのApp Storeでも購入できますが有料です。Erwinさんにカンパしたい人はどうぞ!)

image.png
image.png

スクリーンショットは公式サイトより

GrandPerspectiveを利用したことがある人は共感していただけると思いますが、このデスクトップアプリは非常に表示が美しく、キビキビと高速に動作します。ディスクを占有しているファイルを特定して、整理するのにとても便利です。

平面上に面積で数量を表現する可視化手法をツリーマップと言います。ツリーマップでディスク容量を可視化するツールはGrandPerspectiveだけではありません。それぞれのOSに向けたソフトウェアが開発・公開されています。

Mac Linux Windows
image.png image.png image.png
GrandPerspective QDirStat WinDirStat

Linuxのディスク容量をMacで可視化する方法

しかし、Linux(サーバー)のディスク容量を可視化して手元のMacで調査するのは簡単ではありません。

QDirStat(Linux向け)で可視化すればいいと思うかもしれませんが、Linuxサーバーにはデスクトップ環境やQtが入っていないことが多いでしょう。

QDirStatにはPerlスクリプトが付属しており、ディスクをスキャンすることもできます。しかし、ファイルを可視化する時に、やはりQDirStatが必要になります。有志によるMac版のQDirStatもありますが、GrandPerspectiveの使用感には及びません。

そこで、Linuxでディレクトリを走査してGrandPerspective互換のファイルを書き出す単純なコマンドラインツールgpscanを作成しました。

コマンドラインツール gpscan の紹介

概要

gpscanはRustで実装されたコマンドラインツールです。MacのGrandPerspectiveと互換性のあるファイルを出力します。出力されたファイルをローカルのMacにダウンロードして、GrandPerspectiveで開きます。これによりストレージの占有状況を可視化し、サイズの大きいファイルを効果的に見つけて整理することができます。

事前準備 - GrandPerspectiveのインストール

以下の方法のいずれかでインストールします

  1. SourceForge からダウンロード
  2. Mac App Store で購入
  3. Homebrewでインストールbrew install grandperspective

gpscanのインストール

方法① コンパイル済み実行ファイルを入手する

GitHub Releaseに置いてある実行ファイルをパスの通っているディレクトリにコピーしてください。gpscan-x86_64-unknown-linux-musl.tar.gz gpscan-x86_64-unknown-linux-gnu.tar.gz がありますが、muslの方が静的にリンクされているのでさまざまな環境で動くはずです。

方法② Rustのcargoパッケージマネージャーを使う

cargo install gpscan

gpscanの使い方

ホームディレクトリ全体を走査する場合は以下のようにします。

cd ~/                        # ホームディレクトリに移動
gpscan ./ > result.gpscan    # 現在のディレクトリをスキャンして結果を保存

生成されたファイル (result.gpscan) はGrandPerspectiveと互換性のあるXML形式のファイルです。SFTP、SCP、Cyberduckなどで手元のMacにダウンロードします。

手元のMacでファイル(result.gpscan)を開いてディレクトリの容量を可視化します。

ディレクトリを占有している古いファイル、不要なファイルがあれば、移動・削除することでディスクの容量をコントロールすることができます。

コマンドラインオプション

  -o, --output <FILE>          Output file (default: stdout)
  -A, --apparent-size          Use apparent size instead of disk usage [false]
  -m, --mounts                 Cross filesystem boundaries during scan [false]
  -z, --include-zero-files     Include zero-byte files in scan [false]
  -e, --include-empty-folders  Include empty folders in scan [false]
  -q, --quiet                  Suppress all informational messages [false]
  -h, --help                   Print help
  -V, --version                Print version

開発とライセンス

ライセンスはMITですが、実際にはほとんどのコードとそのコミットメッセージはChatGPTに書いてもらっています。(しかしAIにコードを書いてもらっているとはいえ、実際には方向性を示しながら何回も修正コミットを積み重ねる方式で作っており、制作自体にはそれなりの人手と時間をかけています。)

不具合を見つけた場合は、https://github.com/kojix2/gpscan までイシューもしくはプルリクエストを送っていただけると幸いです。


この記事は以上です

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?