自动化
在设备启动、连接变化和停止时运行脚本,并通过执行记录查看结果。
开始前
设备自动化让脚本在指定设备进入关键执行阶段时自动运行。它适合初始化系统配置、启动或停止第三方组件、在网络恢复后刷新配置,以及在持续断网后执行告警或降级操作。
自动化脚本直接在你的设备上运行。脚本所操作的软件、系统配置及其回滚由你负责。
- 只有账号所有者可以管理自动化。
- 自动化只在 Linux(含 OpenWrt)和 Windows 设备上运行;macOS、iOS、Android 和 HarmonyOS 设备不运行自动化脚本。
- 脚本使用
wwnet后台服务的权限运行,通常拥有管理员或系统权限。请先在非关键设备上验证,再逐步应用到生产设备。 - 建议让脚本具备幂等性,使同一事件再次发生时可以安全地重复执行。
- 不要在脚本、参数或输出中写入密码、API 密钥等敏感信息。
添加脚本
进入「配置 → 自动化」,打开目标设备,在相应执行阶段选择「添加脚本」:
- 选择解释器。OpenWrt 使用
sh,Windows 使用 PowerShell;Linux 可选择sh或bash。 - 输入脚本内容,设置超时或选择不超时;默认超时为 60 秒。
- 设置启用状态并保存,脚本追加到该设备、该阶段的队尾;取消会放弃尚未保存的输入。
保存后,核对脚本位于正确设备和阶段且已启用。脚本在下次进入该阶段时执行,保存本身不会立即运行;事件发生后,在执行记录核对结果。
编辑与排序
脚本块中的解释器、超时、启用状态和内容可就地编辑;保存内容会生成新的修订版本,历史执行记录仍对应当时实际运行的版本。
同一阶段拖动脚本块的拖柄调整顺序;键盘可按空格选中、方向键移动、空格放下。脚本按显示顺序逐条运行;一条失败不会阻止后续脚本。不同设备分别执行,彼此不会等待。
设备进入新的执行阶段时,上一阶段尚未完成的脚本会被取消。不要让两个阶段依赖同时运行。
选择执行阶段
服务启动后
wwnet 后台服务完成一次新启动并取得当前网络配置后触发。设备在服务已经运行时加入网络,不会补执行这次启动脚本。
适合检查依赖、生成本机配置,或启动由系统服务管理器托管的第三方组件。
网络恢复连接
设备首次与任意其他设备建立可用连接时触发;设备曾经与所有其他设备断开,并在断连事件确认后重新连上任意一台设备时也会触发。
网络抖动后如果在 30 秒内恢复,只会取消尚未触发的断连事件,不会再次运行连接脚本。
网络持续断连 30 秒
设备曾经至少连接过一台其他设备,之后与所有其他设备的连接连续不可用 30 秒时触发。30 秒内恢复连接则不触发。
以下情况不会触发断连脚本:
- 服务启动后一直没有连接过其他设备;
- 仍有至少一台其他设备保持连接;
- 主动停止或重启服务、更新或回滚、离开网络、从控制台移除设备或卸载软件。
服务停止前
正常停止或重启服务、更新或回滚、离开网络、从控制台移除设备,以及卸载软件时触发。停电、系统崩溃或进程被强制终止时,停止脚本无法运行。
所有停止脚本共用最多 5 秒的退出等待时间,之后仍在运行的脚本会被强制终止。停止阶段适合快速保存状态或通知系统服务管理器停止组件,不适合执行耗时任务。
运行常驻组件
自动化脚本适合完成一次操作后退出。如果第三方组件需要长期运行,请让脚本通过操作系统的服务管理器安装、启动或停止它:
- Linux:systemd;
- OpenWrt:procd;
- Windows:Windows 服务管理器。
不要使用 setsid 等方式让脚本子进程脱离本次执行,否则 WideWired 无法在超时、取消策略或服务退出时正确清理它。
查看执行结果
点击设备自动化页面顶部的「全部执行记录」,按时间倒序查看该设备的执行,包括已删除脚本留下的记录。可按策略与状态筛选;打开一条记录可查看状态、脚本修订、触发原因、开始和结束时间、退出码,以及 stdout 和 stderr。
脚本块的执行记录入口会带上当前策略筛选。选择「全部策略」可恢复该设备全部记录;删除策略不会删除其保留期内记录,页面标注「策略已删除」。达到行数上限时会提示仅显示最近记录。
输出和记录有以下限制:
- stdout 和 stderr 各保留开头最多 256 行、4 MiB;
- 单行最多保留 16 KiB;
- 每条策略保留最近 30 天内最多 100 次执行记录;
- 单台设备启用的策略及其脚本内容合计最多 512 KiB,超过时控制台会拒绝保存。
脚本应把简短、可操作的信息写入输出。大量日志请交给第三方组件自身的日志系统管理。
故障速查
| 现象 | 检查与处理 |
|---|---|
| 脚本没有启动 | 确认策略已启用、设备与脚本平台匹配,并核对设备是否实际进入了所选执行阶段 |
| 断连脚本没有运行 | 确认设备此前连接过其他设备,并且所有连接连续中断已超过 30 秒;主动停止等操作不会触发断连脚本 |
| 执行记录显示已取消 | 设备进入了新的执行阶段,或后台服务已经开始退出 |
| 执行记录显示超时 | 缩短脚本执行时间,或在确认风险后调整脚本或策略的超时设置 |
| 输出内容提前结束 | 检查每个输出流 256 行、4 MiB及单行 16 KiB 的限制,并将大量日志写入组件自己的日志系统 |
| 停止脚本被强制终止 | 所有停止脚本共用 5 秒等待时间;缩短脚本,或让系统服务管理器处理耗时的停止工作 |