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根路径