在现代IT运维中,RockyLinux系统管理脚本是提升效率、减少人为错误的重要工具。无论你是刚接触Linux的新手,还是希望提升运维技能的管理员,掌握Shell脚本编写都是必备技能。本文将带你从零开始,一步步创建实用的系统管理脚本,实现Linux自动化运维。
为什么需要系统管理脚本?
手动执行重复性任务(如备份、日志清理、用户管理)既耗时又容易出错。通过编写脚本,你可以将这些任务自动化,节省时间并提高系统稳定性。这也是系统管理自动化的核心思想。
准备工作:确保环境就绪
首先,确认你的RockyLinux系统已安装bash(默认已安装),并拥有基本权限:
# 检查bash版本bash --version# 确保你有写入权限(通常在 /home 或 /opt 目录下)mkdir -p ~/scriptscd ~/scripts
实战1:创建一个系统信息收集脚本
这个脚本能自动收集CPU、内存、磁盘使用情况,并输出到日志文件。
#!/bin/bash# 脚本名称:sysinfo.sh# 功能:收集系统基本信息并保存到日志LOG_FILE="/var/log/sysinfo_$(date +%Y%m%d).log"# 创建日志头部echo "===============================" >> $LOG_FILEecho "系统信息报告 - $(date)" >> $LOG_FILEecho "===============================" >> $LOG_FILE# 收集CPU信息echo "[CPU信息]" >> $LOG_FILElscpu >> $LOG_FILE 2>&1echo "" >> $LOG_FILE# 收集内存信息echo "[内存信息]" >> $LOG_FILEfree -h >> $LOG_FILE 2>&1echo "" >> $LOG_FILE# 收集磁盘使用情况echo "[磁盘使用情况]" >> $LOG_FILEdf -h >> $LOG_FILE 2>&1echo "报告已生成:$LOG_FILE"
保存为
sysinfo.sh后,赋予执行权限:
chmod +x sysinfo.sh./sysinfo.sh
实战2:自动清理旧日志文件
日志文件会不断增长,占用磁盘空间。下面的脚本可自动删除7天前的日志:
#!/bin/bash# 脚本名称:clean_logs.sh# 功能:删除 /var/log 下7天前的日志文件LOG_DIR="/var/log"DAYS=7# 查找并删除旧日志find $LOG_DIR -name "*.log" -type f -mtime +$DAYS -delete# 可选:记录操作日志echo "[$(date)] 已清理 $LOG_DIR 中超过 $DAYS 天的日志文件" >> /var/log/clean_log.log
你可以将此脚本加入cron定时任务,实现每日自动清理:
# 编辑当前用户的crontabcrontab -e# 添加以下行(每天凌晨2点执行)0 2 * * * /home/youruser/scripts/clean_logs.sh
最佳实践与安全建议
始终在脚本开头使用#!/bin/bash明确解释器 对关键操作添加日志记录,便于排查问题 避免在脚本中硬编码敏感信息(如密码),可使用环境变量或配置文件 定期测试脚本,尤其是在生产环境中部署前
结语
通过以上示例,你应该已经掌握了如何编写基础的RockyLinux Shell脚本教程中的核心技巧。随着经验积累,你可以构建更复杂的自动化流程,如自动部署、监控告警等。记住,Linux自动化运维不仅能提升效率,更是现代DevOps文化的基石。
现在就开始动手吧!创建你的第一个脚本,迈向高效运维之路。
