Welcome to 30 Days of Bash! This repository is a collection of Bash scripts created over the course of 30 days, each day focusing on a new task or system administration functionality. These scripts cover a wide range of topics, from system monitoring and file management to network security and automation.
- Day 1 - System Information
- Day 2 - Cron Job
- Day 3 - Directory Backup
- Day 4 - File Backup
- Day 5 - Package Installer
- Day 6 - Log Terminal Output
- Day 7 - Auto-Update System
- Day 8 - Service Status Checker
- Day 9 - Integrity Checker
- Day 10 - Manage User Accounts
- Day 11 - Disk Usage Monitor
- Day 12 - Network Connectivity Checker
- Day 13 - Git Repository Cloner
- Day 14 - Firewall Log Checker
- Day 15 - System Health Logger
- Day 16 - Setup Development Environment
- Day 17 - File Organizer
- Day 18 - SSH Login History
- Day 19 - Cron Job Scheduler
- Day 20 - Password Generator
- Day 21 - Log Analyzer
- Day 22 - File Difference Checker
- Day 23 - Markdown Note-taking
- Day 24 - Email Alerts
- Day 25 - Directory Size Analyzer
- Day 26 - Disk Cleaner
- Day 27 - Website Blocker
- Day 28 - Port Scanner
- Day 29 - Web Page Downloader
- Day 30 - Remote Deployment Tool
Displays system information such as hostname, OS details, uptime, and memory usage.
A tool to add, list cron jobs.
Creates a backup of specified directories.
Backs up individual files.
Installs software packages automatically.
Logs terminal session output to a file.
Automatically updates the system packages.
Checks and restarts essential services if they stop.
Checks for file integrity using checksums.
Adds, modifies, and deletes users and groups.
Monitors disk usage and alerts when usage crosses a threshold.
Pings a list of servers and reports any unresponsive ones.
Clones multiple repositories from a configuration file.
Outputs current firewall rules and logs any changes.
Logs system health metrics like CPU, memory, disk, and network usage.
Installs programming languages and tools required for development.
Organizes files into subdirectories based on file type.
Tracks and logs SSH login attempts.
Adds, lists, and removes cron jobs for automation.
Generates random passwords based on specified criteria.
Parses and extracts useful information from log files.
Compares two files and highlights differences.
Allows creating and managing Markdown notes from the command line.
Sends email alerts based on certain conditions, like low disk space.
Analyzes the size of directories and files within them.
Deletes temporary files and unused data to free up space.
Blocks access to specified websites by modifying the hosts file.
Scans open ports on a server for security analysis.
Downloads a webpage and its assets (e.g., CSS, images) locally.
Deploys an application to a remote server, automating file uploads and service restarts.
Each script is designed to be run from the command line. Some scripts may require sudo
permissions, particularly those that modify system files, manage services, or install packages.