Linux运维必备:Shell脚本编写规范与10个实用模板

为什么脚本是运维的瑞士军刀?

掌握一套严密的Shell脚本编写规范加上可直接套用的模板,能让你从重复劳动中解脱出来,把精力放在更有价值的调优和安全工作上。

很多运维人员的脚本缺少错误处理、日志记录和参数校验,在生产环境中频繁踩坑。一个好的Shell脚本可以节省大量重复劳动——但前提是它写得够稳。

Linux终端

如何编写规范的Shell脚本?

Shell脚本编写规范的第一条是开头声明#!/bin/bash,然后立即开启严格模式:

  • set -euo pipefail —— 遇到错误立即退出、变量未定义时报错、管道中任意命令失败中断。
  • 所有变量用双引号包裹,防止空格和特殊字符导致意外。
  • 使用函数拆分复杂逻辑(例如health_check、backup_db),方便调试和复用。

遵守这些规范,能避免90%的脚本Bug。想系统学习Shell脚本编写规范,建议从实际项目中复盘,把踩过的坑整理成自己的checklist。

哪些实用脚本模板可以直接使用?

下面5个模板是日常Linux运维中最高频的场景,每个模板都包含参数校验和日志输出,稍作修改即可上线:

  1. 服务器健康检查脚本 —— 检查CPU、内存、磁盘、网络连通性,异常时触发告警。
  2. 日志归档脚本 —— 按天/周压缩旧日志,保留指定天数后自动清理。
  3. 数据库自动备份脚本 —— 支持mysqldump/pg_dump,备份文件加密并上传至异地存储。
  4. SSL证书到期检查脚本 —— 解析域名证书,剩余天数低于阈值时发送通知。
  5. 进程守护脚本 —— 监控关键服务进程,崩溃后自动重启并记录事件。

这些实用脚本模板可以覆盖80%的运维自动化需求。如果需要完整的10个模板版本(包含防火墙、Nginx日志分析、磁盘分区等),可以随时扩展。

如何集成日志与监控?

脚本输出应包含时间戳、日志级别(INFO/WARN/ERROR),并写入统一的日志目录(如/var/log/ops/)。重要告警对接企业微信或钉钉机器人,实现即时通知。结合Linux运维模板中的日志轮转配置,还能防止日志占满磁盘。

如果你的Shell脚本已经能稳定运行,下一步就是接入Prometheus或Zabbix,让监控平台自动采集脚本的执行结果。

常见问题(FAQ)

  • 如何快速检查Shell脚本语法?
    使用bash -n script.sh进行语法检测,不会实际执行脚本。
  • 脚本中变量名有什么推荐风格?
    采用全小写加下划线(如backup_dir),全局常量用大写(如MAX_RETRIES=3)。
  • 生产环境脚本如何做灰度测试?
    先在测试服务器上运行,使用set -x开启调试模式,逐行观察输出。
  • 脚本报错“command not found”怎么办?
    检查PATH环境变量,或使用绝对路径调用命令,建议在脚本开头显式声明PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  • 如何让脚本支持参数输入?
    getoptscase解析$1$2等位置参数,并添加usage()函数输出帮助信息。
© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 共2条

请登录后发表评论

    • 小栈的头像-小栈博客钻石会员小栈徽章-备受喜爱-小栈博客等级-LV10-小栈博客作者0