Cronboard - A terminal-based dashboard for managing cron jobs
Posted by NorskJesus@reddit | Python | View on Reddit | 27 comments
## What My Project Does
**Cronboard** is a terminal-based application built with **Python** that lets you manage and schedule cron jobs both locally and on remote servers. It provides an interactive way to view, create, edit, and delete cron jobs, all from your terminal, without having to manually edit crontab files.
Python powers the entire project: it runs the CLI interface, parses and validates cron expressions, manages SSH connections via `paramiko`, and formats job schedules in a human-readable way.
## Target Audience
Cronboard is mainly aimed at **developers, sysadmins, and DevOps engineers** who work with cron jobs regularly and want a cleaner, more visual way to manage them.
## Comparison
Unlike tools such as `crontab -e` or GUI-based schedulers, Cronboard focuses on **terminal usability** and **clarity**. It gives immediate feedback when creating or editing jobs, translates cron expressions into plain English, and will soon support remote SSH-based management out of the box using ssh keys (for now, it supports remote ssh using hostname, username and password).
## Features
- Check existing cron jobs
- Create cron jobs with validation and human-readable feedback
- Pause and resume cron jobs
- Edit existing cron jobs
- Delete cron jobs
- View formatted last and next run times
- Connect to servers using SSH
The project is still in early development, so I’d really appreciate any feedback or suggestions!
**GitHub Repository:** [github.com/antoniorodr/Cronboard](https://github.com/antoniorodr/Cronboard)
NorskJesus@reddit (OP)
I have now launched the v0.1.2 with ssh key implementation. I am also trying to find a good solution to path autocompletions. Ive some ideas, but they do not work as I want (for now!)
javad94@reddit
Nice
NorskJesus@reddit (OP)
Thanks!
violentlymickey@reddit
I think a nice feature that I haven't seen elsewhere would be the reverse description, write in a desired schedule in text and have it convert to a cron expression.
master5o1@reddit
crontab.guru is a helpful website for this.
NorskJesus@reddit (OP)
I thought about that, but if I try to implement this I would need AI. There is a ton of possibilities with cron expressions
informatician@reddit
You might not need something as sophisticated as AI. dateparser (https://dateparser.readthedocs.io/en/latest/) and arrow (https://arrow.readthedocs.io/en/latest/guide.html#dehumanize) have ways to convert a natural language description to a standard datetime format.
NorskJesus@reddit (OP)
I will take a look, thank you so much!
sofloLinuxuser@reddit
Commenting to check this out when I get home
IAmLikeMrFeynman@reddit
I will look so cool in front of my colleagues, when I whip this bad boy out of the terminal. I am getting it!
NorskJesus@reddit (OP)
Hahah thanks! I hope I can make it even better! 😊
Salamandar3500@reddit
Yes please.
Looks nice.
NorskJesus@reddit (OP)
Thanks!
On the next update I want to implement autocompletion and ssh keys. But I will work on that from tomorrow :)
Salamandar3500@reddit
I am not sure ssh access is relevant tbh.
Usually you can't ssh as root. So you won't be able to edit crontabs remotely, right ?
NorskJesus@reddit (OP)
Each user can have their own cron jobs. You don’t need root access for that, although the root user can impose restrictions if desired.
Many people have root access on their servers, whether at work or on private systems.
trojan-813@reddit
Personally, I would say ssh is a helpful feature. However, I don’t ssh as root but I do elevate to root on the remote machines, so somehow allowing to see the jobs that run under root while ssh with non root creds and then elevating would be awesome. Although, probably difficult to do.
NorskJesus@reddit (OP)
Yeah I understand. I can try to do it, but if you can log in as root so it would be the same
NUTTA_BUSTAH@reddit
IMO both are common modes of operation (ssh root@server or ssh user@server sudo su).
Most hardened setups disable root login, but many also have it enabled with key only.
I think it might be a nice idea to extend the remote targets with a bit more brains so that servers require a bit of setup ("Remote Hosts" -> "New" -> Enter details like identifier, address, user, key, run commands as user (assumes 'user' is a sudoer) ).
This way I could set up it like this:
NorskJesus@reddit (OP)
Thanks for the feedback! Feel feee to open a issue with this request or any another request so I can look into it
trojan-813@reddit
Nuts is on track for what I do. My company disables root login for every machine and we must run “sudo” or “sudo su” which they prefer the former for logging purposes.
NorskJesus@reddit (OP)
I think I will first implement login with ssh keys and then I can maybe do the login as u/NUTTA_BUSTAH says or something like that 👌💪🏻
sphyko@reddit
Your github profile is so beautiful.
NorskJesus@reddit (OP)
Thank you so much!
Feel free to copy what you want from it.
sphyko@reddit
Now I can make my boring profile somewhat interesting . :)
NorskJesus@reddit (OP)
No problem!
Just ask if you need something :)
dev-ai@reddit
Looks good, thanks for sharing
NorskJesus@reddit (OP)
Thanks!