跳转到主要内容

使用rsync备份您的个人文件

项目描述

使用rsync备份您的计算机上的目录到远程目标,创建当前状态的带时间戳的快照,并轮换旧备份。

安装

$ pip3 install --user "ryba"

用法

ryba使用配置文件来存储所有备份源和目标目录。有关创建配置文件的说明,请参阅配置

要备份所有配置的目录,请运行ryba命令

$ ryba

一些常用的选项

ryba -v

运行时打印更多信息。第二次使用将提供更详细的输出。

ryba backup --dry-run

不进行任何更改,只打印将要发生的情况。

ryba backup --directory <directory>

仅备份此配置的目录。

有关更多选项,请参阅ryba --helpryba backup --help

配置

配置存储在文件~/.config/ryba/config.toml中。它使用TOML文件格式。

需要配置以下三项内容

  1. 需要备份的源目录

  2. 备份存储的目标位置

  3. 备份轮换策略

源目录

这是需要备份的主机计算机上的目录。一个目录需要一个源、一个目标和一个备份轮换策略。

以下是最小配置,用于定义源目录

[[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

可用的桶有 hourdayweekmonthyear。备份根据它们的时戳分类到桶中。设置 day = 7 将保留最近七个不同日期中的一个备份。设置 week = 4 将保留最近四个不同周中的一个备份。桶的 "all" 值可用于每个桶中保留一个备份而没有任何限制。设置 year = "all" 将保留每年一个备份而没有任何限制。备份可以由多个桶保留。

每个存储桶保留一个备份,但存储桶在时间上不必连续。如果您每周只备份一次,并且有 days = 7,这仍然会保留每个不同日期的备份,但这些日期将分布在七周内。

默认情况下,将保留存储桶中最旧的备份。如果您每天都进行了备份,并且有 month = 6,则会保留过去六个月第一天的备份。这将导致保留从 2021-01-012021-02-012021-03-01 等日期的备份。如果您希望保留存储桶中最新的备份,则设置 prefer_newest = true。这将导致保留从 2021-01-312021-02-282021-03-31 等日期的备份。

项目详情


下载文件

下载您平台的文件。如果您不确定要选择哪个,请了解有关 安装包 的更多信息。

源分布

ryba-0.1.1.tar.gz (19.8 kB 查看哈希值)

上传时间

构建分布

ryba-0.1.1-py3-none-any.whl (23.4 kB 查看哈希值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面