从手动操作到自动执行
刚接触服务器管理时,很多人都是手动一条条敲命令。比如重启服务、查看日志、更新软件包,每天重复同样的动作。时间一长,不仅容易出错,还浪费精力。这时候,运维自动化就成了刚需。
别被“自动化”这个词吓到,它不是只有大厂工程师才能玩的东西。普通人也能从简单脚本开始,一步步把重复工作交给机器。
先学会写个简单的 Shell 脚本
最基础的自动化,就是把常用的命令组合成一个 .sh 文件。比如你想每天凌晨检查一下磁盘使用情况,可以写个脚本:
#!/bin/bash
df -h > /home/user/disk_usage.log
echo "Disk check completed at $(date)" >> /home/user/disk_usage.log保存为 check_disk.sh,加上执行权限 chmod +x check_disk.sh,然后手动运行 ./check_disk.sh 就能看到结果。这一步搞定后,你就迈出了自动化的第一步。
用 crontab 让脚本定时跑起来
脚本能运行了,接下来让它自己动。Linux 自带的 cron 就是干这事的。输入 crontab -e 编辑计划任务,加一行:
0 2 * * * /home/user/check_disk.sh意思是每天凌晨两点自动执行这个脚本。以后你睡觉的时候,它就在后台默默干活了。
试试 Ansible,不用写代码也能批量操作
如果你要管好几台服务器,一台台跑脚本太累。Ansible 是个轻量级工具,只需要写个 YAML 文件就能同时控制多台机器。
比如在所有服务器上安装 nginx:
- hosts: all
become: yes
tasks:
- name: Install nginx
apt:
name: nginx
state: present保存为 install_nginx.yml,执行 ansible-playbook install_nginx.yml 就能一键完成。不需要在目标机器装客户端,SSH 连通就行,特别适合新手。
把常用操作封装成小工具
公司里有人每次发布都要手动打包、传文件、重启服务,我见过他连续三天半夜爬起来上线。后来他自己写了几个脚本,点一下就全自动部署,再也不用提心吊胆。
你可以从自己的痛点出发:是不是经常要查某个服务的状态?要不要定期清理日志?把这些操作写成脚本,再配上定时任务,慢慢就形成了自己的自动化工具箱。
别追求一步到位
有些人一上来就想搞 K8s、CI/CD 流水线,结果配置复杂到根本跑不起来。其实没必要。先从你能掌控的小事做起,哪怕只是每天自动备份一次数据库,也是实实在在的进步。
自动化的核心不是用了多高级的工具,而是让机器替你做重复的事。哪怕只是一个简单的 shell 脚本,只要它帮你省了时间,就是成功的自动化。