Poor Mans Crontab Monitor

Crontab jobs are essential for automating tasks in Unix-based systems, but monitoring them can be a challenge, especially on a tight budget. This article provides a straightforward and cost-effective solution for monitoring crontab jobs, ensuring they run smoothly and efficiently.

Photo by Dominik Lückmann on Unsplash

The challenge begins when you have a critical crontab job, like managing Docker instances, which can consume a significant amount of disk space. Without proper monitoring, this can lead to unexpected issues. This article introduces a ‘Poor Man’s’ approach to crontab monitoring, a solution that is both budget-friendly and effective.

The solution involves setting up a crontab job to monitor Docker’s disk space usage and prune it as necessary. Here’s a glimpse of the crontab script:

size=$(df | grep '/dev/nvme0n1p1' | awk '{print $5}' | sed 's/.$//')
if [[ $size -ge 80 ]]; then
    docker system prune -a -f

This script is a practical example of how to manage resources efficiently without incurring additional costs. The approach is simple: automate the monitoring and maintenance of Docker instances to prevent them from consuming too much disk space.

But what about the crontab job logs? They can grow infinitely, which is not ideal. The solution? A script to truncate the log file, ensuring it doesn’t become unmanageably large. Here’s an example:

tail -n 10 /path/to/cron-job.log > /path/to/cron-job.log.tmp
mv -f /path/to/cron-job.log.tmp /path/to/cron-job.log

Lastly, the article discusses the installation of a basic monitoring system using AWS CLI tools. This system can send alerts based on the performance of the crontab job, ensuring you’re always informed about the status of your automated tasks.

For those managing servers or Docker instances on a budget, this ‘Poor Man’s Crontab Monitor’ offers a practical and effective solution. It’s a testament to the ingenuity of developers who find innovative ways to solve problems without breaking the bank.

Read More…