python脚本按表备份MySQL数据库
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,脚本功能:1.自动创建备份目录2.自动备份数据库的每个表,并压缩3.备份结果,邮件通知联系人4.脚本内容#!/usr/bin/env python# --*-- coding:UTF-8 --*--
千家信息网最后更新 2026年11月01日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安全错误
数据库的锁怎样保障安全
互联网高科技
南京欣网互联网络科技
互联网科技名片
江苏根荣互联网科技
美国互联网保险保险科技
金融科技与互联网金融
汇久创客互联网科技
互联网科技教育视频
互联网校园科技培训
互联网和黑科技的看法
互联网5g黑科技有哪些
中国互联网公司排名锤子科技
美国互联网科技公司
上海乐五互联网科技有限公司
上海同邻互联网科技有限公司规模
福州德业互联网科技
上海万顺科技互联网有限公司招聘
保山互联网科技靠谱吗
亚光科技低轨卫星互联网
互联网高科技绘画
互联网科技海报
互联网科技工作委员会主任
智网互联网科技
朗涯互联网科技
宁波青枫互联网科技有限公司
团飞科技与伯堂互联网服务平台
宜昌元轩互联网科技有限公司
工业互联网科技成果转化
平安好医生打造互联网科技医疗
伍佰万互联网科技是干嘛的