Just another disk usage analyzer with treemap GUI.
Project description
disk_treemap
Just another disk usage analyzer with treemap GUI.
Pros
- Written in Python. Easy to run, modify and extend. Cross platform support. (Tested on Linux, Windows, and Android with Termux.)
- B/S structure. You can run the scanner on a remote machine, and view treemap via a browser on a local machine
- Support save/load a treemap. You can run the scanner on a machine, then copy result to another one and view it.
- Support S3 or S3 compatible object storage service
Cons
- The web base frontend may suffer from performance issue if the treemap is too large.
- Scan speed is not ideal, especially on Windows.
Installation
Install via pip package installer
pip install disk_treemap
Build and install from source
# clone the repository
git clone
git submodules update --recursively
# build static
python3 setup.py build_static
#build wheel
python3 setup.py bdist_wheel
#install built wheel
pip install dist/disk_treemap-1.0.0-py3-none-any.whl # change the filename
Usage
usage: main.py [-h] [--size-tree-path SIZE_TREE_PATH] [--overwrite]
[--scan-only] [--host HOST] [--port PORT] [--compression]
[--endpoint-url ENDPOINT_URL] [--follow-links]
[--follow-mounts]
[paths [paths ...]]
positional arguments:
paths path(s) to scan. If multiple paths is provided, they
will be show in root side by side. S3 or compatible
object storage service is supported by a "s3://"
prefixed URI
optional arguments:
-h, --help show this help message and exit
--size-tree-path SIZE_TREE_PATH, --size_tree_path SIZE_TREE_PATH, -f SIZE_TREE_PATH
path to save scan result as a JSON file
--overwrite, -o overwrite existed JSON file. default to False
--scan-only, --scan_only, -s
scan and save JSON file but do not start web server.
default to False
--host HOST, -H HOST listening host of the web server
--port PORT, -p PORT listening port of the web server. default to 8000
--compression, -c enable compression of web server. require
flask_compress to operate. default to False
--endpoint-url ENDPOINT_URL
custom endpoint url, only affects S3
--follow-links, --follow_links
follow symlinks
--follow-mounts, --follow_mounts
follow mounts
You may also use the module directly: python -m disk_treemap.main
. Same arguments apply.
A size_tree.json
will be generated in the current directory. It contains file tree and file size information. Keep it
safe!
Typical Usage
Analyze an ordinary computer
-
Run
disk-treemap <Paths to analyze>
-
After
listening 127.0.0.1:8000
appearing, open browser and navigate to http://127.0.0.1:8000 .
Analyze a remote Linux server, view on the local machine
-
Run
disk-treemap <Paths to analyze> --host 0.0.0.0
.If bandwidth between the server and the local machine is limited, try to install optional dependencies and append
--compression
to command above to enable compression. -
After
listening 0.0.0.0:8000
appearing, open browser on the local machine and navigate to http: //:8000 .
Analyze a remote Linux server without external accessible IP, view on the local machine
-
Run
disk-treemap <Paths to analyze> --scan_only
-
After process exit without error. There should be a file named
size_tree.json
in the current directory. Copy the file to local machine usingrsync
or other tools. -
Run
disk-treemap
in the directory where the copied file located. -
After
listening 127.0.0.1:8000
appearing, open browser and navigate to http://127.0.0.1:8000 .
Install and analyze an Android phone with Termux
-
Install Termux https://termux.com/
-
Install Python and pip in Termux https://wiki.termux.com/wiki/Python
-
Install disk_treemap via pip:
pip install termux
TODO
-
Provide more visualization. Icicle/flame, sunburst maybe.
-
Use NTFS USN Journal to speed up scanning on Windows.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for disk_treemap-1.0.7-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bad9dc4020618b584c9f06956bafc19dff275eedf61565bc4c442b4771bb5f6e |
|
MD5 | 872dbbcd6db1a42788dca98444f91ec4 |
|
BLAKE2b-256 | 894eb9b506a2c12946158b27ddf16db7c73ebfcde3b4f41d3f65853f809f1e36 |