跳到主内容
网连网络
文档

自动化

在设备启动、连接变化和停止时运行脚本,并通过执行记录查看结果。

开始前

设备自动化让脚本在指定设备进入关键执行阶段时自动运行。它适合初始化系统配置、启动或停止第三方组件、在网络恢复后刷新配置,以及在持续断网后执行告警或降级操作。

自动化脚本直接在你的设备上运行。脚本所操作的软件、系统配置及其回滚由你负责。

添加脚本

进入「配置 → 自动化」,打开目标设备,在相应执行阶段选择「添加脚本」:

  1. 选择解释器。OpenWrt 使用 sh,Windows 使用 PowerShell;Linux 可选择 sh 或 bash。
  2. 输入脚本内容,设置超时或选择不超时;默认超时为 60 秒。
  3. 设置启用状态并保存,脚本追加到该设备、该阶段的队尾;取消会放弃尚未保存的输入。

保存后,核对脚本位于正确设备和阶段且已启用。脚本在下次进入该阶段时执行,保存本身不会立即运行;事件发生后,在执行记录核对结果。

编辑与排序

脚本块中的解释器、超时、启用状态和内容可就地编辑;保存内容会生成新的修订版本,历史执行记录仍对应当时实际运行的版本。

同一阶段拖动脚本块的拖柄调整顺序;键盘可按空格选中、方向键移动、空格放下。脚本按显示顺序逐条运行;一条失败不会阻止后续脚本。不同设备分别执行,彼此不会等待。

设备进入新的执行阶段时,上一阶段尚未完成的脚本会被取消。不要让两个阶段依赖同时运行。

选择执行阶段

服务启动后

wwnet 后台服务完成一次新启动并取得当前网络配置后触发。设备在服务已经运行时加入网络,不会补执行这次启动脚本。

适合检查依赖、生成本机配置,或启动由系统服务管理器托管的第三方组件。

网络恢复连接

设备首次与任意其他设备建立可用连接时触发;设备曾经与所有其他设备断开,并在断连事件确认后重新连上任意一台设备时也会触发。

网络抖动后如果在 30 秒内恢复,只会取消尚未触发的断连事件,不会再次运行连接脚本。

网络持续断连 30 秒

设备曾经至少连接过一台其他设备,之后与所有其他设备的连接连续不可用 30 秒时触发。30 秒内恢复连接则不触发。

以下情况不会触发断连脚本:

服务停止前

正常停止或重启服务、更新或回滚、离开网络、从控制台移除设备,以及卸载软件时触发。停电、系统崩溃或进程被强制终止时,停止脚本无法运行。

所有停止脚本共用最多 5 秒的退出等待时间,之后仍在运行的脚本会被强制终止。停止阶段适合快速保存状态或通知系统服务管理器停止组件,不适合执行耗时任务。

运行常驻组件

自动化脚本适合完成一次操作后退出。如果第三方组件需要长期运行,请让脚本通过操作系统的服务管理器安装、启动或停止它:

不要使用 setsid 等方式让脚本子进程脱离本次执行,否则 WideWired 无法在超时、取消策略或服务退出时正确清理它。

查看执行结果

点击设备自动化页面顶部的「全部执行记录」,按时间倒序查看该设备的执行,包括已删除脚本留下的记录。可按策略与状态筛选;打开一条记录可查看状态、脚本修订、触发原因、开始和结束时间、退出码,以及 stdout 和 stderr。

脚本块的执行记录入口会带上当前策略筛选。选择「全部策略」可恢复该设备全部记录;删除策略不会删除其保留期内记录,页面标注「策略已删除」。达到行数上限时会提示仅显示最近记录。

输出和记录有以下限制:

脚本应把简短、可操作的信息写入输出。大量日志请交给第三方组件自身的日志系统管理。

故障速查

现象 检查与处理
脚本没有启动 确认策略已启用、设备与脚本平台匹配,并核对设备是否实际进入了所选执行阶段
断连脚本没有运行 确认设备此前连接过其他设备,并且所有连接连续中断已超过 30 秒;主动停止等操作不会触发断连脚本
执行记录显示已取消 设备进入了新的执行阶段,或后台服务已经开始退出
执行记录显示超时 缩短脚本执行时间,或在确认风险后调整脚本或策略的超时设置
输出内容提前结束 检查每个输出流 256 行、4 MiB及单行 16 KiB 的限制,并将大量日志写入组件自己的日志系统
停止脚本被强制终止 所有停止脚本共用 5 秒等待时间;缩短脚本,或让系统服务管理器处理耗时的停止工作