*Python3.8实现mysql5.7数据备份压缩

Python3.8实现mysql5.77数据备份压缩脚本源码

# -*- coding:utf-8 -*-
import os
import time
import tarfile

#定义服务器,用户名、密码、数据库名称(多个库分行放置)和备份的路径
DB_USER = 'root'
DB_NAME = '/root/heqing/scripts/dbname.txt'
BACKUP_PATH = '/root/heqing/backup/rds/'
DATETIME = time.strftime('%Y%m%d')
TDBACKUPPATH = BACKUP_PATH + DATETIME

print('creating backup folder!')
#创建备份文件夹
if not os.path.exists(TDBACKUPPATH):
    os.makedirs(TDBACKUPPATH)

print('checking for databases names files')
#定义执行备份脚本,读取文件中的数据库名称,注意按行读写,不校验是否存在该库
def run_backup():
    in_file = open(DB_NAME,"r")
    for dbname in in_file.readlines():
              dbname = dbname.strip()
              print("now starting backup database {0}" .format(dbname))
              dumpcmd = 'mysqldump -u {0} -B --max-allowed-packet=1024M --set-gtid-purged=OFF  {1} > {2}/{3}.sql'.format(DB_USER,dbname,TDBACKUPPATH,dbname)
              print(dumpcmd)
              os.system(dumpcmd)
    in_file.close()

#执行备份文件压缩
def run_tar():
    os.chdir(TDBACKUPPATH)
    for root, dirs, files in os.walk(TDBACKUPPATH):
        for i in files:
            compress_cmd = 'tar -czvf {}.tar.gz {}'.format(i, i)
            print(compress_cmd)
            os.system(compress_cmd)
    #删除sql文件
    remove_cmd = 'rm -fr *.sql'
    os.system(remove_cmd)
    print("file tar success")


#备份数据库文件存在就执行备份和压缩,否则退出
if os.path.exists(DB_NAME):
    file1 = open(DB_NAME)
    print("starting backup of all db listed in file"+DB_NAME)
    run_backup()
    run_tar()
    print("backup success!")
    file1.close()
else:
    print("database files not found!")
    exit()

python

这个脚本实现逻辑:
将你需要备份的库名写在dbname.txt中,如果存在此文件,则执行备份整库sql,在经过遍历tar压缩,如果不存在,则退出。已投入使用,感兴趣的朋友可以再优化代码
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值