{"id":13557248,"url":"https://github.com/rfmoz/tuptime","last_synced_at":"2026-01-24T16:03:43.946Z","repository":{"id":31155115,"uuid":"34715081","full_name":"rfmoz/tuptime","owner":"rfmoz","description":"Report historical and statistical real time of the system, keeping it between restarts. Like uptime command but with more interesting output.","archived":false,"fork":false,"pushed_at":"2025-12-21T15:06:48.000Z","size":1691,"stargazers_count":302,"open_issues_count":2,"forks_count":41,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-12-22T10:28:53.802Z","etag":null,"topics":["downtime","downtime-monitor","freebsd","linux","sysadmin-tool","uptime","uptime-monitor"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rfmoz.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2015-04-28T07:18:04.000Z","updated_at":"2025-12-11T15:38:07.000Z","dependencies_parsed_at":"2023-11-25T21:21:04.060Z","dependency_job_id":"b610c292-5ab0-490b-8bb6-d4b18b12f9cb","html_url":"https://github.com/rfmoz/tuptime","commit_stats":null,"previous_names":["rfrail3/tuptime"],"tags_count":28,"template":false,"template_full_name":null,"purl":"pkg:github/rfmoz/tuptime","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rfmoz%2Ftuptime","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rfmoz%2Ftuptime/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rfmoz%2Ftuptime/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rfmoz%2Ftuptime/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rfmoz","download_url":"https://codeload.github.com/rfmoz/tuptime/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rfmoz%2Ftuptime/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28730739,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-24T10:24:43.181Z","status":"ssl_error","status_checked_at":"2026-01-24T10:24:36.112Z","response_time":89,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["downtime","downtime-monitor","freebsd","linux","sysadmin-tool","uptime","uptime-monitor"],"created_at":"2024-08-01T12:04:14.309Z","updated_at":"2026-01-24T16:03:43.934Z","avatar_url":"https://github.com/rfmoz.png","language":"Python","funding_links":[],"categories":["Python","linux"],"sub_categories":[],"readme":"tuptime\n=======\n\nTuptime reports the system’s historical and statistical uptime, preserved across reboots. Like uptime, but with richer output.\n\n\n### Sample output\n\nJust after install:\n\n\tSystem startups:        1  since  24/09/15 21:54:09\n\tSystem shutdowns:       0 ok  +  0 bad\n\tSystem life:            21m 30s\n\n\tLongest uptime:         21m 30s  from  24/09/15 21:54:09\n\tAverage uptime:         21m 30s\n\tSystem uptime:          100.0%  =  21m 30s\n\n\tLongest downtime:\t0s\n\tAverage downtime:       0s\n\tSystem downtime:        0.0%  =  0s\n\n\tCurrent uptime:         21m 30s  since  24/09/15 21:54:09\n\nA few days later:\n\n\tSystem startups:        110  since  08/08/15 10:15:27\n\tSystem shutdowns:       107 ok  +  2 bad\n\tSystem life:            47d 12h 02m 15s\n\n\tLongest uptime:         2h 10m 44s  from  09/08/15 20:49:17\n\tAverage uptime:         25m 08s\n\tSystem uptime:          4.04%  =  1d 22h 04m 44s\n\n\tLongest downtime:\t7d 10h 17m 26s  from  10/08/15 06:09:45\n\tAverage downtime:       9h 56m 42s\n\tSystem downtime:        95.96%  =  45d 13h 57m 30s\n\n\tCurrent uptime:         23m 33s  since  24/09/15 21:54:09\n\nSwich to -t | --table option:\n\n\tNo.        Startup T.        Uptime         Shutdown T.   End    Downtime\n                                                                                                                                    \n\t1   08/08/15 10:15:27           42s   08/08/15 10:16:09    OK         16s\n\t2   08/08/15 10:16:26           49s   08/08/15 10:17:15    OK         16s\n\t3   08/08/15 10:17:32        5m 47s   08/08/15 10:23:19    OK         16s\n\t4   08/08/15 10:23:36            9s   08/08/15 10:23:45   BAD         42s\n\t5   08/08/15 10:24:28    2h 09m 27s   08/08/15 12:33:55    OK     41m 44s\n        . . .\n\nOr swich to -l | --list option:\n\n\tStartup:  1  at  08/08/15 10:15:27\n\tUptime:   42s\n\tShutdown: OK  at  08/08/15 10:16:09\n\tDowntime: 16s\n\n\tStartup:  2  at  08/08/15 10:16:26\n\tUptime:   49s\n\tShutdown: OK  at  08/08/15 10:17:15\n\tDowntime: 16s\n\n\tStartup:  3  at  08/08/15 10:17:32\n\tUptime:   5m 47s\n\tShutdown: OK  at  08/08/15 10:23:19\n\tDowntime: 16s\n\t. . .\n\n\n### Basic Installation\n\n\n#### By package manager\n\n* Debian: https://packages.debian.org/tuptime\n* Ubuntu: https://packages.ubuntu.com/tuptime\n* Fedora, EPEL: https://src.fedoraproject.org/rpms/tuptime\n* FreeBSD: https://www.freshports.org/sysutils/tuptime\n* Archlinux: https://aur.archlinux.org/packages/tuptime\n* OpenSUSE: https://software.opensuse.org/package/tuptime (Community Maintained / Unofficial)\n* Alpine: https://pkgs.alpinelinux.org/package/edge/testing/x86_64/tuptime\n\n#### By one-liner script\n\n\tbash \u003c \u003c(curl -Ls https://git.io/tuptime-install.sh)\n\n\n#### By manual method\n\nBriefly in a Linux or FreeBSD system...\n\nClone the repo:\n\n\tgit clone --depth=1 https://github.com/rfmoz/tuptime.git\n\nCopy the 'tuptime' file located under 'latest/' directory to '/usr/bin/' and make it executable:\n\n\tcp tuptime/src/tuptime /usr/bin/tuptime\n\tchmod ugo+x /usr/bin/tuptime\n\nAssure that the system pass the prerequisites:\n\n\tpython 3.X \n\nRun first with a privileged user:\n\n\ttuptime\n\nPick from 'src/' folder the right file for your cron and init manager, setup both\nproperly. See 'tuptime-manual.txt' for more information.\n\n\n### Highlights about Tuptime internals\n\n- It doesn't run as a daemon, at least, it only needs execution when the init manager startup and shutdown the system. To avoid issues with a switch off without a proper shutdown, like power failures, a cron job and a .timer unit are shipped with the project to update the registers each n minutes. As a system administrator, you can easily choose the best number for your particular system requirements.\n\n- It is written in Python using common modules and as few as possible, quick execution, easy to see what is inside it, and modify it for fit for your particular use case.\n\n- It registers the times in a sqlite database. Any other software can use it. The specs are in the tuptime-manual.txt. Also, it has the option to output the registers in seconds and epoch or/and in csv format, easy to pipe it to other commands.\n\n- Its main purpose is tracking all the system startups/shutdowns and present that information to the user in a more understandable way. Don't have mail alerts when a milestones are reached or the limitation of keep the last n records.\n\n- It's written to avoid false startups registers. This is an issue that sometimes happens when the NTP adjust the system clock, on virtualized environments, on servers with high load, when the system resynchronized with their RTC clock after a suspend and resume cycle...\n\n- It can report:\n  - Registers as a table or list ordering by any label.\n  - The whole life of the system or only a part of it, closing the range between startups/shutdowns or timestamps.\n  - Accumulated running and sleeping time over an uptime.\n  - The kernel version used and boot idenfiers.\n  - The system state at specific point in time.\n\n\n### Alternatives\n\njournalctl --list-boots - Show a tabular list of boot numbers (relative to the current boot), their IDs, and the timestamps of the first and last message pertaining to the boot. Close output than 'tuptime  -bit'.\nhttps://github.com/systemd/systemd/\n\nuptimed - Uptime record daemon keeping track of the highest uptimes a computer system ever had. It uses the system boot time to keep sessions apart from each other.\nhttps://github.com/rpodgorny/uptimed\n\ndowntimed - Monitoring operating system downtime, uptime, shutdowns and crashes and for keeping record of such events.\nhttps://dist.epipe.com/downtimed/\n\nlastwake - Analyzes the system journal and prints out wake-up and sleep timestamps; for each cycle it tells whether the system was suspended to RAM or to disk (hibernated).\nhttps://github.com/arigit/lastwake.py\n\n(bonus) dateutils - Not an alternative, but it is a nifty collection of tools to work with dates.\nhttps://github.com/hroptatyr/dateutils\n\nruptime - Is a modern rwhod replacement that is easy to customize, not limited to a network, and does not send clear text data over the network.\nhttps://github.com/alexmyczko/ruptime\n\n\n### More information\n\nPlease, read tuptime-manual.txt for a complete reference guide.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frfmoz%2Ftuptime","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frfmoz%2Ftuptime","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frfmoz%2Ftuptime/lists"}