crontab time-to-run utility
Thus fun small script will give you a nice eye-candy log of your time-to-next-run on each line of your crontab!
This small block of python code will automatically show you the number of days, hours, and minutes until the next item in your cron runs. Handy!
What is this? If you run the unix system there are two methods commonly utilized to run tasks at intervals (like windows task manager.) One is the older cron, and the newer one is to build a systemctl module. System administrators that do not need the exotic and complexity of using systemctl modules cna often set a schedule for a task by simply:
crontab -e # Edit tasks
crontab -l # List the crontab
Hostzinger has a good basic article on the basics of setting up your crontab schedule
from colorama import Fore
from croniter import croniter
import subprocess
import datetime
start_time = datetime.datetime.now()
print(St, f"{Fore.GREEN} cron inspect start :: {Fore.LIGHTCYAN_EX}{start_time}{Fore.RESET}")
try:
cronlist = subprocess.check_output(['crontab', '-l'])
cronlist = cronlist.decode('utf-8').split('\n')
for cron in cronlist:
if cron[0] != '#' and len(cron) > 5:
cron = cron.split('/')[0]
cvalue = croniter(cron, start_time)
nextrun = cvalue.get_next()
nextrun_time = datetime.datetime.fromtimestamp(nextrun)
delta_time = nextrun_time - start_time
delta_hours = int(delta_time.seconds / 3600)
delta_min = int(delta_time.seconds / 60) % 60
print(St, f"{Fore.GREEN} cron run :: {Fore.LIGHTCYAN_EX}{cron} :: {nextrun_time} :: {delta_time.days} days {delta_hours} hrs {delta_min} min {Fore.RESET}")
except Exception as e:
print(St,f"{Fore.RED} cron inspect fail :: {Fore.LIGHTCYAN_EX}")
Some purdy outputs: