为了账号安全,请及时绑定邮箱和手机立即绑定

生产环境超实用Shell脚本三

标签:
Linux 运维

生产环境超实用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/tcp

ufw  deny  22/tcp

ufw  enable

  

# 重启SSH服务

systemctl  restart  sshd

  

echo  "安全加固完成!"

2. 数据同步脚本

  • 功能: 将数据从一个服务器同步到另一个服务器。

  • 应用场景: 实现数据备份、数据迁移、负载均衡等。

  • 示例代码:


#!/bin/bash

  

# 定义源目录和目标目录

src_dir="/data"

dst_dir="user@backup.example.com:/backup"

  

# 使用rsync同步数据

rsync  -avz  --delete  $src_dir  $dst_dir

  

echo  "数据同步完成!"

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.gz

  

echo  "数据库备份完成!"

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  $interval

done

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

  

# 统计访问量最多的URL

awk  '{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_file

  

echo  "日志分析完成!"

总结

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

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

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

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

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消