运维自动化shell脚本总结
运维自动化是提升IT管理效率的关键,使用Shell脚本可以有效地实现许多日常任务的自动化。以下是一些常见的Shell脚本应用及其总结,涵盖基本概念、实用示例和最佳实践。
1. Shell脚本基础
1.1 Shell脚本定义
Shell脚本是一系列命令的集合,通常用于自动化执行任务。
1.2 基本语法
- 文件以
#! /bin/bash
开头,表示使用Bash解释器。 - 使用
chmod +x script.sh
赋予执行权限。 - 变量赋值:
VAR_NAME="value"
,访问:echo $VAR_NAME
。
2. 常见运维自动化任务
2.1 系统监控
- CPU、内存、磁盘使用率
#!/bin/bash echo "CPU使用率:" top -bn1 | grep "Cpu(s)" echo "内存使用率:" free -h echo "磁盘使用率:" df -h
2.2 服务状态检查
- 检查服务是否运行
#!/bin/bash SERVICE_NAME="nginx" if systemctl is-active --quiet $SERVICE_NAME; then echo "$SERVICE_NAME is running" else echo "$SERVICE_NAME is not running" fi
2.3 日志管理
- 归档和清理旧日志
#!/bin/bash LOG_DIR="/var/log/myapp" ARCHIVE_DIR="/var/log/myapp/archive" find $LOG_DIR -name "*.log" -mtime +30 -exec mv {} $ARCHIVE_DIR \;
2.4 用户管理
- 批量添加用户
#!/bin/bash for user in user1 user2 user3; do useradd $user echo "$user:password" | chpasswd done
2.5 备份管理
- 定时备份数据库
#!/bin/bash DB_NAME="mydatabase" BACKUP_DIR="/backup" TIMESTAMP=$(date +"%Y%m%d%H%M") mysqldump -u root -p $DB_NAME > $BACKUP_DIR/$DB_NAME-$TIMESTAMP.sql
3. 脚本优化和调试
3.1 错误处理
- 使用
set -e
可以在命令失败时退出脚本。 - 使用
trap
进行错误捕获和清理。#!/bin/bash set -e trap 'echo "Error occurred. Exiting..."; exit 1;' ERR
3.2 日志记录
- 将输出重定向到日志文件。
exec > /var/log/myscript.log 2>&1
3.3 脚本参数
- 使用
$1
,$2
等获取传入参数#!/bin/bash echo "第一个参数: $1" echo "第二个参数: $2"
4. 任务调度
- 使用
cron
进行定时任务调度。# 每天凌晨2点执行脚本 0 2 * * * /path/to/your/script.sh
原文地址:https://blog.csdn.net/wangyue4/article/details/142688665
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!