Python utility library to run commands in a checked fashion and report the result to Healthchecks.io
Project description
Run Checked
I ran into the struggle, that when running backups via cron I was never quite sure if they succeeded. Sure, I could rely on the cron error mails, but those are not generated when host is down entirely. On my journey to a solution I stumbled across a nice tool called Healthchecks.io. It does two things: Alerting when the cron job fails and when the corn job was not executed according to its schedule.
First, I tried wrapping my more complex backup scripts into bash scripts - monitoring the exit code of commands and piping stdout into a variable to maintain the log in Healthchecks. However, this proved to be quite difficult. Thus I wrote a small Python script to wrap my commands, gather stdout and stderr, and finally report everything back the my Healthchecks instance.
How to use
This is no ready-made script. It is rather intended to be used as a library, to provide quick utility functions.
from runchecked import HealthCheckedContext
with HealthCheckedContext(
"...Your Healthchecks ping-back url here...",
working_dir=".", # Optionally set the general working directory
enable_tty_output=None, # Explicitly activate or deactive the echo to stdout. When left to None, it tries auto-detecting if the shell session is interactive
) as ctx:
# Log some infos
ctx.log.info("Backup started")
# Set some environment variables global to the context
ctx.set_env("Hello", "World")
# Get the environment variable
ctx.log.debug("Hello %s", ctx.get_env("Hello"))
# Run some commands
return_code = ctx.run(
["ls", "-alh", "."], # commands are passed in the same way as in Python's `subprocess` library
allow_fail=False, # When true the context is not terminated, if the program exits with anything but 0
timeout=None, # Optional time for the program in seconds
pass_env=True, # If False only the system environment variables are passed, but not the context ones
)
License
MIT License (c) Martin Peters aka FreakyBytes
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 runchecked-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1893632f4fcb0e43c01f7892efa1948621f61acaefcb15990efcb41d5942ca54 |
|
MD5 | 0791417f5cf14826c1c9270f2b7a96fd |
|
BLAKE2b-256 | 439c4d74d270282590e497c12490a744bbfed23ac3ea685e93430db9a0bb8efa |