在现代服务器运维中,CentOS系统管理脚本是提升效率、减少人为错误的重要工具。无论你是刚接触Linux的新手,还是有一定经验的系统管理员,掌握编写简单而实用的Shell脚本都能让你事半功倍。本文将带你一步步了解如何编写常见的CentOS运维自动化脚本,并提供可直接使用的示例代码。
手动执行重复性任务(如日志清理、服务重启、磁盘监控等)不仅耗时,还容易出错。通过编写Linux系统管理脚本,你可以将这些操作自动化,实现一键完成。例如:
我们从一个简单的“系统信息收集脚本”开始。该脚本会输出当前系统的主机名、IP地址、CPU使用率和内存使用情况。
#!/bin/bash# 系统信息收集脚本# 作者:运维小白# 功能:显示基本系统信息echo "=============================="echo " CentOS系统信息报告"echo "=============================="# 主机名HOSTNAME=$(hostname)echo "主机名: $HOSTNAME"# IP地址IP=$(ip addr show | grep 'inet ' | grep -v '127.0.0.1' | awk '{print $2}' | cut -d'/' -f1 | head -n1)echo "IP地址: $IP"# CPU使用率(近1分钟平均负载)LOAD=$(uptime | awk -F'load average:' '{print $2}' | cut -d',' -f1)echo "CPU负载 (1分钟): $LOAD"# 内存使用情况MEM_TOTAL=$(free -m | awk 'NR==2{print $2}')MEM_USED=$(free -m | awk 'NR==2{print $3}')MEM_PERCENT=$((MEM_USED * 100 / MEM_TOTAL))echo "内存使用: ${MEM_USED}MB / ${MEM_TOTAL}MB (${MEM_PERCENT}%)"# 磁盘使用率(根分区)DISK_USE=$(df -h / | awk 'NR==2{print $5}')echo "根分区磁盘使用率: $DISK_USE"echo "==============================" 将上述代码保存为 sysinfo.sh,然后赋予执行权限:
chmod +x sysinfo.sh./sysinfo.sh
日志文件会随着时间不断增长,占用大量磁盘空间。下面是一个用于CentOS服务器维护的自动清理脚本,它会删除7天前的 .log 文件:
#!/bin/bash# 自动清理旧日志脚本LOG_DIR="/var/log"DAYS=7# 查找并删除7天前的日志文件echo "正在清理 $LOG_DIR 中超过 $DAYS 天的日志文件..."find $LOG_DIR -name "*.log" -type f -mtime +$DAYS -deleteif [ $? -eq 0 ]; then echo "清理完成!"else echo "清理失败,请检查权限或路径。"fi
你可以将此脚本加入 crontab 定时任务,每天凌晨自动运行:
# 编辑当前用户的定时任务crontab -e# 添加以下行(每天凌晨2点执行)0 2 * * * /path/to/clean_logs.sh
编写CentOS系统管理脚本时,请注意以下几点:
set -e 让脚本在出错时立即退出。通过本文,你已经掌握了编写基础 CentOS运维自动化 脚本的方法。无论是系统信息收集、日志清理,还是未来更复杂的任务(如自动部署Web服务、数据库备份等),核心思路都是相同的:用Shell命令组合逻辑,实现重复任务的自动化。坚持练习,你很快就能成为高效的Linux系统管理员!
提示:所有脚本请根据实际环境调整路径和参数,确保安全可靠。
本文由主机测评网于2025-12-16发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025128799.html