随心一记

一二三四五,上山打老鼠


  • 首页

  • 归档

  • 标签
ywcsb

ywcsb

游戏可以不玩,小说不能不看。

153 日志
3 分类
42 标签
RSS
GitHub 知乎 随心一记
Links
  • 随心一记
  • 追梦人物的
  • MSDN

Python3备份MySQL数据库并上传到七牛云储存

发表于 2019-01-23 | 阅读 860 | 分类于 Python |
#!/usr/bin/env python3
#-*-coding:utf-8-*-
# date:     2018/4/13
__author__ = 'xiaobing'
import time
import os
from qiniu import Auth, put_file, etag, BucketManager


# 上传文件
def uploading(q, bucket_name, key, local_file):
    # 生成上传 Token,可以指定过期时间等
    token = q.upload_token(bucket_name, key, 3600)
    ret, info = put_file(token, key, local_file)
    assert ret['key'] == key
    assert ret['hash'] == etag(local_file)


# 设置更新文件生存时间和文件存储类型
def turnover_time(q, bucket_name, key):
    # 初始化BucketManager
    bucket = BucketManager(q)
    # 您要更新的生命周期
    days = '5'
    bucket.delete_after_days(bucket_name, key, days)
    # 1表示低频存储,0是标准存储
    bucket.change_type(bucket_name, key, 1)


def main(name):
    # 七牛云的空间
    bucket_name = 'mysqldump'
    # 七牛后保存的文件名
    key = name
    # 要上传文件的本地路径
    local_file = "/data/mysqldump/%s" % name
    # 填写你的Access Key 和 Secret Key #需要在七牛云获取
    access_key = "access key"
    secret_key = 'secret key'
    # 构建鉴权对象
    q = Auth(access_key, secret_key)
    uploading(q, bucket_name, key, local_file)
    turnover_time(q, bucket_name, key)


def mysql_dump(name):
    path = '/data/mysqldump/%s' % name
    path_tar = '%s.tar.gz' % path
    cmd_mysql = "mysqldump -uroot -p12345.com --all-databases --lock-tables > %s" % path
    cmd_tar = "tar zpPcf %s  %s && rm -rf %s" % (path_tar, path, path)
    cmd_find = "find /data/mysqldump/ -mtime +7  -name *.sql.tar.gz -exec rm -rf {} \;"
    if os.path.isdir("/data/mysqldump/"):
        if os.path.isdir(path_tar):
            pid = os.getpid()
            os.system('kill -9 %s' % pid)
        else:
            os.system(cmd_mysql)
            os.system(cmd_tar)
            os.system(cmd_find)
    else:
        os.mkdir("/data/mysqldump/")
        os.system(cmd_mysql)
        os.system(cmd_tar)


if __name__ == '__main__':
    data = time.strftime('%Y-%m-%d', time.localtime())
    name = 'all_%s.sql' % data
    mysql_dump(name)
    main(name=name_tar)
觉得不错,支持一下!
geerniya WeChat Pay

微信打赏

geerniya Alipay

支付宝打赏

# Python # 脚本
PyCharm 汉化
shell脚本使用tar备份

发表评论

共 0 条评论

    暂无评论
© 2018 - 2022 ywcsb
冀ICP备17022045号-1
Supported by 腾讯云