lf backup是一种将大文件备份到对象存储的工具,例如swift。

lf-backup的Python项目详细描述


lf backup代表大文件备份。

安装

RHEL/中心:

sudo yum -y install epel-release
sudo yum -y install python34 python34-setuptools python34-devel gcc postgresql-devel
sudo easy_install-3.4 pip

debian/ubuntu:

sudo apt-get install -y python3-dev libpq-dev

然后安装lf backup

sudo pip3 install --upgrade pip
sudo pip3 install lf-backup

配置

创建一个名为“大文件备份”的新swift容器

将以st_u开头的变量的export语句和postgres身份验证添加到config file.lf backuprc并将权限设置为600。(可选)导出pgsql以覆盖内置 SQL查询。

> nano ~/.lf-backuprc
> chmod 600 ~/.lf-backuprc
> cat ~/.lf-backuprc
export ST_AUTH=https://swiftcluster.domain.org/auth/v1.0
export ST_USER=swift_account
export ST_KEY=RshBXXXXXXXXXXXXXXXXXXXXX
export PGHOST=pgdb.domain.org
export PGPORT=32048
export PGDATABASE=storcrawldb
export PGUSER=xxxxxxxx
export PGPASSWORD=

创建cron作业/etc/cron.d/以根用户身份运行,开始时间约为晚上7点:

> cat /etc/cron.d/lf-backup
## enabled on hostname xxx on 11-01-2016
55 18 * * * root /usr/local/bin/lf-backup --prefix /fh/fast \
           --container large-file-backup-fast --sql >> /var/tmp/lf-backup-fast 2>&1

示例

lf-backup -C frobozz -c filelist.csv

从“filename.csv”的第1列读取文件列表,并使用 身份验证环境。

lf-backup -C grue -s

查询环境中指定的数据库以获取文件并备份到swift容器“grue” 使用环境进行身份验证。

lf-backup -C flathead -r 7 --prefix /fh/fast/restore42

将swift容器“flatfead”中7天以上的所有对象恢复到当前环境。这个 可选–prefix参数指定要还原对象的目标路径。

测试开发

要进行修改和更改测试,请安装新系统并从本地git文件夹安装

> git clone https://github.com/FredHutch/lf-backup
> rm -rf /usr/local/lib/python3.5/dist-packages/*; rm -rf /usr/local/bin/*
> pip3 install -e ./lf-backup

make changes in lf-backup and run again:

> rm -rf /usr/local/lib/python3.5/dist-packages/*; rm -rf /usr/local/bin/*
> pip3 install -e ./lf-backup

脚本有以下原始功能请求:

  • 从csv文件或sql db中获取一个文件列表,并将每个文件备份到对象存储(例如swift)
  • 从对象存储还原比指定天数(1)新的文件
  • 如果文件在过去x天内有一个atime(可配置),则取该文件的md5和 将md5sum存储在名为md5sum的属性/元数据中(尚未实现)
  • 检查文件是否已在对象存储中,如果文件大小和时间为 相同
  • 完成后通知电子邮件地址列表。附加上载的文件列表;创建 每个文件所有者一个文件列表(用户名)
  • 记录上载到syslog的每个文件,详细记录启用成功和失败 存储团队通过splunk监控成功/失败
  • bash script lf backup是python script lfbackup.py的包装器,lf backup sources and sets env 具有凭据和lfbackup.py的变量只读取环境变量
  • 主脚本lfbackup.py只在lflib.py中使用swift函数。
  • 段大小应为1GB,段容器名称应为。段容器名称,对象类型 是SLO,不是DLO
  • 使用完整路径但替换前缀的备份,例如文件 /fh/fast/lastname_f/project/file.bam将复制到帐户中的容器/bucket bam备份 斯威夫特海军后援。目标路径为/bam bucket/lastname_f/project/file.bam a –prefix=/fh/fast从目标删除fs根路径

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

推荐PyPI第三方库


热门话题
线程“awteventque0”java中的图像异常。lang.IllegalArgumentException:宽度(1)和高度(1)不能小于等于0   java JodaTime LocalTime到JSON实际堆栈溢出   java Jfree图表更改Y轴数据   java使用Perlin noise生成二维平铺贴图   java如何检测安卓中是否正在录制屏幕   如何在Android中从本机C/C++调用JavaAPI   java在非本地应用程序中将号码添加到iPhone或Android电话联系人列表   java找到最大的子矩阵   对于“偶数团队”代码,java迭代运行得更快   java Spring引导rest终结点返回null并带有获取请求   java将一个字符串插入到另一个字符串中   java我正在尝试向使用我的应用程序的特定用户广播消息?   来自Yml文件的java Spring引导和属性数据   java Gradle在依赖项中复制类   用于Knime中多行的java正则表达式   java访问来自超类的隐藏变量   java如何调用其他EAR的bean方法   java使用命令行更新哪些可用的驱动程序?   java如何允许其他人通过API向类添加自定义枚举   java Android R8在发送到Firebase时复制自定义模型类的字段