生产环境超实用Shell脚本三

我码玄黄 2025-02-09 09:41:16
生产环境超实用Shell脚本三

Shell脚本作为自动化运维的利器,在生产环境中扮演着至关重要的角色。

本文将介绍安全加固脚本、数据同步脚本、数据库备份脚本、网站监控脚本、日志分析脚本等的应用场景,并提供相应的示例代码。

1. 安全加固脚本功能: 加强系统安全配置,例如禁用root登录、修改SSH端口、配置防火墙等。应用场景: 提高系统安全性,防止恶意攻击。示例代码:

#!/bin/bash# 禁用root登录sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config# 修改SSH端口sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config# 配置防火墙ufw allow 2222/tcpufw deny 22/tcpufw enable# 重启SSH服务systemctl restart sshdecho "安全加固完成!"

2. 数据同步脚本功能: 将数据从一个服务器同步到另一个服务器。应用场景: 实现数据备份、数据迁移、负载均衡等。示例代码:

#!/bin/bash# 定义源目录和目标目录src_dir="/data"dst_dir="user@backup.example.com:/backup"# 使用rsync同步数据rsync -avz --delete $src_dir $dst_direcho "数据同步完成!"

3. 数据库备份脚本功能: 定期备份数据库,并压缩存储。应用场景: 防止数据库数据丢失,确保数据安全。示例代码:

#!/bin/bash# 定义数据库信息和备份目录db_user="root"db_password="password"db_name="mydatabase"backup_dir="/backup"# 创建备份目录mkdir -p $backup_dir# 备份数据库mysqldump -u$db_user -p$db_password $db_name | gzip > $backup_dir/$db_name_$(date +%Y%m%d).sql.gzecho "数据库备份完成!"

4. 网站监控脚本功能: 监控网站可用性、响应时间、状态码等,并发送告警通知。应用场景: 实时监控网站运行状态,及时发现和处理故障。示例代码:

#!/bin/bash# 定义网站URL和监控频率website="https://www.example.com"interval=60# 循环监控网站while true; do    # 获取网站状态码和响应时间    response=$(curl -o /dev/null -s -w "%{http_code}\n%{time_total}\n" $website)    status_code=$(echo "$response" | head -n 1)    response_time=$(echo "$response" | tail -n 1)    # 判断状态码是否正常    if [ $status_code -ne 200 ]; then        echo "网站不可用!状态码: $status_code" | mail -s "网站监控告警" admin@example.com    fi    # 判断响应时间是否超时    if [ $(echo "$response_time > 2" | bc) -eq 1 ]; then        echo "网站响应时间过长!响应时间: $response_time 秒" | mail -s "网站监控告警" admin@example.com    fi    # 等待指定时间后继续监控    sleep $intervaldone

5. 日志分析脚本功能: 分析日志文件,提取关键信息,生成统计报告。应用场景: 分析网站访问日志、系统日志、应用程序日志等,发现潜在问题。示例代码:

#!/bin/bash# 定义日志文件和分析结果输出文件log_file="/var/log/nginx/access.log"output_file="log_analysis.txt"# 统计访问量最多的IP地址awk '{print $1}' $log_file | sort | uniq -c | sort -nr | head -n 10 > $output_file# 统计访问量最多的URLawk '{print $7}' $log_file | sort | uniq -c | sort -nr | head -n 10 >> $output_file# 统计HTTP状态码分布awk '{print $9}' $log_file | sort | uniq -c | sort -nr >> $output_fileecho "日志分析完成!"

总结

本文介绍了生产环境中实用的Shell脚本,包括安全加固脚本、数据同步脚本、数据库备份脚本、网站监控脚本和日志分析脚本。

这些脚本可以帮助提高系统安全性、实现数据备份和迁移、监控网站运行状态以及分析日志文件。

通过使用这些脚本,可以自动化运维任务,提高工作效率,确保生产环境的稳定运行。

– 欢迎点赞、关注、转发、收藏【我码玄黄】,各大平台同名。

0 阅读:5

我码玄黄

简介:我是一名程序猿、铲屎官,喜欢分享美食、生活和学习