• 2 Posts
  • 13 Comments
Joined 1 year ago
cake
Cake day: May 31st, 2023

help-circle


  • Depends on how much you want to set up. For my purposes, I just check for connectivity every minute, and record true or false as a new row in a sqlite database if there is connectivity.

    This is what I use on my raspberry pi,

    #!/usr/bin/env python3
    from datetime import datetime
    import sqlite3
    import socket
    from pathlib import Path
    
    try:
        host = socket.gethostbyname("one.one.one.one")
        s = socket.create_connection((host, 80), 2)
        s.close()
        connected = True
    except:
        connected = False
    timestamp = datetime.now().isoformat()
    
    db_file = Path(__file__).resolve().parent / 'Database.sqlite3'
    conn = sqlite3.connect(db_file)
    curs = conn.cursor()
    curs.execute('''CREATE TABLE IF NOT EXISTS checks (id INTEGER PRIMARY KEY AUTOINCREMENT, timestamp TEXT, connected INTEGER)>
    curs.execute('''INSERT INTO checks (timestamp, connected) VALUES (?, ?);''', (timestamp, 1 if connected else 0))
    conn.commit()
    conn.close()
    

    and I just have a crontab entry * * * * * ~/connectivity_check/check.py >/dev/null 2>&1 to run it every minute.

    Then I just check for recent disconnects via:

    $ sqlite3 ./connectivity_check/Database.sqlite3 'select count(*) from checks where connected = 0 order by timestamp desc;'
    

    Obviously, it’s not as full-featured as something with configurable options or a web UI etc, but for my purposes, it does exactly what I need with absolutely zero overhead.


  • What a weird take. You’re allowed to pay for whatever you’d like. Personally, I can’t afford to pay for any JetBrains product, even if I wanted to.

    Not only are there alternatives which may be better overall or better suited to someone’s needs, that wasn’t even my point. My point was more that it is only temporarily free, and so the parent commenter’s comment of “it’s free” should be taken with a grain of salt if you’re considering the product.

    Moreover, we’re in the Open Source community: Fleet is neither free nor open source, and pointing that out here is relevant.