作者:tespent
推荐理由
通过 task-notify.sh 启动命令,命令的运行结果将会被以卡片的形式发送到飞书上。 有些命令(如 make )要跑很长时间,在等待的时候会想离开电脑,但又想及时知道命令的结果。task-notify.sh 能够解决这一问题。只需要找一个飞书群添加自定义机器人,并将其 webhook 配置到这一脚本内,通过该脚本运行的命令结果——包含命令退出码、最后20行输出、开始结束时间、运行耗时等——都将在命令结束时及时发送到飞书群里并 @全体成员。task-notify.sh 只依赖了几个系统常用软件。
有些命令(如make)要跑很长时间,在等待的时候会想离开电脑,但又想及时知道命令的结果。task-notify.sh 能够解决这一问题。只需要找一个飞书群添加自定义机器人,并将其 webhook 配置到这一脚本内,通过该脚本运行的命令结果——包含命令退出码、最后20行输出、开始结束时间、运行耗时等——都将在命令结束时及时发送到飞书群里并 @全体成员。task-notify.sh 只依赖了几个系统常用软件。
目前只在debian上经过了测试。其它较新的 linux 发行版都应当是支持的但未经测试,如果发现问题请自行修改。欢迎在github上提出相关 issue 或者 pull request。
支持的功能
- 收集命令基本信息:命令状态和输出都会存储到指定临时目录,并会被发送到飞书。方便对比查看历史执行情况。
- 保护命令退出码:task-notify.sh 的返回值就是所执行命令的返回值,你可以方便地在脚本中使用 task-notify.sh。
- 支持 tty:命令运行时提供有效 tty 环境,支持颜色输出甚至 TUI 操作。使用 task-notify.sh 时无需担心兼容性。
- 终端转义序列过滤:在向飞书发送命令输出结果时,过滤掉终端的控制序列。在使用颜色输出时仍然保证具有可读性。
效果展示
250px|700px|reset
250px|700px|reset
二、使用方式
设置飞书机器人 webhook
2、在飞书群中创建一个 webhook 机器人,拿到 webhook 地址。机器人的头像、名称和描述都可以随意设置。
250px|700px|reset
一般的机器都是自带这些命令的。如果发现缺失,请使用包管理器如 apt 安装:apt install util-linux python3 curl bash
250px|700px|reset
3、运行vim task-notify.sh编辑脚本设置 webhook。打开 vim 后按下 a 键,使用方向键导航到 emit_message 函数内,将其中的 webhook 地址替换为你自己的 webhook 地址。编辑完成后按下 esc 键,依次按下 冒号、字母q、字母a、回车 四个键退出 vim。
250px|700px|reset
250px|700px|reset
6、【可选】如果是个人专用开发机,可以将 task-notify.sh 移动到 /usr/local/bin 等 PATH 中可以找到的路径(需要 sudo)这样就可以在任意路径下使用 task-notify.sh 啦!😆😆😆