LinuxShell脚本教程_自动化任务与系统管理实践

11次阅读

Shell 脚本是 Linux 运维核心工具,以 #!/bin/bash 开头,需 chmod + x 赋权;变量定义不加 $、引用加 $;环境变量如 $HOME 可读但修改仅限当前 shell;if、for、while 实现逻辑与批量处理。

LinuxShell 脚本教程_自动化任务与系统管理实践

Shell 脚本是 Linux 系统管理与自动化任务的核心 工具,掌握它能显著提升运维效率、减少重复操作、增强系统可靠性。

Shell 脚本基础:从执行到变量使用

脚本以 #!/bin/bash 开头,保存为 .sh 文件后需赋予执行权限:chmod +x script.sh。变量定义不加 $,引用时才加,例如name=”admin”; echo $name 环境变量(如$HOME$PATH)可直接读取,但修改仅对当前 shell 有效。

条件判断与循环:让脚本具备逻辑能力

if 语句做条件分支,注意 [] 前后必须有空格;forwhile 适合批量处理。常见写法:

  • if [-f “/etc/passwd”]; then echo “File exists”; fi
  • for user in $(cut -d: -f1 /etc/passwd); do echo $user; done
  • while read line; do echo “Line: $line”; done

实用自动化任务示例

日常运维中高频场景可快速落地:

  • 日志轮转:检查日志大小,超限则压缩归档并清空
  • 服务状态监控:用 systemctl is-active 检测关键服务,异常时发邮件或重启
  • 用户批量创建:从 CSV 读取用户名与组信息,调用 useraddpasswd完成初始化
  • 磁盘空间告警:用 df -h 提取 / 分区使用率,超 90% 时触发通知

调试与安全注意事项

脚本上线前务必测试。启用调试模式:bash -x script.sh查看每步执行过程。安全方面需注意:

  • 避免在脚本中硬 编码 密码,改用 read -s 交互输入或 配置文件+ 权限控制(chmod 600
  • 路径尽量用绝对路径,防止 PATH 污染导致命令误执行
  • 对用户输入或外部数据做校验,比如用 [[$input =~ ^[a-zA-Z0-9_]+$ ]] 过滤非法字符
  • 敏感操作(如 rm -rf)加上-i 或先用 echo 模拟执行
text=ZqhQzanResources