4.9 KiB
Quickstart
Get up and running with probefetch in under a minute.
Installation
No build step. No pip install. Just copy the file.
# Download or copy probefetch.py anywhere
curl -O https://git.dcos.net/dcosnet/probefetch/raw/branch/main/probefetch.py
chmod +x probefetch.py
# Or just run it directly
python3 probefetch.py
For system-wide access, place it on your PATH:
sudo cp probefetch.py /usr/local/bin/probefetch
That is the entire installation process.
First Run
$ python3 probefetch.py
Host: atlas - OS: Linux 6.8.0/x86_64 - Distro: Ubuntu 24.04 - CPU: 8 x AMD Ryzen 7 5800X (3700.00 MHz) - GPU: NVIDIA GeForce RTX 3070 8192MB (5888 CUDA cores) - Processes: 312 - Uptime: 14d 6h 32m - Users: 1 - Load Average: 0.83 - Memory Usage: 7842.50MB/16384.00MB (47.86%) - Disk Usage: 186.42GB/512.00GB (36.41%)
Everything on one line. No formatting, no tables, no nonsense. Machine-parseable by splitting on -.
Special Modes
Each special mode produces its own independent line. These are useful for dashboards, shell prompts, status bars, or quick audits.
# What development tools are installed?
$ python3 probefetch.py --devel
Dev: Python 3.12.3 - Node.js 20.11.0 - Go 1.22.0 - Rust 1.76.0 - GCC 13.2.0 - CMake 3.28.3 - Git 2.43.0 - pip 24.0 - npm 10.2.4 - Cargo 1.76.0
# What admin/infrastructure software is running?
$ python3 probefetch.py --admin
Admin: Cockpit, PostgreSQL, nginx, Redis
# What DevOps tooling is available?
$ python3 probefetch.py --devops
DevOps: Docker, kubectl, Helm, Ansible, AWS CLI, GitHub CLI
# Kernel details including security modules
$ python3 probefetch.py --kernel
Kernel: 6.8.0-40-generic (gcc 13.2.0) - Security: AppArmor - Modules: 284
# Package counts across all detected package managers
$ python3 probefetch.py --pkgs
Packages: dpkg: 2847 - snap: 112
# Security posture at a glance
$ python3 probefetch.py --security
Security: Tools: UFW, Fail2Ban, AppArmor, nftables - UFW: active - Fail2Ban: installed - ASLR: full - dmesg restricted: yes - kptr restricted: yes
# Network information
$ python3 probefetch.py --net
Network: IF: eth0 (aa:bb:cc:dd:ee:ff) - IP: 192.168.1.42 - GW: 192.168.1.1 - DNS: 1.1.1.1, 8.8.8.8 - Established: 47 - Listening: 12
Color Themes
Pick a theme that matches your terminal:
python3 probefetch.py --theme=dracula
python3 probefetch.py --theme=gruvbox
python3 probefetch.py --theme=nord
python3 probefetch.py --theme=solarized
python3 probefetch.py --theme=mono # no color, bold/dim only
python3 probefetch.py --theme=auto # auto-detect (default)
When stdout is piped or redirected, colors are automatically suppressed.
Selective Output
Show only the sections you need:
# Just the host, CPU, and memory
python3 probefetch.py hostname cpu memory
# Just uptime and load
python3 probefetch.py uptime loadaverage
# Include battery and network traffic (off by default)
python3 probefetch.py --battery --network
When section names are provided, everything else is turned off.
Stealth Mode
In environments where spawning subprocesses is restricted or undesirable, use stealth mode. All data is gathered from file reads only (/proc, /sys, /etc):
python3 probefetch.py --sleuth
python3 probefetch.py --sleuth --theme=nord
Stealth mode works well for:
- Container images where you want minimal attack surface
- Chroot environments or build systems
- Security-audited production boxes
- Systems with restricted
sh -cexecution policies
Note that some information (like process counts, tool versions, and network IPs) requires subprocess calls and will be unavailable in stealth mode.
Piping and Scripting
The single-line output is designed to be easy to parse:
# Extract just the memory percentage
python3 probefetch.py | grep -oP 'Memory Usage: \K.*'
# Feed into a monitoring script
python3 probefetch.py --theme=mono >> /var/log/probefetch.log
# Use in a shell prompt
export PROBEFETCH=$(python3 probefetch.py --theme=mono hostname cpu memory)
echo "$PROBEFETCH"
Version Check
python3 probefetch.py -v
# probefetch v5.0.0
Tips
- Pipe-friendly: Colors are auto-disabled when stdout is not a TTY, so piping to
grep,awk, orjqworks withoutsedhacks to strip ANSI codes. - SSH aliases: Add
probefetchto yourRemoteCommandin~/.ssh/configfor an instant system overview when you connect. - MOTD integration: Drop a one-liner into
/etc/update-motd.d/90-probefetchto show system info on every login. - Cron jobs: Use
--sleuthin cron to avoid unnecessary process spawning. - Disk accuracy: On Linux, only physical block devices are counted. Loop devices (snap packages, ISO mounts), network filesystems (NFS, CIFS), and tmpfs are automatically excluded.
- Memory accuracy: On kernels 3.14 and later,
MemAvailablefrom/proc/meminfois used for the most accurate representation of available memory.