2 个版本 (1 个稳定版)
1.0.0 | 2024 年 1 月 28 日 |
---|---|
0.2.0 | 2024 年 1 月 10 日 |
#412 in 文件系统
53KB
1K SLoC
巴克斯普
巴克斯普是一个使用 XZ 压缩创建备份(或任何存档)的程序。
备份可以由简单的 TOML 配置。
安装 & 使用
cargo安装 baxzup
当巴克斯普首次运行时,它将生成默认配置,并在继续之前等待输入(以便首先编辑配置)。
每次运行巴克斯普,除非配置丢失,否则它将自动开始创建备份。
可以使用 --config-path
标志更改配置文件的路径。要完全跳过从文件读取配置并仅使用默认配置,请使用 --default-config
。
配置
字段 | 类型 | 描述 | 默认 |
---|---|---|---|
backup.paths |
[String, ...] |
要添加到备份的目录/文件的路径。 | Windows:['C:\'] Linux: ["/etc", "/home", "/root", "/var"] MacOS: ["/Users", "/Applications", "/Library"] |
backup.exclude |
[String, ...] |
要排除的模式的列表。 如果程序当前正在检查的路径包含任何模式,它将跳过它。 模式可以是正则表达式,通过输入 ?/pattern/flags 来指定。 |
Windows:["?/cache/i", 'C:\Program Files', 'C:\Program Files(x86)', 'C:\Windows'] Linux 和 MacOS ["?/cache/i"] |
backup.exclude_tags |
Table<String> |
要排除的标签的列表。 如果目录包含任何与标签(表的关键)名称相同的文件,它将被跳过。 标签模式(键的值)定义了如何跳过目录 keep-tag: 保留目录和标签文件,但跳过目录中的其他所有文件。 keep-dir: 保留目录,但将其留空。 keep-none: 不保留任何内容。 |
{ "CACHEDIR.TAG" = "keep-tag" } |
backup.follow_symlinks |
bool |
程序将存档符号链接所链接的任何内容,而不是符号链接本身。 以下符号链接可能会导致程序陷入循环,请谨慎使用。 |
false |
backup.ignore_unreadable_files |
bool |
当无法读取文件时,程序将立即跳过它,而不是询问用户。 | false |
backup.force_overwrite |
bool |
如果已存在与备份文件同名的文件,则程序将自动覆盖它,而不是询问用户。 | false |
backup.name |
String |
备份文件的名字(或路径),支持strftime-like格式化,并包含一些额外的指定符。 **%!hostname** 系统主机名,如果无法获取则为“unknown”。 **%!systemname** 系统名,如果无法获取则为“unknown”。 **%!systemid** 系统的发行版ID。 **%!username** 用户名,如果无法获取则为“unknown”。 **%!groupname** 用户的组名,如果无法获取则为“unknown”(Windows上无法获取)。 |
%!hostname(%F).tar.xz |
progress_bars.enable |
bool |
程序将显示两个进度条,显示已存档和已压缩的量。 进度条并不准确,只是为了大致了解已完成的工作量和剩余工作量。 |
true |
progress_bars.spinner_chars |
String |
用于旋转动画的字符,最后一个字符用于进度条完成时使用。 必须包含至少2个字符。 |
支持Unicode:⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏ 仅ASCII: |/-\ |
progress_bars.progress_chars |
String |
用于进度条的字符,第一个字符用于进度条的填充部分,最后一个字符用于进度条的空白部分。 如果有其他字符,将用于进度条中即将填充的字符。 必须包含至少2个字符。 |
█░ |
progress_bars.tar_bar_color |
String |
用于“存档”进度条的颜色,字符串必须包含颜色的名称或其编号。 可以使用 / 将颜色分为填充部分的颜色和空白部分的颜色。如果只提供一个颜色,则将用于两部分。 |
yellow |
progress_bars.xz_bar_color |
String |
用于“压缩”进度条的颜色,字符串必须包含颜色的名称或其编号。 可以使用 / 将颜色分为填充部分的颜色和空白部分的颜色。如果只提供一个颜色,则将用于两部分。 |
magenta |
xz.level |
u32 (0 -9 ) |
XZ的压缩级别,较低的级别速度更快,使用的内存更少,但压缩效果较差。 | 8 |
xz.threads |
u32 |
XZ使用的线程数。 | CPU的核数。 |
xz.block_size |
u64 |
每个未压缩数据块的尺寸(以字节为单位),每个线程将分配大约3倍于数据块大小的字节数。 将此设置为0以让XZ选择数据块大小。 |
0 |
auto_update_config |
bool |
如果已定义且设置为 true ,则如果检测到任何过时的字段,配置将自动更新。 |
None. |
当配置文件不存在时,将自动创建一个新的配置文件,并使用默认值。
此外,从命令行界面,可以使用标志修改大多数配置。
依赖项
~10–40MB
~630K SLoC