使用rsync创建增量备份。

yarbs的Python项目详细描述


#*y*et*a*nother*r*sync*b*ackup*s*s cript
使用rsync创建增量备份。该脚本利用rsync的"--link dest"功能创建完整快照,通过链接到以前备份的文件而不是创建新副本来节省空间。这样做的好处是只复制新的或更改的文件,但同时所有备份都显示为磁盘上的完整完整备份。

加载和安装
包可以安装或升级[使用pip](https://docs.python.org/3/installing/index.html):
````
python3-m pip install--升级yarbs
````

##必须在路径中安装依赖项
[rsync](https://rsync.samba.org)。在基于Debian的基于Debian的Linux发行版上(例如,ubuntu)可以通过:
`` bash
sudo apt install rsync
``````
` ` `
` ` ` ` ` `
` ` ` ` ` ` ` ` `
sudo apt install rsync
显示帮助:
` ` ` ` ` ` ` ` `
` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `比尔/>将"src"目录快照到"dst":
```
sudo python3-m yarbs backup src dst
```

这将创建一个类似"dst/src_2018-12-31t17-00"的时间戳备份。下次将备份作为链接源执行时使用此备份,以避免不必要的文件重复。如果已达到保留备份的最大值,则删除最旧的备份。

当仍在同步时,备份目录具有完成后删除的".tmp"名称后缀。如果遇到错误,将删除该目录。每次删除旧备份时也会删除临时目录,以防无法立即删除该目录。只有成功完成的备份才用于"--link dest"。

使用"-a`[rsync参数](https://download.samba.org/pub/rsync/rsync.html)。除此之外,它还保留原始文件权限(所有者和组),但要求以根用户身份执行yarb(即使用"sudo")。如果没有它,yarbs仍然可以工作,但是权限不会被保留。


\emple
create dummy test directories:
````
mkdir src
touch src/test1
touch src/test2
mkdir src/subdir
touch src/subdir/test3
mkdir dst
```

在``````
sudo python3-m yarbs备份src dst src dst
````
output:
`````
info:准备"src"备份。
info:备份dir:dst/src-u 2019-03-03t17-12-26
info:同步"src"备份。
cd++++++++++++++br/>>;f++++++++++++++++++++++++++++++++f+++++++++++++++++++++++++++++++++++test2
cd++++subdir/
>;f+++++++++街道/test3
信息:完成"src"备份。
````


>检查备份:
````
ls dst/src-u 2019-03-03t17-12-26/
````


>输出:
`````
>街道/test1 test2
``````

>运行第二次增量备份,增量备份:
``````
sudo python3-m yarbs parbs备份src dst````````````
ls dst/src/src/src/u 2019-2019-2019
```

输出:
```
信息:准备"src"备份。
信息:备份目录:dst/src_2019-03-03t17-15-07
信息:同步"src"备份。
信息:完成"src"备份。
````

检查备份,确保未更改的文件实际上具有相同的索引节点:
```
stat dst/src_2019-03-03-03T17-12-12-26/test1 dst/src-U 2019-03-03T17-15-07-15-07/test1 dst/src-2019-03-03T17-12-26/test1输出:
```
``
文件:'dst/src-2019-03-03T17-12-26/test1'
……
……
设备:b302h/45826d inode:398303链接:2
……
文件:'dst/src-dst/src-U 2019-03-03-03T17-15-07/test1/test1/test1'
>>>>

设备:B302H/45826D索引节点:398303链接:2

````

:备份目录:dst/src_2019-03-03t17-20-02
信息:同步"src"备份。
>;f.st……测试1
信息:完成"src"备份。
```


>检查最新备份是否包含更改文件,使用不同的索引节点:
```
```
stat dst/src/u 2019-03-03t17-12-03t17-12-26/test1 dst/src/u 2019-03-03t17-03-03-03t17-12-26/test1 dst/src/u 2019-03-03t17-20-02/test1/test1 dst/test1 dst/src/u 2019-03-03t117-03-03t17-03t17-20-02/test1/test1/test1/test1
````‘DST/SRC U 2019-03-03T17-12-26/test1’
……
设备:B302H/45826D索引节点:398303链接:2


文件:'dst/src\u 2019-03-03t17-15-07-07/test1'



设备:B302H/45826D索引节点:398303链接:2


文件:'dst/src\u 2019-03-03T17-20-02/test1'


设备:B302H/45826D索引节点:398758链接:1


``

现在有三个备份。将保留备份的限制设置为3将删除下一次运行时的最旧备份:
`````
sudo python3-m yarbs backup src dst--back备份保留3
```


output:
`````
info:准备"src"备份。
info:删除旧备份:dst/src/src\u 2019-03-03t117-03-03t117-12-26
info:backback备份目录:dst/src\u 2019-03-03-03t117-03-17-22-24
info:同步"src"src"B"型备份。
信息:已完成的"src"备份。
```

下面的命令:
```
sudo python3-m yarbs backup src dst
````

可以分为两个步骤:
`````
python3-m yarbs prepare src dst--backups_keep 3_sudo python3-m yarbs sync src
```

这对于通过ssh执行非常有用。目标服务器被指定为"--ssh-server"参数:
``
ssh-myserver python3-m yarbs-v prepare backup dst--backups-keep 3 python3-m yarbs-v sync src--ssh-server="myserver"
```

/>``` python
来自yarbs import backup
backup('src','dst')
````



欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
序列化反序列化java。awt。颜色>java。木卫一。InvalidClassException   java禁用多个日期范围jDateChooser   java为什么我的特例apper会被扔进泽西/灰熊?   JavaIntelliJ比较两个覆盖率数据   java什么是servletsdefault。你怎么办?   单击几下libgdx后java按钮没有响应   使用java将字符串转换为JSONArray   文件系统在java中刷新fileSystemViewer   java如何在hibernate中避免脏检查   java奇怪的问题,带有分号和“无法解决…”   java将值从子面板传递到父面板   HTML JTextPane CSS的Java FontSizeAction   java文件代码神秘地变成了一堆(0000)