定时跑脚本与脚本库的用法
最通用的任务类型
Shell 脚本类型是计划任务里的万能件:清日志、跑迁移、调接口、备份数据库之外的任何自动化需求,都能落到一段定时执行的脚本上。
创建一个脚本任务
创建计划任务时选 Shell 脚本类型,主要字段:
- 脚本内容:直接粘贴 bash 脚本;
- 解释器与来源:默认 shell 执行,也可以从任务库或服务器文件里选脚本;
- 执行周期:Cron 表达式或预设周期,见任务类型的通用参数。

在容器里执行
这个开关是 1Panel 的特色。脚本默认跑在宿主机 shell 里,但很多目标在容器内——PHP 应用要执行 artisan 命令、容器里的工具要调用,直接在宿主机上跑会碰「命令不存在」的问题。
勾选「在容器中执行」后,选目标容器、执行用户和命令执行器,脚本就在该容器内运行。PHP 项目的定时任务几乎都走这条路,背景见PHP 环境里关于命令行归属的说明。
任务库:脚本资产化
任务库存可复用的脚本模板:常用脚本维护进去,创建任务时直接选,换机器导入任务库跟着走。官方文档给的安全提醒值得照抄:导入外部脚本前,先审查命令和变量——网上抄来的脚本在任务里定时跑,等于给陌生代码一个定时执行权。
写脚本的三个纪律
- 幂等优先:任务可能重试,脚本重复执行不应造成二次伤害(比如先判断再删);
- 输出有信息量:执行报告里看到的 stdout 就是排障依据,关键步骤 echo 一下;
- 长任务设超时:卡死的脚本会占着执行资源,用通用参数里的超时时间兜底。