txmon - Active Transfer Monitor Dashboard¶
One-shot dashboard of active file transfers (rsync, persync, rclone, scp) with optional progress stats.
Overview¶
txmon lists running transfer processes found by pgrep, shows PID, tool name, target/source (last argument), and status. If the progress tool is installed, status shows progress percentage; otherwise it shows "Active".
When to use: Quick view of active rsync, persync, rclone, or scp jobs. For live progress of a single PID use progress -mp <pid>.
Usage¶
Options¶
-h,--help— Show help (to stderr) and exit.
No other options. Output is a single snapshot (no refresh loop).
Examples¶
# Show all active transfers
txmon
# Check exit code (0 = success, 1 = missing pgrep/ps)
txmon && echo "OK"
How It Works¶
- Dependencies — Requires
pgrepandps. If missing, prints error and exits 1. Optional:progressfor status column (warning if not found). - Detection —
pgrep -f "rsync|persync|rclone|scp"to get PIDs. - Per PID — For each PID:
ps -p PID -o args=for command line; skip if process is gone. Identify tool (Rsync, PerSync, RClone, SCp). Last argument = target/source. Ifprogressexists, runprogress -q -p PIDfor status line. - Output — Table: PID, TOOL, TARGET/SOURCE, STATUS. Footer shows LOG_DIR and hint for
progress -mp <pid>.
Configuration¶
No config file. Uses:
| Variable | Effect |
|---|---|
MACHINE_ID | Shown in dashboard header (default: unknown). |
LOG_DIR | Shown in footer (default: unknown). |
Dependencies¶
- Required:
pgrep,ps - Optional:
progress(for status column; script warns if missing)
Troubleshooting¶
"Missing dependency: pgrep" (or ps)¶
Install procps (or equivalent). On Debian/Ubuntu: sudo apt install procps.
"progress not found: status column will be limited"¶
Install the progress tool for percentage/throughput in the STATUS column (e.g. progress package on many distros). txmon still runs and shows "Active" for status.
No rows / "No active transfers found"¶
No processes matched the pattern (rsync, persync, rclone, scp). Start a transfer or check that the command line contains one of those names.