Skip to content

Commit e7a1601

Browse files
committed
0.7.16 - 手册
1 parent c8cbff7 commit e7a1601

6 files changed

Lines changed: 818 additions & 31 deletions

File tree

doc/dingtalk.md

Lines changed: 119 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,119 @@
1-
# 钉钉工具
1+
钉钉消息推送
2+
===========
3+
4+
## 简介
5+
6+
dingtalk 是一个用于向钉钉群发送消息的工具脚本。通过钉钉自定义机器人 Webhook 接口,可以推送文本和 Markdown 格式的消息。
7+
8+
## 准备工作
9+
10+
### 创建钉钉机器人
11+
12+
1. 打开钉钉群设置
13+
2. 进入「智能群助手」
14+
3. 添加机器人
15+
4. 选择「自定义」机器人
16+
5. 配置机器人名称和安全设置(推荐使用「加签」方式)
17+
6. 复制 `access_token``secret`
18+
19+
## 使用方法
20+
21+
### 基本语法
22+
23+
```bash
24+
dingtalk [options] message
25+
```
26+
27+
### 命令行选项
28+
29+
| 选项 | 说明 |
30+
|------|------|
31+
| `-t Token` | 设置 access_token(必填) |
32+
| `-s Secret` | 设置密钥(加签模式) |
33+
| `-l File` | 日志文件路径(默认 /var/tmp/dingtalk.log) |
34+
| `--stdin` | 从标准输入读取消息内容 |
35+
| `--text` | 发送文本消息(默认) |
36+
| `--markdown` | 发送 Markdown 格式消息 |
37+
| `--title Title` | Markdown 消息标题 |
38+
| `-d` | 开启调试模式 |
39+
40+
## 使用示例
41+
42+
### 发送文本消息
43+
44+
```bash
45+
dingtalk -t 你的access_token "Hello World"
46+
```
47+
48+
### 发送加签消息
49+
50+
```bash
51+
dingtalk -t 你的access_token -s 你的secret "这是一条加签消息"
52+
```
53+
54+
### 发送 Markdown 消息
55+
56+
```bash
57+
dingtalk -t 你的access_token --markdown --title "标题" "## Markdown 内容"
58+
```
59+
60+
### 从管道读取消息
61+
62+
```bash
63+
echo "消息内容" | dingtalk -t 你的access_token --stdin
64+
```
65+
66+
### 发送日志片段
67+
68+
```bash
69+
tail -20 /var/log/syslog | dingtalk -t 你的access_token --stdin --text
70+
```
71+
72+
## 消息格式
73+
74+
### 文本消息(Text)
75+
76+
普通文本内容,直接显示在聊天窗口。
77+
78+
```
79+
这是一条普通文本消息
80+
```
81+
82+
### Markdown 消息
83+
84+
支持标准 Markdown 格式,适合展示结构化内容。
85+
86+
示例:
87+
```markdown
88+
## 告警通知
89+
90+
- 服务器:web-01
91+
- CPU 使用率:85%
92+
- 内存使用率:90%
93+
94+
> 请及时处理
95+
```
96+
97+
支持的 Markdown 元素:
98+
- 标题(#-######)
99+
- 加粗、斜体
100+
- 链接
101+
- 图片
102+
- 列表
103+
- 引用块
104+
- 代码块
105+
106+
## 日志
107+
108+
默认日志文件:`/var/tmp/dingtalk.log`
109+
110+
日志记录内容:
111+
- 发送的请求数据
112+
- 接口响应结果
113+
114+
## 注意事项
115+
116+
1. **access_token 必填** - 不提供则程序报错退出
117+
2. **加签更安全** - 生产环境建议配合 `-s secret` 使用加签验证
118+
3. **消息长度限制** - 钉钉对消息长度有限制,过长消息可能发送失败
119+
4. **日志权限** - 写入 `/var/tmp/dingtalk.log` 需要相应权限

doc/exceldiff.md

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
# ExcelDiff
2+
3+
Excel 文件对比工具,用于比较两个 Excel 文件的内容差异。
4+
5+
## 安装依赖
6+
7+
```bash
8+
pip3 install pandas openpyxl
9+
```
10+
11+
## 命令行选项
12+
13+
| 选项 | 说明 |
14+
|------|------|
15+
| `-f` | 对比所有工作表 |
16+
| `-s Sheet` | 指定要对比的工作表名称 |
17+
| `-d` | 调试模式 |
18+
19+
## 使用方法
20+
21+
### 基本语法
22+
23+
```bash
24+
exceldiff [options] <file1.xlsx> <file2.xlsx>
25+
```
26+
27+
### 显示文件 MD5
28+
29+
```bash
30+
exceldiff file1.xlsx file2.xlsx
31+
```
32+
33+
会先显示两个文件的 MD5 值,如果 MD5 相同说明文件完全相同。
34+
35+
### 对比所有工作表
36+
37+
```bash
38+
exceldiff -f file1.xlsx file2.xlsx
39+
```
40+
41+
对比两个文件中的所有工作表,逐一显示每个工作表的差异。
42+
43+
### 对比指定工作表
44+
45+
```bash
46+
exceldiff -s Sheet1 file1.xlsx file2.xlsx
47+
```
48+
49+
仅对比指定名称的工作表。
50+
51+
## 输出示例
52+
53+
```
54+
======================================== md5sum ========================================
55+
/usr/bin/md5sum file1.xlsx file2.xlsx
56+
d41d8cd98f00b204e9800998ecf8427e file1.xlsx
57+
d41d8cd98f00b204e9800998ecf8427e file2.xlsx
58+
59+
======================================== file1.xlsx <=> file2.xlsx ========================================
60+
['Sheet1', 'Sheet2', 'Sheet3']
61+
62+
======================================== 工作表 [Sheet1] 对比结果 =========================================
63+
```
64+
65+
## 差异显示格式
66+
67+
差异行以以下格式显示:
68+
69+
```
70+
行号1 内容1 | 行号1 内容2 # 差异行,左侧来自文件1,右侧来自文件2
71+
行号2 内容1 < 行号2 内容2 # 左侧缺少的行
72+
行号3 内容3 > 行号3 内容4 # 右侧缺少的行
73+
```
74+
75+
无差异的行不会显示。
76+
77+
## 工作原理
78+
79+
1. 计算并显示两个 Excel 文件的 MD5 值
80+
2. 使用 pandas 读取 Excel 文件内容
81+
3. 将指定工作表转换为 CSV 格式保存到临时文件
82+
4. 使用 `sdiff` 命令对比两个 CSV 文件
83+
84+
## 注意事项
85+
86+
- 需要两个文件名作为位置参数
87+
- 支持 `.xlsx` 格式
88+
- 第一列作为索引列(index_col=0)
89+
- 仅支持 macOS 和 Linux 系统
90+
- 临时 CSV 文件保存在 `/tmp/` 目录
91+
92+
## 适用场景
93+
94+
- 对比配置变更前后 Excel 表格的差异
95+
- 检查数据导入导出是否一致
96+
- 核对两个版本的报表差异

doc/gitsync.md

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,77 @@
11
GIT Sync
22
========
33

4+
## 简介
5+
6+
gitsync 是一个用于同步多个 Git 仓库的工具脚本。它从 `~/workspace/git.ini` 读取配置,实现以下功能:
7+
8+
- 从 origin 克隆仓库
9+
- 配置多个 remote
10+
- 同步主分支到所有 remote
11+
12+
## 工作流程
13+
14+
1. 读取 `~/workspace/git.ini` 配置文件
15+
2. 遍历每个配置节(section)
16+
3. 根据配置执行相应的 Git 操作
17+
18+
## 配置文件
19+
20+
配置文件位于 `~/workspace/git.ini`,采用 INI 格式。
21+
22+
### 配置项
23+
24+
| 配置项 | 说明 |
25+
|--------|------|
26+
| `origin` | Git 仓库地址(克隆源) |
27+
| `remote` | 远程仓库名称,多个用逗号分隔 |
28+
29+
### 配置示例
30+
31+
```ini
32+
[project1]
33+
origin = git@github.com:username/repo1.git
34+
remote = upstream,gitlab
35+
36+
[project2]
37+
origin = git@gitlab.com:team/repo2.git
38+
remote = github,bitbucket
39+
```
40+
41+
### 路径说明
42+
43+
- 工作目录:`~/workspace/`
44+
- 仓库目录:`~/workspace/{source}/`,其中 `source` 是从 origin URL 中提取的仓库名
45+
46+
## 使用方法
47+
48+
```bash
49+
./bin/gitsync
50+
```
51+
52+
53+
54+
```bash
55+
python3 bin/gitsync
56+
```
57+
58+
## 操作逻辑
59+
60+
### 新仓库(不存在)
61+
62+
1. 从 origin 克隆仓库到 `~/workspace/{仓库名}/`
63+
2. 添加配置的 remote
64+
65+
### 已存在仓库
66+
67+
1. 进入仓库目录
68+
2. 执行 `git reset --hard` 重置工作区
69+
3. 执行 `git pull origin` 拉取最新代码
70+
4. 遍历所有非 origin 的 remote,执行 `git push {remote} master`
71+
72+
## 注意事项
73+
74+
- 脚本假设所有仓库的默认分支为 `master`
75+
- 使用 `git pull origin` 直接拉取,不处理冲突
76+
- `git reset --hard` 会丢弃所有未提交的更改
77+
- 需要确保 SSH key 已配置到对应的 Git 服务商

0 commit comments

Comments
 (0)