BASH脚本编程实例

独步天下 2021-12-04 ⋅ 18 阅读

在系统管理中,脚本编程是一项非常重要的技能。使用脚本可以自动化常见的管理任务,提高工作效率。在本篇博客中,我将分享一些我在系统管理经验中使用的实例。

1. 定时备份脚本

做定时备份是每个系统管理员的必备技能。下面是一个简单的脚本,用于定期备份数据库文件。

#!/bin/bash

# 定义备份目录
backup_dir="/path/to/backup/"

# 定义备份文件名
backup_file="db_$(date +"%Y%m%d").sql"

# 定义数据库连接信息
db_user="username"
db_password="password"
db_name="database"

# 执行备份
mysqldump -u $db_user -p$db_password $db_name > $backup_dir$backup_file

# 打印备份完成信息
echo "Backup completed: $backup_dir$backup_file"

将上述脚本保存为backup.sh,使用chmod +x backup.sh给予执行权限。然后,使用crontab -e设置定期执行任务:

0 2 * * * /path/to/backup.sh

上述例子表示每天凌晨2点执行备份任务。

2. 监控服务器资源脚本

在服务器管理中,监控服务器资源的情况非常重要。下面是一个简单的脚本,用于监控服务器 CPU、内存和磁盘利用率。

#!/bin/bash

# 获取 CPU 利用率
cpu_usage=$(top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4}')

# 获取内存利用率
memory_usage=$(free | awk '/Mem/{printf("%.2f"), $3/$2*100}')

# 获取磁盘利用率
disk_usage=$(df -h | awk '/\/$/ {print $5}' | sed 's/%//')

# 发送邮件通知
if (( $(echo "$cpu_usage > 80" | bc -l) )); then
    echo "CPU usage is high: $cpu_usage%" | mail -s "CPU Warning" admin@example.com
fi

if (( $(echo "$memory_usage > 80" | bc -l) )); then
    echo "Memory usage is high: $memory_usage%" | mail -s "Memory Warning" admin@example.com
fi

if (( $(echo "$disk_usage > 80" | bc -l) )); then
    echo "Disk usage is high: $disk_usage%" | mail -s "Disk Warning" admin@example.com
fi

将上述脚本保存为monitor.sh,同样需要给予执行权限。然后,使用crontab -e设置定期执行任务:

* * * * * /path/to/monitor.sh

上述例子表示每分钟执行一次监控任务。

3. 日志清理脚本

在系统管理过程中,日志文件可能会占用大量磁盘空间。下面是一个简单的脚本,用于定期清理日志文件。

#!/bin/bash

# 定义日志目录
log_dir="/path/to/logs/"

# 定义需要清理的日志文件扩展名
log_ext=".log"

# 定义保留最近多少天的日志文件
keep_days=7

# 清理日志文件
find $log_dir -name "*$log_ext" -type f -mtime +$keep_days -delete

# 打印清理完成信息
echo "Log cleaning completed"

将上述脚本保存为cleanlogs.sh,同样需要给予执行权限。然后,使用crontab -e设置定期执行任务:

0 0 * * * /path/to/cleanlogs.sh

上述例子表示每天午夜执行清理任务。

这些脚本只是系统管理中的冰山一角,希望能给您提供一些灵感,将脚本应用到您的实际工作中。系统管理工作需要经验和灵活性,通过学习和实践,您将成为一个高效的系统管理员。

谢谢阅读!


全部评论: 0

    我有话说: