--- note: 2026-07-09 session - cron script 字段限制 + CLI-path auto-exec --- # Cron script 字段不接受多 token 命令 **问题**: `cronjob action=update script="proxychains4 -f /path/conf python3 /path/script.py"` **不会工作**——cron 把整个 string 当成单个可执行文件路径,报 `Script not found: /home/openclaw/.../proxychains4 -f /path/conf python3 /path/script.py`。 **正解**: 包 shell wrapper,然后 script 指向 wrapper: ```bash # 错误 - cron 把整行当文件路径 script: "proxychains4 -f /path/conf python3 /path/script.py" # → Script not found # 正确 - 包成 .sh wrapper cat > ~/.hermes/scripts/foo_cron.sh << 'EOF' #!/bin/bash exec proxychains4 -f /path/conf python3 /path/script.py EOF chmod +x ~/.hermes/scripts/foo_cron.sh ``` ```yaml script: "foo_cron.sh" # 只写文件名,不带空格 ``` # Cron 嵌套变量在 bash 中展开 如果 wrapper 内部用变量嵌套: ```bash PROXY="proxychains4 -f /path/conf" CLI="$PROXY ~/.local/bin/longbridge ..." # 嵌套变量 ``` 某些 bash 环境下 `proxychains` 报 `can't load process....: No such file or directory`,因为 `$PROXY` 没正确扩展。**避开**: ```bash exec proxychains4 -f /path/conf ~/.local/bin/longbridge ... ``` 永远把 `proxychains4` 写在命令最前面,**不要用变量包它**。 # 4 个长桥交易 cron wrapper 模式 (current state 2026-07-09) - `hk_intraday_monitor_cron.sh` → `python3 ~/.hermes/scripts/hk_intraday_cli.py` (CLI 路径,自动下单 ✅) - `us_intraday_monitor_cron.sh` → `python3 ~/.hermes/scripts/us_intraday_cli.py` (CLI 路径,自动下单 ✅) - `hk_intraday_close_cron.sh` → 只读监控 + 推 QQ(没有自动平仓逻辑) - `us_intraday_close_cron.sh` → 只读监控 + 推 QQ 模板 (CLI 路径 auto-exec): ```bash #!/bin/bash export LONGBRIDGE_HTTP_URL=https://openapi.longbridge.com export LONGBRIDGE_REGION=ap export LONGBRIDGE_TRADE_ENABLED=true export PROXYCHAINS_CONF=/home/openclaw/.proxychains/proxychains.conf # 告诉 helper 已在 proxychains 里 proxychains4 -f ~/.proxychains/proxychains.conf \ python3 ~/.hermes/scripts/hk_intraday_cli.py ``` `hk_intraday_cli.py` / `us_intraday_cli.py` 内部通过 `longbridge_cli_helper.py` (sys.modules fake) 替换 SDK,实际走 CLI 三件套下单。**订单已实测**: - 9988.HK 200股 @ $112.70 (订单 `1259698560325140480`) - 1810.HK 1200股 @ $25.98 (订单 `1259699156675493888`) # Auto-execution via CLI helper (2026-07-09 验证) `hk_intraday_cli.py` / `us_intraday_cli.py` **不依赖 Python SDK**,而是通过 `longbridge_cli_helper.py` 注入: ```python import longbridge_cli_helper as _helper sys.modules['longport'] = type(sys)('longport') sys.modules['longport'].openapi = _helper ``` 之后脚本里的 `from longport import openapi` 实际拿到的是 helper,所有 SDK 调用走 CLI → 走 `.com` 海外域 → 不触发 602315。 **前提**: cron wrapper 必须设 `PROXYCHAINS_CONF` env var,让 helper 不再嵌套 proxychains(否则双重 proxychains 卡死)。