linux脚本 自动化 核心是触发条件、执行动作、结果判断三步闭环:明确“什么时候做”(手动 /cron/事件 驱动)、“做什么”(最小命令链 +&& 串联)、“做得对不对”(状态检查、文件存在性、资源充足性),辅以日志、权限和可维护性设计。

Linux 脚本自动化,核心不在语法多炫,而在“让机器按你设想的节奏做事”——关键是理清触发条件、执行动作、结果判断这三步闭环。
明确“什么时候做”:触发逻辑是起点
脚本不会自己跑,得告诉它时机。常见方式有:
- 手动执行:最简单,比如./backup.sh,适合测试或临时任务
- cron 定时调度 :写进crontab -e,例如0 2 * * * /home/user/clean-logs.sh 表示每天凌晨 2 点运行
- 事件驱动 :用inotifywait 监听文件变化,比如监控上传目录,一有新文件就自动 解压 归档
聚焦“做什么”:用最小命令链完成目标
别 堆功能,先串通主干。比如“每日备份网站并压缩”:
- 先 rsync -a /var/www/ /backup/www_$(date +%F)/ 同步数据
- 再 tar -czf /backup/www_$(date +%F).tar.gz -C /backup www_$(date +%F) 打包
- 最后 find /backup -name “www_*.tar.gz” -mtime +7 -delete 清理 7 天前的包
每条命令加 && 连接,确保前一步成功才继续;关键步骤后加 echo “Step X done” 方便排查。
守住“做得对不对”:必须加状态检查和容错
没反馈的自动化等于盲操作。重点加三类判断:
- 命令是否执行成功 :用$? 检查上一条命令返回值,非 0 就 exit 1 或发邮件告警
- 关键文件是否存在:比如[! -f /etc/nginx/conf.d/site.conf ] && echo “Config missing!” && exit 1
- 资源是否充足:运行前查磁盘空间df -h /backup | awk ‘NR==2 {if ($5+0> 90) exit 1}’,超 90% 就停
让脚本能被信任:日志 + 权限 + 可维护性
一个靠谱的脚本,别人(或一周后的你)能看懂、敢改、不误删:
- 开头写清楚 # Usage: ./deploy.sh [staging|prod] 和作者、日期
- 所有路径用变量定义,如 BACKUP_DIR=”/backup”,避免硬 编码
- 输出统一记日志:exec >> /var/log/backup.log 2>&1,开头加echo “=== $(date) ===”
- 脚本权限设为chmod 750 deploy.sh,避免组外可执行
基本上就这些。自动化不是写得越长越好,而是每行都有目的、有退路、有记录。照着这个逻辑搭骨架,再填细节,很快就能写出真正省心的脚本。