Tablesnap 技术文档
1. 安装指南
1.1 通过 PyPI 安装
Tablesnap 可以通过 Python 包管理工具 pip
从 PyPI 安装。执行以下命令即可完成安装:
pip install tablesnap
1.2 通过 Debian/Ubuntu 包安装
Tablesnap 提供了 Debian 包的源代码,可以通过以下步骤构建并安装:
-
克隆项目并切换到
debian
分支:git checkout debian
-
使用
git-buildpackage
构建 Debian 包:git-buildpackage --git-upstream-branch=master --git-debian-branch=debian --git-builder='pdebuild'
-
安装生成的 Debian 包。
1.3 手动安装
如果你不使用 Debian/Ubuntu 系统,或者不想通过包管理器安装,可以直接将 tablesnap
脚本复制到任意位置并运行。Tablesnap 依赖 pyinotify
和 boto
Python 包,可以通过以下命令安装:
pip install pyinotify boto
2. 项目的使用说明
Tablesnap 是一个使用 inotify
监控目录的脚本,当检测到 IN_MOVED_TO
事件时,它会启动一个新线程将文件上传到 Amazon S3,并同时上传一个 JSON 格式的目录文件列表。
2.1 基本使用
Tablesnap 的所有配置都通过命令行参数进行。以下是一个基本的使用示例:
tablesnap -k AAAAAAAAAAAAAAAA -s BBBBBBBBBBBBBBBB me.synack.sstables /var/lib/cassandra/data/GiantKeyspace
-k
和-s
参数分别指定 AWS 的访问密钥和密钥。me.synack.sstables
是 S3 存储桶的名称。/var/lib/cassandra/data/GiantKeyspace
是要监控的目录路径。
2.2 配置选项
Tablesnap 提供了多种配置选项,以下是一些常用的选项:
-r, --recursive
:递归监控指定路径下的新 SSTables。-a, --auto-add
:自动开始监控路径下的新子目录。-B, --backup
:如果文件尚未存在于 S3 中,则备份现有文件。-p PREFIX, --prefix PREFIX
:为上传到 S3 的文件设置前缀。-t THREADS, --threads THREADS
:指定写入线程的数量。-e EXCLUDE, --exclude EXCLUDE
:排除匹配指定正则表达式的文件。-i INCLUDE, --include INCLUDE
:仅包含匹配指定正则表达式的文件。
3. 项目 API 使用文档
Tablesnap 本身不提供 API,它是一个命令行工具,通过命令行参数进行配置和使用。所有的功能都通过命令行参数来实现。
4. 项目安装方式
4.1 通过 PyPI 安装
pip install tablesnap
4.2 通过 Debian/Ubuntu 包安装
-
克隆项目并切换到
debian
分支:git checkout debian
-
使用
git-buildpackage
构建 Debian 包:git-buildpackage --git-upstream-branch=master --git-debian-branch=debian --git-builder='pdebuild'
-
安装生成的 Debian 包。
4.3 手动安装
-
下载
tablesnap
脚本。 -
安装依赖:
pip install pyinotify boto
-
运行
tablesnap
脚本。
5. 日志配置
如果你使用 Debian/Ubuntu 包安装,Tablesnap 会使用 syslog 进行日志记录。日志消息会发送到 DAEMON
日志设施,并标记为 tablesnap
。你可以通过配置 syslog-ng 将日志重定向到指定文件:
# tablesnap
filter f_tablesnap { filter(f_daemon) and match("tablesnap" value("PROGRAM")); };
destination d_tablesnap { file("/var/log/tablesnap.log"); };
log { source(s_src); filter(f_tablesnap); destination(d_tablesnap); flags(final); };
将上述配置添加到 /etc/syslog-ng/syslog-ng.conf
文件中即可。
6. 常见问题与帮助
如果在使用 Tablesnap 过程中遇到问题,可以在 irc.freenode.net
的 #cassandra-ops
频道寻求帮助,该频道是一个解决 Cassandra 相关问题的优秀资源。
- mybatis-plusmybatis 增强工具包,简化 CRUD 操作。 文档 http://baomidou.com 低代码组件库 http://aizuda.comJava00
- open-eBackupopen-eBackup是一款开源备份软件,采用集群高扩展架构,通过应用备份通用框架、并行备份等技术,为主流数据库、虚拟化、文件系统、大数据等应用提供E2E的数据备份、恢复等能力,帮助用户实现关键数据高效保护。HTML055
- 每日精选项目🔥🔥 12.27日推荐:解锁高效测试的新工具-Shortest🔥🔥 每日推荐行业内最新、增长最快的项目,快速了解行业最新热门项目动态~~018
- Cangjie-Examples本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。Cangjie042
- 毕方Talon工具本工具是一个端到端的工具,用于项目的生成IR并自动进行缺陷检测。Python039
- PDFMathTranslatePDF scientific paper translation with preserved formats - 基于 AI 完整保留排版的 PDF 文档全文双语翻译,支持 Google/DeepL/Ollama/OpenAI 等服务,提供 CLI/GUI/DockerPython03
- advanced-javaAdvanced-Java是一个Java进阶教程,适合用于学习Java高级特性和编程技巧。特点:内容深入、实例丰富、适合进阶学习。JavaScript0103
- taro开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发微信/京东/百度/支付宝/字节跳动/ QQ 小程序/H5/React Native 等应用。 https://taro.zone/TypeScript09
- Yi-CoderYi Coder 编程模型,小而强大的编程助手HTML012
- excelizehttps://github.com/xuri/excelize Excelize 是 Go 语言编写的一个用来操作 Office Excel 文档类库,基于 ECMA-376 OOXML 技术标准。可以使用它来读取、写入 XLSX 文件,相比较其他的开源类库,Excelize 支持操作带有数据透视表、切片器、图表与图片的 Excel 并支持向 Excel 中插入图片与创建简单图表,目前是 Go 开源项目中唯一支持复杂样式 XLSX 文件的类库,可应用于各类报表平台、云计算和边缘计算系统。Go02