百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

CentOS8 Shell脚本自动化运维实战教程

off999 2025-03-11 19:48 28 浏览 0 评论

一、基础语法篇

1. 变量定义与使用

变量命名规则:字母/数字/下划线,区分大小写

赋值符号=两侧不能有空格

使用$符号调用变量

示例脚本(script1.sh):

#!/bin/bash
# 定义变量
APP_NAME="web_server"
LOG_DIR="/var/log/${APP_NAME}"
MAX_SIZE=100  # 单位MB

# 使用变量
echo "应用程序名称: $APP_NAME"
echo "日志目录大小限制: ${MAX_SIZE}MB"

执行脚本:

chmod +x script1.sh && ./script1.sh
# 应输出变量内容

2. 条件判断

if语句格式:if [ condition ]; then ... fi

比较运算符:-eq, -ne, -gt, -lt (-eq是等于,-ne是不等于,-gt是大于,-lt是小于)

文件判断:-f(存在文件), -d(存在目录)

示例脚本(script2.sh):

#!/bin/bash
# 检查服务是否运行
SERVICE="nginx"

if systemctl is-active --quiet $SERVICE; then
    echo "$SERVICE 正在运行"
elif [ -f "/usr/sbin/$SERVICE" ]; then
    echo "$SERVICE 已安装但未启动"
else
    echo "$SERVICE 未安装"
fi

# case语句示例
read -p "输入操作(start|stop|restart): " ACTION
case $ACTION in
    start)   systemctl start $SERVICE ;;
    stop)    systemctl stop $SERVICE ;;
    restart) systemctl restart $SERVICE ;;
    *)       echo "无效操作" ;;
esac

执行脚本:

# 测试不同输入值观察输出变化
./script2.sh

3. 循环结构

for循环遍历列表/数组

while循环根据条件持续执行

示例脚本(script3.sh):

#!/bin/bash
# 遍历日志文件
for LOG_FILE in /var/log/*.log; do
    echo "处理文件: $LOG_FILE"
    gzip $LOG_FILE
done

# 数字循环
for i in {1..5}; do
    echo "创建目录 folder$i"
    mkdir "folder$i"
done

# while读取文件
while read USER; do
    useradd $USER
done < users.txt

执行脚本:

./script3.sh
# 查看生成的目录和压缩日志
ls -ld folder* && file /var/log/messages*

4. 函数编写

使用function关键字或直接定义

通过$1, $2获取参数

示例脚本(script4.sh):

#!/bin/bash
function disk_alert() {
    local USAGE=$(df -h / | awk 'NR==2 {print $5}' | tr -d '%')
    if [ $USAGE -gt 90 ]; then
        echo "警告:根分区使用率超过90%!"
        return 1
    fi
    return 0
}

# 调用函数
disk_alert || mail -s "磁盘报警" admin@example.com

二、实战案例篇

案例1:日志清理脚本

#!/bin/bash
LOG_DIR="/var/log/app_logs"
MAX_DAYS=30

find $LOG_DIR -name "*.log" -type f -mtime +$MAX_DAYS -delete
echo "$(date) 已清理超过${MAX_DAYS}天的日志" >> /var/log/clean.log

脚本验证:touch -d "31 days ago" test.log 创建31天前的测试文件后执行脚本

案例2:服务监控脚本

#!/bin/bash
SERVICE="httpd"

if ! systemctl is-active $SERVICE >/dev/null; then
    systemctl restart $SERVICE
    echo "$(date) $SERVICE 已重启" >> /var/log/service_monitor.log
fi

案例3:批量创建用户

#!/bin/bash
USER_FILE="users.list"

while read USER PASS; do
    useradd -m $USER
    echo "$PASS" | passwd --stdin $USER
done < $USER_FILE

输入文件格式:

user1 Passw0rd1
user2 Passw0rd2

三、定时任务配置

编辑任务列表:crontab -e

添加定时规则:

# 每天凌晨3点清理日志
0 3 * * * /opt/scripts/log_clean.sh

# 每5分钟检查服务状态
*/5 * * * * /opt/scripts/service_monitor.sh

通过 crontab -l 查看当前用户的定时任务列表

查看执行记录tail -f /var/log/cron

相关推荐

中国北斗卫星导航系统(中国北斗卫星导航系统收费吗)

中国的北斗卫星是1994年开始研究的。1994年,我国启动北斗一号系统工程建设。2000年10月31日,第一颗“北斗一号”实验导航卫星升空。北斗系统至今发展共有三代,其中第一代也被称为“北斗卫星导航试...

日文图片文字识别在线(日文图片文字翻译)

