Bash Shell Linux运维脚本
简介:Linux系统标准脚本语言,服务器巡检、定时任务、批量部署、COS同步运维
小白入门案例1:基础输出脚本
#!/bin/bash
site="doc.yiliancai.com"
echo "欢迎学习Bash运维脚本 | $site"
小白入门案例2:循环求和1~100
#!/bin/bash
sum=0
for ((i=1;i<=100;i++));do sum=$((sum+i));done
echo "总和:$sum"
基础实操案例3:文件创建读写
#!/bin/bash
echo "亿联财Bash案例" > demo.txt
cat demo.txt
for n in {1..10};do touch log_$n.log;done
基础实操案例4:检索html静态页面
#!/bin/bash
find ./ -name "*.html"
count=$(find ./ -name "*.html" | wc -l)
echo "页面总数:$count"
进阶项目案例5:服务器资源巡检
#!/bin/bash
echo "====服务器巡检===="
echo "CPU负载:$(uptime | awk '{print $9,$10,$11}')"
echo "内存:$(free -h | grep Mem)"
echo "磁盘:$(df -h /)"
进阶项目案例6:7天前日志自动清理
#!/bin/bash
find /var/log -name "*.log" -mtime +7 -delete
find ./logs -name "*.log" -mtime +3 -exec gzip {} \;
进阶项目案例7:SSH多服务器批量执行
#!/bin/bash
servers=("192.168.1.10" "192.168.1.11")
for ip in ${servers[@]};do
echo "操作$ip"
ssh root@$ip "df -h;free -h"
done
企业精通案例8:端口异常钉钉告警
#!/bin/bash
webhook="xxx"
port=8080
nc -zv 127.0.0.1 $port
if [ $? -ne 0 ];then
curl $webhook -H "Content-Type:application/json" -d '{"msgtype":"text","text":{"content":"8080端口异常"}}'
fi
企业精通案例9:coscli一键同步资料库
#!/bin/bash
LOCAL="./doc-yiliancai/"
BUCKET="cos://doc-yiliancai/"
coscli sync $LOCAL $BUCKET --delete
echo "50门语言资料库同步COS完成"
企业精通案例10:Docker容器批量重启
#!/bin/bash
containers=("nginx-doc" "mysql-db")
for name in ${containers[@]};do
docker restart $name
docker logs --tail 100 $name > ./logs/$name.log
done