python备份数据库并发送邮件附件
记录下自己学习python的过程
这个是进行备份后,并发送邮件附件进行保存的功能。 相对来说比较简陋,可以自行修改,简略步骤,美化过程等。
示例代码:
#!/usr/bin/env python
# -*- coding:utf-8 -*- import os
import time
import smtplib
import string
from email.header import Header
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText def sendMail(datas):
# 定义相关数据,请更换自己的真实数据
smtpserver = 'smtp.163.com'
sender = 'to_darcy@163.com'
# receiver可设置多个,使用“,”分隔
receiver = 'todarcy@163.com'
username = 'to_darcy@163.com'
password = '' msg = MIMEMultipart()
for i in datas:
att = MIMEText(open(i, "rb").read(), "base64", "utf-8")
att["Content-Type"] = "application/octet-stream"
i = i.replace("/tmp/data_backup/", "")
att["Content-Disposition"] = 'attachment; filename= %s ' %i
msg.attach(att) receivers = receiver
toclause = receivers.split(',')
msg['To'] = ",".join(toclause)
# 添加主题,不然提示554 DT:SPM错误
msg['SUBJECT'] = "数据库备份成功" # 登陆并发送邮件
smtp = smtplib.SMTP()
try:
# # 打开调试模式
# smtp.set_debuglevel(1)
smtp.connect(smtpserver)
smtp.login(username, password)
smtp.sendmail(sender, receivers, msg.as_string())
except:
print("邮件发送失败!!")
else:
print("邮件发送成功")
finally:
smtp.quit() def mysqldump():
USER = 'root'
PASSWORD = ''
MYSQLDUMP = 'docker exec -i mysql mysqldump '
DATABASES = ['yao','icaesee']
TO_BACKUP_DIR="/tmp/data_backup/"
lists = []; for DB in DATABASES:
Backupfile_name = TO_BACKUP_DIR + DB + '-' + time.strftime('%Y-%m-%d') + '.sql'
Gzipfile_name = Backupfile_name + '.gz'
if os.path.isfile(Gzipfile_name):
print Gzipfile_name + " is already backup"
else:
Backup_command = MYSQLDUMP + ' -u' + USER + ' -p' + PASSWORD + " " + DB + ' >' + Backupfile_name
print Backup_command
# break
if os.system(Backup_command) == 0:
lists.append(Gzipfile_name)
else:
print "Fail"
# 打包压缩成.gz
GZIP_command = "gzip " + Backupfile_name
if os.system(GZIP_command) == 0:
print 'Successful gzip' + Backupfile_name + ' to ' + Gzipfile_name
else:
print 'Fail gzip' + Backupfile_name + ' to ' + Gzipfile_name
if len(lists) > 0:
sendMail(lists) mysqldump()
python备份数据库并发送邮件附件的更多相关文章
- 使用python调用email模块发送邮件附件
使用python调用email模块实现附件发送 需要模块: import datetime import time import sys import mimetypes import smtplib ...
- 【sqlite】python备份数据库
备份整个数据库的方法: # coding=utf-8 import sqlite3 def testBakSqlite(): conn = sqlite3.connect("sqlite_d ...
- python给多个发送邮件附件,参考于《python自动化运维》
#!/usr/bin/env python #coding: utf-8 #author:luodi date:2015/02/12 #description:this is a send mail ...
- 使用python备份数据库并删除备份超过一定时长的文件
#!/usr/bin/env python #-*- coding: utf-8 -*- """ @Project:Py @author:sandu @Email: sa ...
- Python备份MySQL数据库【转】
#!/usr/bin/env python # coding: utf- import os import time ''' defined variable ''' databases=['hch' ...
- 使用Windows任务计划程序和Python备份Mysql数据库
目标:每日定时自动备份Mysql数据库 方案: 1.安装Python: 使用的Python版本是Python3.7.1,下载地址:https://www.python.org/downloads/re ...
- python使用多线程备份数据库
前言:在日常服务器运维工作中,备份数据库是必不可少的,刚工作那会看到公司都是用shell脚本循环备份数据库,到现在自己学习python语言后,利用多进程多线程相关技术来实现并行备份数据库,充分利用服务 ...
- 实现定时备份mysql数据库并把备份数据库邮件发送
一.先来看备份mysql数据库的命令 1 mysqldump -u root --password=root --database abcDataBase > c:/abc_backup.sql ...
- springboot备份mysql后发送邮件并删除备份文件,支持win和Linux
首先加入springboot的邮箱依赖 <!--邮箱依赖--> <!-- https://mvnrepository.com/artifact/org.springframework ...
随机推荐
- div + css 边框 虚线
div + css 边框 虚线 dotted:[点线|有点的|点线式边框|点虚线] .introduce { border:1px dotted gray; margin:8px 5px 8px 10 ...
- CSS:CSS 字体
ylbtech-CSS:CSS 字体 1.返回顶部 1. CSS 字体 CSS字体属性定义字体,加粗,大小,文字样式. serif和sans-serif字体之间的区别 在计算机屏幕上,sans-se ...
- 3、第一个Appium测试
运行脚本前环境准备: 1.IDE,推荐使用IJ 2.安装jdk环境,推荐>1.8 3.准备一台真机或者模拟器 4.SDK 5.maven环境 项目目录: CalculatorTest.java文 ...
- SPOE网络供电
本文摘自:https://wenku.baidu.com/view/929bd42daa00b52acec7ca3a.html 随着网络技术与应用的快速发展,网络前端设备的种类越来越多.架设越来越广泛 ...
- 【HDUOJ】1257 最少拦截系统
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1257 题意:经典题. 题解:最长上升子序列. 代码: #include <iostream> ...
- Unity中动态绘制圆柱体
问题背景 上次写了动态绘制立方体,这最近又来了新功能,绘制圆柱(风筒),要求是给了很多节点,根据节点去动态绘制风筒,风筒就是圆柱连接而成的,可以理解为管道,还有就是拐角处注意倒角,圆润过度过来. 实现 ...
- python的三种特性
1.封装 什么时候用函数? 各个函数之间是独立的且无共用的数据. 什么时候用类? 函数之间是相关的,且有共用的数据,则可以使用类来封装. 所谓的封装: (1)使用构造方法将内容封装到 对象 中. (2 ...
- linux常用命令-4查看文件内容命令
vi file #打开并浏览文件 grep str /tmp/test #在文件 ‘/tmp/test’ 中查找 “str” grep ^str /tmp/test #在文件 ‘/tmp/test’ ...
- Spring接收数据,传递数据
Spring接收数据,传递数据 前提配置 POM <dependency> <groupId>org.springframework</groupId> < ...
- linux 档案 指令(鸟哥私房菜)
[ls -al] [ls -l --full-time] 显示文件完整的日期格式 [ls] 显示非隐藏档的文件信息 [ls -al] 显示所有文档信心.文档前面的 “”.“”表明该文档是隐藏档.eg. ...