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 and S3 compatible object storage service
- Support using Everything by voidtools to speedup scanning extraordinarily.
Cons
- The web base frontend may suffer from performance issue if the treemap is too large.
Installation
Install via pip package installer
pip install disk_treemap
Build and install from source
dependencies:
- npm:
npm
must be inPATH
to build static. Make sure NodeJS and npm is installed and inPATH
.
# clone the repository
git clone
git submodule update --recursive
# 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: disk-treemap [-h] [--size-tree-path SIZE_TREE_PATH] [--overwrite]
[--scan-only] [--host HOST] [--port PORT] [--compression]
[--endpoint-url ENDPOINT_URL] [--follow-links]
[--follow-mounts] [--everything]
[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
--everything use Everything by voidtools to speedup scanning. The
result will be absolute path. Everything must be
running and only x64 version is supported.
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 Windows computer with Everything x64 installed
-
Make sure Everything x64 is running. Get it from https://www.voidtools.com/ if it's not installed. It's free.
-
Run
disk-treemap --everything <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 disk_treemap
-
Just do analyze as your phone is an ordinary computer.
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
File details
Details for the file disk_treemap-1.0.10.tar.gz
.
File metadata
- Download URL: disk_treemap-1.0.10.tar.gz
- Upload date:
- Size: 157.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5ef752a19ed7518107554ac2199712e4019fcd4f400f9eb78678393d3637e33 |
|
MD5 | 924e9b07be61c708b67a863219f22569 |
|
BLAKE2b-256 | ec4cbebb292e14764c8b4ea01192fd0a8c4d75a5deb9aab8fb3bfdabe426b01e |
File details
Details for the file disk_treemap-1.0.10-py3-none-any.whl
.
File metadata
- Download URL: disk_treemap-1.0.10-py3-none-any.whl
- Upload date:
- Size: 157.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | df79ab0f0c6e743f26c335898e5b98df9df2dddc9598abd4c46a47e318b76ce0 |
|
MD5 | aa13d7554fbe5fea6325625db1044b25 |
|
BLAKE2b-256 | d259e0d1b3c658726f74dd3ffb83aa937a0e0d8424cdcf5b343f397016e4bae5 |