python脚本按表备份MySQL数据库
发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,脚本功能:1.自动创建备份目录2.自动备份数据库的每个表,并压缩3.备份结果,邮件通知联系人4.脚本内容#!/usr/bin/env python# --*-- coding:UTF-8 --*--
千家信息网最后更新 2024年11月22日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安全错误
数据库的锁怎样保障安全
买电脑还是租服务器
内蒙 网络安全 名单
远程连接服务器软件安全吗
深圳网络安全大会的布娃
iPhone查找链接不到服务器
网创互联网科技
湖南数据库安全审计系统
西安佰才邦网络技术有限公司
广州专业软件开发优化价格
怎么从网页进入数据库
万方数据库对大学生的作用
数据库链接名和密码默认是什么
linux 服务器更新
求生之路联机一般用什么服务器
国外高校网络安全
如何自学软件开发工程师
共享摇摇车软件开发公司
政府机关网络安全宣传周
网络安全演讲报告
郑州工商学院数据库原理
阿里云服务器网站目录
数据库通过查询的结果
怎么从网页进入数据库
移动流量最快的服务器
国铁集团网络安全实行
2k数据库更新
河北瑞迈尔网络技术有限公司
如何填写数据库
安全无疆界网络安全
淘宝卖服务器怎么分类