把你的树莓pi变成一个独立的网络备份模块。

vhpi的Python项目详细描述


#非常饥渴的pi
<;img src="assets/slideshow.gif"alt="slideshow"/>;


现在[pypi]上有一个"vhpi"包(https://pypi.python.org/pypi/vhpi)和一个简单的命令行界面,可以更方便地运行*vhpi*。配置中有一些细微的中断更改。如果从v1升级到v2,最重要的是快照目录有一个新的命名约定。`月刊。现在是"2017-10-11"月刊02:07:03。时间戳告诉您备份何时完成。如果要将当前快照与v2一起使用,则应相应地调整它们的名称。更多变化请参见[changelog.md](https://github.com/feluxe/very_hungngniu-pi/blob/2.0/changelog.md),更多变化请参见



<<
*[描述]
*[特征]
*[需求]
*[示例配置](示例配置)

*[安装与配置](安装安装)


*[安装与配置]
[安装与配置]
br/>
35;<;a name="description">;<;/a>;说明
使用**vhpi**您可以将覆盆子pi转换为网络的静默备份模块。
*vhpi*创建[增量](https://en.wikipedia.org/wiki/incremental_backup)[快照](https://github.com/feluxe/very_hungry_pi/wiki/snapshots-explanation)可用网络共享的备份(例如[nfs](https://en.wikipedia.org/wiki/network戋file戋system),[samba](https://en.wikipedia.org/wiki/samba戋(software)),以最少的磁盘空间自动静默运行。
*vhpi*完全在"服务器端"上运行;客户端只需与pi共享/导出备份源,让pi在后台运行备份。
*vhpi*使用经过战斗验证的工具,如[rsync](https://en.wikipedia.org/wiki/rsync)创建备份,并使用[cp](https://en.wikipedia.org/wiki/cp_u(unix))创建快照的硬链接。
要获得对备份的最大控制,*vhpi*使用raw[rsync选项](http://linux.die.net/man/1/rsync)进行配置。
*vhpi*编写两个日志文件:一个用于简要概述整个过程([info.log exmpl.](vhpi/examples/info.log))和一个用于调试([debug.log exmpl.](vhpi/examples/debug.log))。


**tl;dr:***只需设置*vhpi*,24/7运行您的pi,不再关心备份。
<;br>;

\lt;a name="features">;

**vhpi*可与任何您喜欢的rsync命令配合使用。这为您的备份提供了各种各样的配置选项,并有详细的文档记录。
*您可以创建多个*排除列表*从备份中排除文件/目录。(请参见[示例配置]("示例配置")中的"排除库")
**vhpi*为您喜欢的任何时间间隔创建[快照](https://github.com/feluxe/very_hungry_pi/wiki/snapshots-explanation)。(例如,"每小时"、"每天"、"每周"、"每月"、"每4小时"、"每半年"等)只需将间隔名称及其持续时间(以秒为单位)添加到配置中。(请参见[示例配置]("示例配置")中的"间隔"。
*您可以设置要为每个已使用间隔保留的快照数量。
例如,如果要为"每小时"间隔保留3个快照,则会得到3个快照目录:"hourly.0"、"hourly.1"、"hourly.2"。每个快照都会在过去一小时后到达。
*快照需要最少的磁盘空间:
*因为备份是增量创建的。
*因为*vhpi*为所有未更改的文件创建新快照作为"硬链接"。(没有重复的文件..只是链接)
*进程被很好地记录下来("info.log","debug.log")。
*如果备份进程需要很长时间,*vhpi*会阻止任何启动新备份进程的尝试,直到第一个备份进程完成,以防止pi过载。
*计划了更多功能(请参阅:[版本概述](https://github.com/feluxe/very懔hungry懔pi/wiki/version-o)verview-(todos))

提示">;<;/a>;要求:

*您的pi上需要python>;=3.6才能运行*vhpi*。([如何在您的pi上安装python3.x](https://github.com/feluxe/very_hungry_pi/wiki/install-python3.x-from-source-on-a-raspberry-pi-(raspbian)))
*备份目标的文件系统必须支持硬链接。(最常见的文件系统,如ntfs和ext等)需要访问要备份的每个客户端的目录。只需与"nfs"或"samba"共享/导出它们。也许*vhpi*也可以创建本地备份。

您应该使用"autofs"或类似工具,以便在共享目录可用时自动将其装载到pi中。这样,当机器进入网络时,您的pi将自动挂载目录。

wiki中有一个关于此的教程:[如何使用nfs与您的覆盆子pi共享源文件。](https://github.com/feluxe/very_hungry椆pi/wiki/how-to-share-sources-with-your-raspberry-pi-using-nfs.)


\vhpi*的最简单安装方法是使用pip。你需要蟒蛇3.6才能让vhpi运行。([如何在您的pi上安装python3.x](https://github.com/feluxe/very_hungry_pi/wiki/install-python3.x-from-source-on-a-raspberry-pi-(raspbian)))
安装python3.6之后,您可以运行pip来安装*vhpi*,如下所示:
````
$pip3.6 install vhpi
````

ck如果*vhpi*成功装入:

```
$vhpi--help
````
它应该将帮助文本打印到终端。




我在那儿。这是配置备份的地方。配置文件很简单,只要看看[example config](example_u config)




测试配置

以便测试*vhpi*我建议设置一些指向某些安全目标的虚拟备份源。可能在`/tmp`目录中。然后运行以下命令几次,看看目标是否已填满备份/快照:

````
$vhpi run
````


如果出现错误,请尝试调整配置。如果您认为有一个bug,请随意使用[Github问题跟踪器](https://github.com/feluxe/very_hungry_pi/issues)!
每次运行的结果也会写入日志文件(` ~/.config/vhpi/debug.log`和` ~/.config/vhpi/info.log`)

t每小时自动运行一次vhpi。为此,可以将以下行添加到`/etc/crontab`。(将"username"替换为应该运行*vhpi*的用户名)

````
@hourly username vhpi run
````

如果要将cronjob设置为*hourly*以外的值,您可能需要阅读以下内容:[为cornjob选择间隔。](https://github.com/feluxe/ver为cronjob选择一个间隔。)


重新启动
```

如果这一切都完成了,您的pi应该每小时运行一次*vhpi*,并且您应该在日志文件中看到一些活动以及硬盘驱动器上的原因。哎呀!:d



转义项的计数相同。

设置:
应用程序配置:
创建要从备份中排除的文件/目录的不同列表。
排除库:
标准列表:[
丢失+找到/*,
.缓存/铬/*,
.mozilla/firefox/*/缓存,
.缓存/缩略图/*,
.本地/共享/垃圾/*
另一个列表:[
一些"u dir
]
定义时间间隔,您可以将其用于快照。
可以使用自己的定义,如"every_u hours:14400"等。
值必须以秒为单位。
间隔:{
每小时:3600,
每六小时:21600,
每天:86400,
每周:604800,
每月:2592000,
每年:31536000
}

如果是本地源,请使用"127.0.0.1"或"localhost"。
rsync_src:'/tmp/tests/dummy_src/src1/'\r指向已装入或本地目录的路径。
rsync_dst:'/tmp/tests/dummy_dest/dest1/'\r指向创建每个快照的目标目录的路径。
rsync_options:'-aahsvx--delete'\r要删除的选项用于rsync备份。默认值为"-av"。关于rsync的更多信息:http://linux.die.net/man/1/rsync
排除列表:[添加排除列表以排除文件/文件夹列表。见上文:app_cfg->;exclude_lib
标准_list,
另一个_list
]
excludes:[添加排除列表未包含的其他特定于源的排除文件/目录。
下载,
tmp
]
快照:定义有多少个要为每个间隔保留的快照。旧的快照将自动删除。
每小时:6
每六小时:4
每天:7
每周:4
每月:6
每年:6

源2:
名称:"另一个虚拟源"
源IP:192.168.178.36
等。
````

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

推荐PyPI第三方库


热门话题
JavaMaven没有识别junit测试   正则表达式替换Java中字符串中的所有“(“and”)”   文件移动到另一台计算机时出现java错误“实例化servlet类”   服务器上的java服务   Spring数据JPA上的java嵌套@Transactional注释行为   eclipse中的Java Tomcat项目   java在Tomcat上部署web应用程序   如何解决“java.lang.IllegalStateException:ArrayAdapter要求资源ID为TextView”错误?   java在条形码上方添加文本,并使用烧烤更改字体大小   java与php基准测试   java使用正则表达式提取特定模式   java扫描器。findInLine()大量泄漏内存   java HTTP:差异请求属性和POST参数   返回空指针的Java方法?   java验证密码不包含名称中的3个以上连续字符   Java中带泛型的静态多态性   java在Android中获得最后一个已知位置   java为什么Groovy的Map比Array更具可伸缩性?   编码如何在Java中生成八进制字符串?   java Hibernate:使用单例会话写入日志(无刷新)