Useful operations automation is more than a script that runs once: it should be versioned, executable, produce controlled output, and run on a predictable schedule. This challenge-based project asks you to assemble those pieces into a small local operations toolkit.
You will establish a Git workflow, write a Bash health monitor, transform a prepared log with sed and awk, and install two cron entries. Each phase validates concrete files, permissions, repository state, report content, or crontab syntax rather than providing a command-by-command solution.
What You Will Learn
- Initialize a local Git repository, define ignore rules, work on a
developbranch, and commit a baseline - Write an executable Bash script that reports root-filesystem usage and Nginx status with timestamps
- Extract disk usage with
dfand test a service withsystemctl,service, orpgrep - Remove
DEBUGrecords, redact IPv4 addresses, and reshape log fields withsedandawk - Produce an executable processor and a clean report with a prescribed timestamp, redaction tag, and message format
- Schedule monitoring every five minutes and log processing daily at
02:00, redirecting monitor errors to a file
Who This Course Is For
This project is for Linux and DevOps learners ready to combine Git, Bash, text processing, and Cron without step-by-step commands.
Prerequisites: Familiarity with shell scripting, executable permissions, Git basics, pipelines, sed, awk, process or service checks, and crontab syntax; this is an assessment-style project.
Learning environment: A browser-accessible Linux host with Bash, Git, Cron, Nginx-related service state, GNU/Linux text utilities, and prepared toolkit and log files; no remote Git host or cloud account is required.
Frequently Asked Questions
Does the Git phase push code to GitHub or another remote?
No. It creates only a local repository in /home/labex/ops-toolkit, adds *.tmp and logs/ ignore rules, switches to develop, and records at least one baseline commit.
Is the monitor a complete alerting system?
No. monitor.sh prints timestamped root-disk usage and whether Nginx is active. It does not define usage thresholds, send notifications, retain metrics, or provide a dashboard.
What log format does the processor expect?
It works with the prepared space-delimited records containing date, time, level, IPv4 address, and message. The output removes DEBUG, replaces IPs with [REDACTED], and keeps YYYY-MM-DD HH:MM:SS [REDACTED] Message....
Does the scheduling challenge wait for the jobs to run?
No. It verifies exactly two crontab entries: monitor.sh every five minutes with stderr sent to monitor.err, and process_logs.sh every day at 02:00.





