使用rsync备份您的个人文件
项目描述
使用rsync备份您的计算机上的目录到远程目标,创建当前状态的带时间戳的快照,并轮换旧备份。
安装
$ pip3 install --user "ryba"
用法
ryba使用配置文件来存储所有备份源和目标目录。有关创建配置文件的说明,请参阅配置。
要备份所有配置的目录,请运行ryba命令
$ ryba
一些常用的选项
- ryba -v
运行时打印更多信息。第二次使用将提供更详细的输出。
- ryba backup --dry-run
不进行任何更改,只打印将要发生的情况。
- ryba backup --directory <directory>
仅备份此配置的目录。
有关更多选项,请参阅ryba --help和ryba backup --help。
配置
配置存储在文件~/.config/ryba/config.toml中。它使用TOML文件格式。
需要配置以下三项内容
需要备份的源目录
备份存储的目标位置
备份轮换策略
源目录
这是需要备份的主机计算机上的目录。一个目录需要一个源、一个目标和一个备份轮换策略。
以下是最小配置,用于定义源目录
[[backup]]
source = "~/Documents"
target = "delorian:/backups/Documents/"
rotate = "monthly"
- source
要备份的目录的路径。
- target
一个命名目标 - 在这种情况下是“delorian” - 以及在目标上创建备份的路径,由冒号 : 分隔。
- rotate
一个轮转策略。可选。如果没有设置,将保留所有备份。可以在以后定义备份轮转策略,并清理旧备份。
您还可以定义一些可选字段
- exclude_from
排除文件的名称,用于与 rsync --exclude-from 选项一起使用。默认情况下,如果 .rsync-exclude 文件在 source 目录中找到,则使用该文件。您可以指定另一个文件来替代。相对路径相对于 source 解析。
- exclude_files
与 rsync --exclude 选项一起使用的模式列表。
- one_file_system
设置 rsync --one-file-system。默认为 true。
目标
目标是备份存储的位置。目标必须有名称。要定义名为“delorian”的目标,创建一个名为 [target.delorian] 的部分。可用于目标的选择取决于类型。
本地目标
将您的本地机器上的一个目录备份到另一个目录。例如,用于备份到已挂载的外部硬盘驱动器非常有用。
[target.tardis]
type = "local"
path = "/mount/tardis"
SSH 目标
使用 SSH 将备份到远程服务器。如果可能,一些 SSH 选项的默认值从 ~/.ssh/config 中获取。
[target.briefcase]
type = "ssh"
可用选项
- hostname
服务器的主机名。如果没有设置,默认为目标名称。
- username
用于远程服务器的认证用户名。如果没有设置,默认为您的用户名。
- port
要使用的 SSH 端口。
- path
所有备份的基础路径。可选,默认为 /。如果服务器上挂载了外部驱动器,您希望将所有备份放置在驱动器上,则这非常有用。所有目标目录都相对于此路径。
轮转策略
每次创建备份时,都会创建一个带时间戳的快照。这些快照使用硬链接创建,因此多个快照不会占用不合理数量的空间。然而,备份仍需要轮转。轮转策略定义如何保留或删除旧快照。
轮转策略必须有一个名称。要定义名为“monthly”的轮转策略,创建一个名为 [rotate.monthly] 的部分。可用于轮转策略的选项取决于策略。
保留所有
最基础的策略简单地保留所有备份。
[rotate.keep-all]
strategy = "all"
保留最近的 n 个
这将保留固定数量的最新备份。
[rotate.keep-7]
strategy = "latest"
count = 7
日期桶
这将保留每个时间段一些可配置数量的备份。
[rotate.6-months]
strategy = "date-bucket"
# Keep one backup per day for seven days
day = 7
# Keep one backup per week for four weeks
week = 4
# Keep one backup per month for six months
month = 6
可用的桶有 hour、day、week、month、year。备份根据它们的时戳分类到桶中。设置 day = 7 将保留最近七个不同日期中的一个备份。设置 week = 4 将保留最近四个不同周中的一个备份。桶的 "all" 值可用于每个桶中保留一个备份而没有任何限制。设置 year = "all" 将保留每年一个备份而没有任何限制。备份可以由多个桶保留。
每个存储桶保留一个备份,但存储桶在时间上不必连续。如果您每周只备份一次,并且有 days = 7,这仍然会保留每个不同日期的备份,但这些日期将分布在七周内。
默认情况下,将保留存储桶中最旧的备份。如果您每天都进行了备份,并且有 month = 6,则会保留过去六个月第一天的备份。这将导致保留从 2021-01-01、2021-02-01、2021-03-01 等日期的备份。如果您希望保留存储桶中最新的备份,则设置 prefer_newest = true。这将导致保留从 2021-01-31、2021-02-28、2021-03-31 等日期的备份。
项目详情
下载文件
下载您平台的文件。如果您不确定要选择哪个,请了解有关 安装包 的更多信息。
源分布
构建分布
ryba-0.1.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8787be825a72d1635a69ef1551b5de726599b1b60eb2ebcaaca762d16aa7d2ad |
|
MD5 | 3acd8a5445aa520c96911289350ca59f |
|
BLAKE2b-256 | c90788dfc8004b74c9fb3a16e83a9111f92ad5177f6d52e9a3bca0445cfc8b2f |
ryba-0.1.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 74766059f42a4cf00f48b9f74f5582ff569d949ee88b94d0c0dba416b7c81eb4 |
|
MD5 | d0fdb82785e99a6375a83aea87200bc9 |
|
BLAKE2b-256 | 6db333cacca2dba689cc3256a379976569e77ece53cd37161922a4ae0df8b2fe |