- 每任务一目录结构,统一开关与日志 - cronctl CLI:enable/disable/toggle/status/run/sync-cron - 公共库 lib/shumengya_cron:runner/manager/notify/ssh - _template 示例任务(hello world + 复制模板) - webui 管理面板:FastAPI 后端 + 文档式响应式前端
26 lines
607 B
Python
26 lines
607 B
Python
"""
|
||
远端 SSH:用 bash -lc 执行命令,使 PATH 与登录 shell 一致(非交互 ssh 常缺 /usr/local/bin 等,导致找不到 docker)。
|
||
"""
|
||
|
||
from __future__ import annotations
|
||
|
||
import subprocess
|
||
|
||
|
||
def ssh_bash_lc(host: str, remote_cmd: str) -> subprocess.CompletedProcess[str]:
|
||
return subprocess.run(
|
||
[
|
||
"ssh",
|
||
"-o",
|
||
"BatchMode=yes",
|
||
"-o",
|
||
"StrictHostKeyChecking=accept-new",
|
||
host,
|
||
"bash",
|
||
"-lc",
|
||
remote_cmd,
|
||
],
|
||
capture_output=True,
|
||
text=True,
|
||
)
|