File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 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 ` 需要相应权限
Original file line number Diff line number Diff line change 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+ - 核对两个版本的报表差异
Original file line number Diff line number Diff line change 11GIT 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 服务商
You can’t perform that action at this time.
0 commit comments