千家信息网

python脚本按表备份MySQL数据库

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,脚本功能:1.自动创建备份目录2.自动备份数据库的每个表,并压缩3.备份结果,邮件通知联系人4.脚本内容#!/usr/bin/env python# --*-- coding:UTF-8 --*--
千家信息网最后更新 2025年02月02日python脚本按表备份MySQL数据库


脚本功能:

1.自动创建备份目录

2.自动备份数据库的每个表,并压缩

3.备份结果,邮件通知联系人

4.脚本内容

#!/usr/bin/env  python# --*-- coding:UTF-8 --*--# Create by JIANGLEI.YU on 2016/04/21# 多表自动备份ok。发送邮件失败。import  MySQLdbimport  sysimport  osimport  datetimeimport  smtplibfrom    email.mime.text   import MIMETextimport  sys# Define Mysql EnvironmentsHostname='192.168.0.141'Username='root'Password='123456'Database='virtual'MYSQLDUMP='/usr/bin/mysqldump'GZIP='/usr/bin/gzip'timestamp=datetime.datetime.now().strftime("%Y%m%d%H%M%S")Destination_dir='/home/bak/tables/' + timestamp + '/'# Define Smtp EnvironmentsHost='smtp.exmail.qq.com'Port=25sender='yujianglei@singulax.com'Pass='123456'recivers='jianglei.yu@foxmail.com'def main():if os.path.exists(Destination_dir) == False:os.makedirs(Destination_dir)db_table_backup()else:db_table_backup()def email():try:server= smtplib.SMTP()server.connect(Host,Port)server.login(sender,Pass)server.sendmail(sender,recivers,msg.as_string())except Exception,e:print eprint "邮件发送失败!"def backup_failed():global msgmsg = MIMEText('数据库单表备份失败')msg['subject'] = '数据库单表备份失败'msg['From'] = sendermsg['To'] = reciversemail()sys.exit(2)def backup_sucess():global msg msg = MIMEText(('数据库单表备份成功,共备份%d张表,共用时%.2f分钟.') % (tables_count,backup_period) ,  'plain','utf-8' ) msg['subject'] = '数据库单表备份成功'  msg['From'] = sendermsg['To'] = reciversemail()def db_table_backup():start_time=datetime.datetime.now()try:db = MySQLdb.connect(Hostname,Username,Password,Database,connect_timeout=2)cursor = db.cursor()except Exception, e:# print eprint "连接数据库失败"backup_failed()cursor.execute('show tables')f = cursor.fetchall()list_status = []for table in f:# print tablefor i in table:MYSQLDUMP_CMD = MYSQLDUMP + ' -h' + Hostname + ' -u' + Username + ' -p' + Password + ' ' +  Database + ' ' + i + ' ' + '| ' + GZIP + ' >' + Destination_dir + Database + '-' + timestamp+ '.' + i + '.' + 'sql.gz'result = os.system(MYSQLDUMP_CMD)list_status.append(result)global tables_counttables_count = len(list_status)list_test=[0]j = set(list_status).issubset(set(list_test))if j == True:end_time=datetime.datetime.now()global backup_periodbackup_period = ((end_time - start_time).seconds)/60.0backup_sucess()else:backup_failed()cursor.close()db.close()if __name__ ==  '__main__':main()


备份 数据 数据库 邮件 脚本 成功 内容 功能 目录 结果 联系人 UTF-8 联系 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 杭州火蚁网络技术集团有限公司 百度软件开发待遇怎么样 12v大功率服务器电源改可调 荣耀手机电子邮件服务器密码错误 服务器有独立ip代表什么、 数据库中如何让某个字段去重 东营财务软件开发 南京环保软件开发怎么样 拔刀服务器 计算机的数据库设计两大阶段 电脑销售系统数据库使用说明书 网络安全与管理txt 非结构数据库技术出现的背景 软件开发可以用哪些语言 盗版老头环怎么进服务器 数据库质疑 多用户模式 电子交易安全与网络安全的差别 追书大师服务器崩了 国际服和日韩服是一个服务器吗 嘉定区个性化软件开发概念设计 数据库操作的步骤 自学软件开发好学吗女生 降雨预测软件开发有何实用性 山东综合软件开发近期价格 浙江大数据数显钟服务器云主机 dns服务器域名解析测试命令 新华互联网科技系列之师资力量 通州区软件开发平台 绿茶下载软件开发 云服务器还要安全狗吗
0