Tuptime | Advanced System Uptime Tracking for Linux
Discover how tuptime enhances uptime tracking for system administrators with detailed historical data

Driving SD-WAN Adoption in South Africa
Search for a command to run...
Discover how tuptime enhances uptime tracking for system administrators with detailed historical data

Driving SD-WAN Adoption in South Africa
No comments yet. Be the first to comment.
Enhancing Security and Compliance with ManageEngine ADAudit Plus

Why Pings Aren't Enough & NMS is Essential

What is SD-WAN (Software Defined Wide Area Networking)? | The Mechanics of this Groundbreaking New Network Technology

Embracing First Principles & the Scientific Method

Ever Wondered | "Is My Internet Really 99.9% Reliable?" 🤔

In the world of system administration, keeping tabs on your server's uptime isn't just a nice-to-have—it's essential for diagnosing issues, planning maintenance, and ensuring reliability. While the standard uptime command gives you a quick snapshot of how long your system has been running, it falls short when you need historical data across reboots. Enter tuptime, a lightweight, open-source tool that supercharges uptime reporting by tracking cumulative and per-session statistics, preserving everything in a simple SQLite database.
Developed by Ricardo Marmolejo García and hosted on GitHub, tuptime has been a go-to utility for Linux and FreeBSD admins since its inception. As of October 2025, it's actively maintained, with over 1,000 stars on GitHub and broad compatibility across distributions. Whether you're running a home server, a cloud VM, or an enterprise fleet, tuptime provides insights that go far beyond basic uptime checks.
uptime Command?The built-in uptime command is great for a one-liner glance:
14:23:45 up 5 days, 2:15, 1 user, load average: 0.10, 0.20, 0.25
But it resets on every reboot, ignoring your system's full history. Tuptime solves this by:
Preserving Data Across Reboots: Logs every startup, shutdown, uptime, and downtime in a persistent database.
Statistical Insights: Reports total system life, average session lengths, longest downtimes, and more.
No Daemon Overhead: Runs via cron jobs and init hooks—super lightweight (under 1MB footprint).
False-Positive Protection: Ignores glitches from NTP syncs, suspend/resume, or virtualization pauses.
Flexible Output: Default summary, tables, lists, CSV, or raw epochs for scripting.
Queryable Database: SQLite means you (or other tools) can run custom queries on your data.
| Feature | Standard uptime | Tuptime |
| Historical Data | No | Yes (SQLite DB) |
| Per-Boot Sessions | No | Yes |
| Statistics (Avg/Longest) | No | Yes |
| Output Formats | Text only | Table, List, CSV, Epoch |
| Dependencies | None | Python 3, SQLite |
| Overhead | None | Minimal (cron-based) |
Tuptime shines in scenarios like auditing server reliability, generating reports for SLAs, or integrating with monitoring stacks like Prometheus.
Core Metrics: Startups, shutdowns, total life, current uptime, cumulative up/down time.
Advanced Stats: Longest/average uptime & downtime, sleeping time accumulation.
Filtering & Sorting: By date, duration, or labels.
Export Options: CSV for Excel/Pandas, epochs for timestamps.
Kernel & Boot Info: Includes boot IDs and kernel versions.
Cross-Platform: Linux (all distros), FreeBSD; partial macOS support via ports.
Tuptime's hallmark is its dead-simple installation via a single bash command. No downloads, no fuss—just pipe and run. This one-liner fetches the official install script from Git.io (a GitHub URL shortener) and executes it:
bash < <(curl -Ls https://git.io/tuptime-install.sh)
curl -Ls: Downloads silently (-s), follows redirects (-L), shows errors (-S? Wait, it's -s for silent).
< <(...): Process substitution—feeds the script directly to bash without saving to disk.
The script:
Installs Python 3 and SQLite if missing (uses your distro's package manager).
Copies the tuptime binary to /usr/bin/.
Initializes the database (/var/lib/tuptime/tuptime.db).
Sets up cron jobs for updates.
Configures init hooks (Systemd/OpenRC) for boot/shutdown logging.
Time to Install: Under 30 seconds on a fresh Ubuntu/Debian box.
Requirements: Root access, internet connection. Tested on Ubuntu 24.04, Debian 12, Fedora 41, Arch, and FreeBSD 14.
tuptime
Sample Output:
System startups: 12
System shutdowns: 11
System life: 1 year, 2 months
Longest uptime: 45 days
Average uptime: 30 days
Current uptime: 5 days
Cumulative downtime: 2 weeks
tuptime -t
Output:
# Startup Uptime Shutdown Downtime
1 2024-01-01 45d 2024-02-15 1h
2 2024-02-16 3d 2024-02-19 2h
...
tuptime -l
Detailed per-boot info, including kernel and boot ID.
tuptime --csv > uptime_report.csv
Pipe to column -t or import into spreadsheets.
tuptime --epoch
Outputs Unix timestamps for automation.
tuptime -t --since 2025-01-01
Linux: All major distros (Ubuntu, Debian, Fedora, CentOS/RHEL, Arch, openSUSE). Systemd, OpenRC, SysVinit.
FreeBSD: Native ports available.
macOS: Experimental via Homebrew (not officially supported).
Python: 3.6+ required.
Database: SQLite3 (auto-created, ~1KB per entry).
No issues with containers (Docker), VMs, or multi-user setups.
Update Database: Auto via cron; manual: sudo tuptime -q.
Reset Data: sudo rm /var/lib/tuptime/tuptime.db && sudo tuptime.
View DB: sqlite3 /var/lib/tuptime/tuptime.db "SELECT * FROM tuptime;"
Logs: Check /var/log/tuptime.log for verbose mode (tuptime -v).
Common Fixes:
| Issue | Solution |
| --- | --- |
| No historical data | Run sudo tuptime initially |
| Cron not updating | sudo systemctl restart cron |
| NTP skew warnings | Enable systemd-time-wait-sync |
| Permission errors | chown tuptime:tuptime on DB |
Tuptime transforms a simple uptime check into a powerful analytics tool, all with one line to install. In under a minute, you'll have historical insights that save hours of manual logging. Whether you're a solo dev tracking a Raspberry Pi or an admin monitoring a data center, tuptime delivers reliability without complexity.
Ready to start? Fire up your terminal and run:
bash < <(curl -Ls https://git.io/tuptime-install.sh)
Then tuptime—watch the magic unfold.
For more, check the full manual or join the community discussions on GitHub. Happy monitoring! 🚀

Ronald Bartels | LinkedIn | Instagram