<commit_before>TreePush
===========
一个用于向大量服务器同步文件的推送工具

--------------------

## 实现

1. treepush 根据参数初始化源节点及目标节点列表
2. treepush 从目标节点列表及源节点列表中各取出一个IP(使用 dip, sip 表示)
3. 连接到 sip, 执行推送文件到 dip 的命令
4. 文件推送完成，将 sip, dip 重新添加到源节点列表(推送过程多节点并行进行)
5. 重复 2~4，直到目标节点列表为空

## 优势

- 随着源节点的增加，更新过程会越来越快，实现更新速度的指数级增涨
- 使用自定义的文件推送指令，可基于 scp、rsync 进行文件的推送
- 不需要在所有节点上部署，只需要任意找一台作为控制机安装即可
- 部署简单，仅依赖 ssh(需有开启 ssh 自动密钥认证)

## 使用示例
<commit_msg>readme.md<commit_after>TreePush
===========
一个用于向大量服务器同步文件的推送工具

--------------------

## 实现

1. treepush 根据参数初始化源节点及目标节点列表
2. treepush 从目标节点列表及源节点列表中各取出一个IP(使用 dip, sip 表示)
3. 连接到 sip, 执行推送文件到 dip 的命令
4. 文件推送完成，将 sip, dip 重新添加到源节点列表(推送过程多节点并行进行)
5. 重复 2~4，直到目标节点列表为空

## 优势

- 随着源节点的增加，更新过程会越来越快，实现更新速度的指数级增涨
- 使用自定义的文件推送指令，可基于 scp、rsync 进行文件的推送
- 不需要在所有节点上部署，只需要任意找一台作为控制机安装即可
- 部署简单，仅依赖 ssh(需要开启 ssh 自动密钥认证)

## 使用示例

{'fraction_non_alphanumeric': 0.15995260663507108, 'fraction_numerical': 0.016587677725118485, 'mean_word_length': 4.152439024390244, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3329964', 'n_tokens_mistral': 660, 'n_tokens_neox': 760, 'n_words': 74}