Linux自动化脚本入门:从零编写并定时执行你的第一个脚本

开始前的准备工作

动手写Linux自动化脚本之前,你需要确认三件事:一台运行的Linux服务器(可以是云服务器或本地虚拟机)、SSH远程连接工具(如Xshell、FinalShell或系统自带终端)、以及基本的文本编辑能力
大部分Linux发行版都内置了Bash解释器和cron服务,无需额外安装。
如果你用的是最小化安装的系统,可以先用which bash看看Bash是否存在,用which crontab确认cron是否可用。
如果缺少,用包管理器装一下就好。

编写第一个自动化脚本

登录到你的服务器后,先找一个目录存放脚本,比如~/scripts
执行mkdir -p ~/scripts && cd ~/scripts新建并进入该目录。
随后用vimnano创建一个文件:

nano my_first_script.sh

在文件中写入以下内容(这是一个简单的备份脚本示例):

#!/bin/bash
# 自动备份 /var/www/html 到 /backup 目录
BACKUP_DIR="/backup"
SOURCE_DIR="/var/www/html"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
mkdir -p "$BACKUP_DIR"
tar -czf "${BACKUP_DIR}/html_backup_${TIMESTAMP}.tar.gz" -C "$SOURCE_DIR" .
echo "备份完成:${BACKUP_DIR}/html_backup_${TIMESTAMP}.tar.gz"

保存退出后,关键一步是给脚本加上执行权限

chmod +x my_first_script.sh

现在可以手动运行看看效果:./my_first_script.sh
如果看到输出“备份完成”以及文件路径,说明脚本本身没毛病。
注意$SOURCE_DIR路径要根据你实际要备份的位置修改。

用cron设置定时任务

脚本写好了,但每次手动运行太麻烦。
Linux自带的cron服务可以帮你定时自动执行脚本。
使用命令crontab -e进入当前用户的定时任务编辑界面(首次会提示选择编辑器,选vim或nano均可)。

在这个文件中,每一行代表一个定时任务,格式是:

分 时 日 月 周  要执行的命令

例如,每天凌晨2点执行刚才的备份脚本:

0 2 * * * /home/youruser/scripts/my_first_script.sh

0 2 * * *表示“每天2点0分”。
注意路径要写绝对路径,因为cron执行时的环境变量与SSH登录时不同。
保存退出后,cron会自动加载新任务。
可以用crontab -l查看当前所有定时任务,确认你的条目已存在。

避坑指南(看到就是赚到)

新手写Linux自动化脚本最容易踩的坑有三个:

  • 路径问题:脚本里如果使用了相对路径(比如./),cron执行时可能找不到文件。务必在脚本开头用cd切换到安全目录,或者所有路径都写绝对路径。上面示例中的BACKUP_DIRSOURCE_DIR都是绝对路径,这样才可靠。
  • 环境变量缺失:cron环境比交互式终端干净很多,比如PATH可能只有/usr/bin:/bin。如果脚本里用到了非标准路径下的命令(如某些自定义工具),建议在脚本里显式设置PATHexport PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  • 日志输出无声:脚本出错时,cron会通过邮件通知,但普通服务器未必配置了邮件系统。强烈建议在cron任务中把标准输出和错误输出重定向到日志文件
0 2 * * * /home/youruser/scripts/my_first_script.sh >> /var/log/backup.log 2>&1

>>表示追加写入,2>&1把错误信息也收集到同一个日志中。
这样第二天可以cat /var/log/backup.log查看执行情况。

效果验证与常见问题

完成上述配置后,如何确认自动化脚本真的在按计划运行?

  1. 手动测试:先手动执行一遍脚本,确认无报错。
  2. 查看cron日志:许多Linux系统的cron日志在/var/log/cron,用grep my_first_script /var/log/cron可以过滤出相关执行记录。
  3. 检查输出文件:比如上例中到/backup目录下查看是否有备份包生成,以及日志文件中是否有成功信息。
  4. 常见问题:cron命令不执行?检查cron服务是否启动:systemctl status crond(CentOS)或systemctl status cron(Ubuntu)。如果没启动,用systemctl enable crond --now启动并设置开机自启。脚本权限不足?除了chmod +x,还要确认脚本所属用户与cron任务用户一致。

如果你正在处理Linux自动化脚本,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。
坚持写几次,你会发现服务器运维越来越轻松。

分享到:
上一篇
Linux数据恢复实操指南:误删文件后如何一步步找回
下一篇
零基础入门Linux容器化:安装Docker并部署第一个容器
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意