A Python module to monitor the uptime of the Internet connection and record the time and duration of any downtime
Project description
monitor internet connection
A Python module to monitor the uptime of the Internet connection in real-time and record the time and duration of any downtime.
Sample output
--------------------------------------------------------------
--------------------------------------------------------------
Monitoring Internet Connection commencing : 2020-01-10 10:34:45 polling every 1 second(s)
-------Internet Connection unavailable at : 2020-01-11 07:35:01
-------Internet Connection restored at : 2020-01-11 07:35:10
-------The duration of the downtime was : 0:00:09
-------Internet Connection unavailable at : 2020-01-12 08:35:20
-------Internet Connection restored at : 2020-01-12 08:36:27
-------The duration of the downtime was : 0:01:07
Monitoring Internet Connection stopped at : 2020-01-13 12:42:38
What is monitor_internet_connection?
It is a Python module to monitor the uptime of the Internet connection - that is to say to monitor that an external IP address is always reachable.
Why should I use monitor_internet_connection?
If you have automated long-running processes/programs/activities on your computer that requires Internet connectivity, there is nothing worse than coming back the next hour/day/week/whenever to review the logs/progress and find out that the program(s) failed or data is missing because of lost Internet connectivity. What is worse - you may not know exactly when Internet connectivity was lost. Thus, will you need to rerun the entire program/process? Or just a part of it? and so on.
The Python module monitor_internet_connection
is a solution to this problem in that it monitors Internet connectivity in real-time, displaying on the console/terminal and recording to a log file: the start time, the end time and the duration of any Internet connectivity downtime. You may simply run this module in a console/terminal and leave it running for days/weeks on end.
What does monitor_internet_connection do?
Every X seconds (default polling frequency is 1 second), the program monitors whether the Internet connection is alive and an external IP address is reachable.
If the Internet is unreachable:
-
The first observed time of failure is logged.
-
Every one-minute interval of subsequent unavailability is logged. The one-minute logs can be useful as a proxy indicator of whether the computer lost power or just the Internet connection was unavailable.
-
When Internet connectivity is restored, the first observed time of restoration is logged.
-
Finally, the total time duration of the Internet unavailability is logged.
Log File
-
The log file is called
internet_monitor.log
. -
The log file is written to the current working folder.
-
The log file is always appended to, never overwritten.
-
The information written to the log file is also displayed on the console/terminal.
-
The log file may be disabled via a command line parameter. See Usage below.
Prerequisites
You must have Python 3.6 or higher installed.
Installation
pip install monitor_internet_connection
QuickStart
python -m monitor_internet_connection
How do I exit the program
To exit the program, simply press Ctrl-C
inside the console/terminal. This will cause the program to exit gracefully.
Usage
usage: python -m monitor_internet_connection [-h] [-n] [-f N]
Monitor the uptime of the Internet connection and record any downtime
optional arguments:
-h, --help show this help message and exit
-n, --no-logfile do not create a log file (default: False)
-f N, --freq N specify polling frequency in seconds (default: 1)
Licence
This project is licensed under the MIT License.
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
Hashes for monitor-internet-connection-1.2.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3aa267228e80c7c287ae91dc2f299b902025c679917e42ce6ea5734eef6d4ff6 |
|
MD5 | 21617c05726876bfe09e3e4c3bbce0a0 |
|
BLAKE2b-256 | 2b8dc32912b490872ab68987f0a4ef2f6107907e2c96921ad25353e580fd49e9 |
Hashes for monitor_internet_connection-1.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0fd24500e03b8f20d84ff81305e622eb6f827d366dca19c8c4765a38cb8fc94 |
|
MD5 | daf7dac84b04654a689cbe149cebbe30 |
|
BLAKE2b-256 | 54a00f2ff760e574b4a7565194adb51e9a44fd82eaad7c1f24d7df0fbbc4513a |