
一、新建空间
注册七牛云(https://s.qiniu.com/JF7nyq)账号,然后在对象存储的空间管理中新建空间,此过程需要先进行实名认证,认证后可以获得10G的免费存储空间。
二、安装Qiniu
pip install qiniu
三、配置脚本
下载backup_file_to_qiniu.py(https://github.com/YangGerald/Just-for-Fun/raw/main/backup_file_to_qiniu/backup_file_to_qiniu.py),配置access_key、secret_key、backup_dir、backup_name、bucket_name的值。
# -*- coding: utf-8 -*-# flake8: noqafrom qiniu import Auth, put_file, etag, urlsafe_base64_encodeimport qiniu.configfrom qiniu.compat import is_py2, is_py3import timeimport os# 需要填写你的 Access Key 和 Secret Keyaccess_key = 'Access_Key'secret_key = 'Secret_Key'# 构建鉴权对象q = Auth(access_key, secret_key)# 当前日期和时间date = time.strftime('%Y-%m-%d-%H-%M', time.localtime())# 要备份的目录,多个请用空格分隔backup_dir = '/data'# 备份名称backup_name = 'data'# 要上传的空间bucket_name = 'Bucket_Name'# 上传到七牛后保存的文件名key = backup_name + '_' + date + '.zip'# 生成上传 Token,可以指定过期时间等token = q.upload_token(bucket_name, key, 3600)# 要上传文件的本地路径localfile = '/tmp/' + keycmd = 'zip -rq tmp/' + key + ' ' + backup_diros.system(cmd)ret, info = put_file(token, key, localfile)print(ret)print(info)if is_py2:assert ret['key'].encode('utf-8') == keyelif is_py3:assert ret['key'] == keyassert ret['hash'] == etag(localfile)os.system('rm -rf tmp/' + key)
四、执行备份
python backup_file_to_qiniu.py
五、使用 Cron 自动化
编辑crontab。
crontab -e
添加以下定时任务,该任务将会在每月第一天到时自动执行备份脚本。
0 0 1 * * /usr/bin/env python /path/to/file/backup_file_to_qiniu.py >> /path/to/file/backup_file_to_qiniu.log
文章转载自二进制之城,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




