Skip to content
dsh.fish
Bundle

dsh-cron-panel

DSH web GUI scheduled-tasks panel: manage DSH agent reminders and system crontab entries from a sidebar panel with full-screen detail editing.

Source
a792883583
stars
1 stars
License
MIT
Updated
Updated 14 days ago

Readme

# dsh-cron-panel

[English](README.en.md) · [Español](README.es.md)

DSH Web GUI 的定时任务面板:位于侧边栏工作区与设置之间,分区管理 DSH 定时任务与系统定时任务(crontab),支持自然语言创建、全屏详情编辑、执行记录查看。

## 功能

- **侧边栏面板**:工作区下方、设置上方;标题右侧 ➕ 新增、▾ 收起(收起后折叠成一条小标题栏,状态持久化)
- **分区展示与状态指示**:DSH 定时任务(带管理标记)与系统定时任务分开显示,列表项配备执行状态圆点(🟢 成功 / 🔴 失败 / ⚪ 未执行)
- **执行记录与一键清空**:面板创建的任务自动记录日志,支持实时刷新与一键清空日志文件,避免长期运行日志膨胀
- **自然语言创建**:输入「每天上午 9 点运行备份」「每 30 分钟清理临时文件」「每周一晚上 8 点」即自动解析为 cron 表达式(中英文,17+ 常见模式),也可手动填写
- **全屏详情**:点击任务在对话区全屏覆盖,右上角关闭;支持编辑 / 保存 / 删除 / 启停
- **下次执行预览**:编辑时输入 cron 表达式自动显示「接下来 5 次运行时间」,避免表达式写错
- **完成后主动通知**:编辑任务时可配置「完成后通知」——任务执行结束后,结果自动推送到所选平台(Telegram / Discord / 企业微信智能机器人 / Email),需已安装并连接 `dsh-message-gateway`(QQ 官方不支持主动推送)。推送走网关的 `/gateway/push`,cron 命令自动追加推送段(含退出码与任务描述),无需额外配置
- **立即运行**:任务详情里点「立即运行」直接执行一次命令(不经 cron 调度),实时查看退出码与输出——建完任务先验证再等调度
- **失败自动重试**:可配置失败后自动重试次数与间隔(命令在子 shell 中执行,失败退出码触发重试)
- **写前自动备份**:每次改写 crontab 前自动备份当前内容到 `~/.local/share/dsh-cron-backups/`(保留最近 20 份),误操作随时可回滚

- **多语言**:自动跟随 DSH Web 界面语言(中文 / 英文),西班牙语浏览器自动切换西班牙语,默认简体中文
- 明暗主题跟随 DSH Web GUI

## 界面预览

**侧边栏面板**(DSH / 系统分区 + 新增 + 收起):

![定时任务面板](docs/cron-panel.png)

**全屏详情**(编辑表单 + 执行记录,右上角关闭):

![定时任务详情](docs/cron-detail.png)

## 安装

```sh
dsh plugin --profile web add dsh-cron-panel
```

重启 `dsh web`,侧边栏工作区下方出现「定时任务」面板。

> 本地开发时可用 `dsh plugin --profile web add link:/path/to/dsh-cron-panel` 以链接方式安装,修改源码后 `npm run build` 并刷新页面即可生效。

## 反馈

使用中遇到问题或有功能建议?欢迎到 [GitHub Issues](https://github.com/a792883583/dsh-cron-panel/issues) 反馈,帮助我们把插件做得更好。

## License

MIT

Install

dsh plugin --profile web add github:a792883583/dsh-cron-panel#c975f6ef722d38e79ff8e258edfa08a9f9055bf4

Profile: web

  • This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
Source