将图片转换成文字,采用“ocr文字识别软件”可以实现,参考方法如下:1、打开(迅捷)文字识别软件,关闭上面的提示窗口;2、通过左上角的添加文件按钮,将需要转换的图片添加进去;3、点击开始识别按钮,开始...

祖玛传奇手机版下载(祖玛传奇手机版下载赚红包)

1.可能是因为下载链接失效或者被删除了。2.经典祖玛传奇是一款非常受欢迎的游戏,可能存在版权问题或者侵权问题,导致下载链接被删除或者失效。3.如果想要玩经典祖玛传奇,可以尝试在正规的游戏平台或者...

免费音乐剪辑软件(免费音乐编辑软件)

AdobeAudition(Windows系统和Mac系统都可以)和CoolEditPro(Windows系统)!这两款软件都是免费的,音频剪辑方面功能很全。例如:分音轨、多音轨混录、降噪、立体...

sdwan跨境专线(sdwan跨境专线个人能申请么)

SD-WAN跨境专线在合规合法方面存在一些具体的限制。在不同国家和地区的法律法规布局上存在差异,因此,跨境专线一定要遵守所在国家和地区的相关规定,例如中国的《关于规范互联网接入服务市场秩序的若干规定》...

北京科兴疫苗(北京科兴疫苗对人体的影响)

合格。国家有各种疫苗的审核标准,达到标准后才可以接种。国家不可能让不合格的疫苗,进入接种环节。这点大家可以放心!近期可能都不会有科兴的疫苗,是因为国家购入数量较少的原因。因为科兴是由北京科兴生物制品有...

阿里旺旺官网入口(阿里旺旺app官网)

阿里巴巴国际站旺旺有手机版。国际版阿里旺旺的下载地址是:http://trademanager.alibaba.com/有IOS和android版本阿里巴巴国际站是阿里巴巴集团最早创立的业务,是目前...

google地球手机版下载(google地球7.12手机版)

手机版本的还是电脑版本的呀,电脑版本的直接在谷歌的网站下载就是了,手机版本的就是在谷歌play商店下载就是了。需要告诉你的是,国内无法使用谷歌地球。可以在应用宝中下载,然后将下载好的谷歌地球导入进Ou...

windows11云电脑(在线windows云电脑)
windows11云电脑(在线windows云电脑)

关闭win11的云端服务的方法如下1.首先我们进入手机设置,然后点击我们的用户名称可以进入账号设置。2.确认信息后,点击“退出账号”即可关闭华为云空间了,如果我们只想要关闭备份功能的话,可以进入“云空间”3.接着点击其中的云备份选项进入,最...

2026-02-01 13:15 off999

诺基亚所有型号及图片(诺基亚所有型号及图片及价格)

诺基亚:N71、N73、N75、N76、N77、N78、N79、N80、N81、N81(8GB)、N82、N85、N91、N91(8GB)、N92、N93、N93i、N95、N95(8GB)、N96、...

星空视频壁纸(星空壁纸引擎)

星空视频壁纸设置方法:打开“开始”→“控制面板”→“更改桌面背景”→有个关于图片属性的,选择“填充”即可,还可以从“计算机”-----“组织”----“属性”----“控制面板”,其余重复一样的。您...

图片文字识别软件(图片文字识别软件哪个好)

华为手机自带文件扫描,打开华为手机的相机,选择左上角的那个图标,点进去之后下面会看到一个文字的图标,选择那个就可以对准文件拍照自动识别了,自己手写的也可以识别,就是精准度会根据你写的字的工整程度有影响...

新盟网上订烟草登录(新盟手机网上订烟草登录)

找你所在的管辖区域客户经理申请帐号,他会给你的。新商盟用户名是零售户的客户编码,送烟小票上有,不清楚的可以致电客户经理。初始密码是零售户开通新商盟的时候电脑系统随即分配的六位数。根据你说的情况,分析情...

电信网上营业厅入口(电信网上营业大厅)

你好,查询各地营业厅号码,只需拨打114号码百事通即可。要找到电信的营业厅,可以通过多种途径进行查询。首先,可以在电信官方网站上查找最近的营业厅地址和联系方式。其次,可以通过拨打电信客服热线100查询...

期货公司哪家手续费最便宜(正规的期货公司哪家手续费低)

华泰长城期货公司开户手续费是业内比较低的,股指开户手续费万0.275,商品期货开户在交易所基础加收30%。反正是没有手续费最低的期货公司,手续费高低是期货公司适度调节的,只要客户的成交量大,期货公司就...

取消回复欢迎 发表评论: