Example 1: Backup Script

#!/bin/bash

SOURCE_DIR="/home/user/documents"
BACKUP_DIR="/home/user/backups"

mkdir -p $BACKUP_DIR
cp -r $SOURCE_DIR/* $BACKUP_DIR

echo "Backup completed successfully!"

Example 2: System Monitoring Script

#!/bin/bash

echo "CPU Usage:"
top -n 1 | grep "Cpu(s)" | awk '{print $2 + $4 "% CPU used"}'

echo "Memory Usage:"
free -h | grep Mem | awk '{print $3 "/" $2 " used"}'

echo "Disk Space Usage:"
df -h | grep "^/dev/"

Example 3: Log Rotation Script

A log rotation script can help manage log files and prevent them from growing too large.

#!/bin/bash

LOG_DIR="/var/log/myapp"
MAX_SIZE=1048576  # 1MB in bytes

for log_file in $LOG_DIR/*.log; do
	  if [ $(stat -c %s "$log_file") -gt $MAX_SIZE ]; then
        mv "$log_file" "$log_file.old"
        echo "Archived $log_file"
    fi
done

Automating Scripts with Cron Jobs