记录下自己学习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备份数据库并发送邮件附件的更多相关文章

  1. 使用python调用email模块发送邮件附件

    使用python调用email模块实现附件发送 需要模块: import datetime import time import sys import mimetypes import smtplib ...

  2. 【sqlite】python备份数据库

    备份整个数据库的方法: # coding=utf-8 import sqlite3 def testBakSqlite(): conn = sqlite3.connect("sqlite_d ...

  3. python给多个发送邮件附件,参考于《python自动化运维》

    #!/usr/bin/env python #coding: utf-8 #author:luodi date:2015/02/12 #description:this is a send mail ...

  4. 使用python备份数据库并删除备份超过一定时长的文件

    #!/usr/bin/env python #-*- coding: utf-8 -*- """ @Project:Py @author:sandu @Email: sa ...

  5. Python备份MySQL数据库【转】

    #!/usr/bin/env python # coding: utf- import os import time ''' defined variable ''' databases=['hch' ...

  6. 使用Windows任务计划程序和Python备份Mysql数据库

    目标:每日定时自动备份Mysql数据库 方案: 1.安装Python: 使用的Python版本是Python3.7.1,下载地址:https://www.python.org/downloads/re ...

  7. python使用多线程备份数据库

    前言:在日常服务器运维工作中,备份数据库是必不可少的,刚工作那会看到公司都是用shell脚本循环备份数据库,到现在自己学习python语言后,利用多进程多线程相关技术来实现并行备份数据库,充分利用服务 ...

  8. 实现定时备份mysql数据库并把备份数据库邮件发送

    一.先来看备份mysql数据库的命令 1 mysqldump -u root --password=root --database abcDataBase > c:/abc_backup.sql ...

  9. springboot备份mysql后发送邮件并删除备份文件,支持win和Linux

    首先加入springboot的邮箱依赖 <!--邮箱依赖--> <!-- https://mvnrepository.com/artifact/org.springframework ...

随机推荐

  1. 在delphi中执行javascript代码

    有时做项目难免用到代码交叉调用,delphi中执行js就是一种,两种方法可用: 一.使用webbrower,比较麻烦 二.使用ScriptControl,简单方便: 1.首先 uses ComObj; ...

  2. 在ag-grid表格上实现类似Excel中的按下enter键自动跳转到下一行对应的输入框功能,Angular4开发

    最近的项目使用ag-grid在Angular中处理表格,收到个需求是要能够同时修改大量的数据,按下Enter键的时候,光标得自动跳到下一行的对应列上. 方法一:用ag-grid自带的 enterMov ...

  3. 如何禁止C++默认成员函数

    如何禁止C++默认成员函数 发表于 2016-03-02   |   分类于 C++  |   阅读次数 17 前言 前几天在一次笔试过程中被问到C++如何设计禁止调用默认构造函数,当时简单的想法是直 ...

  4. docker集群故障迁移

    docker swarm 故障时候镜像迁移(无法添加新节点的时候)生产docker集群出现了故障,无法正常添加删除节点.在这样的情况下只能想办法把故障集群的镜像迁移到新的docker集群当中.将发生故 ...

  5. 网页压缩--gzip和deflate的区别

    我们在配置网站GZip压缩的时候,会发现有两个模块可以设置的,一个是GZip模块的参数配置,另一个是Deflate模块的参数配置,他们的设置方法是一样的.刚开始时我不太明白,这两地方有什么不同?网站开 ...

  6. kmalloc vs vmalloc

    kmalloc分配物理上连续的空间,可以不是整页大小的. vmalloc分配逻辑上连接的空间,可以不是物理上连接的.

  7. C#基础-->cookie和session

    关于cookie和session cookie 1:一个cookie中可以存放的数据最大在4KB左右 2:cookie存放于客户端 3:cookie分为两种  一种是会话cookie  一种是持久co ...

  8. 剑指offer——70n个骰子的点数

    题目: 把n个骰子扔在地上,所有骰子朝上一面的点数之和为s.输入n,打印出s的所有可能的值出现的概率. 题解: 使用两个数组存每次投的点数 void theProbability(const int ...

  9. 剑指offer——56在排序数组中查找数字

    题目描述 统计一个数字在排序数组中出现的次数.   题解: 使用二分法找到数k然后向前找到第一个k,向后找到最后一个k,即可知道有几个k了 但一旦n个数都是k时,这个方法跟从头遍历没区别,都是O(N) ...

  10. Linux系统的buff/cache缓存清理脚本

    cacheClean.sh #!/bin/bash # 日期: # 作者: 黄慧丰/何鹏举 # 说明: fastdfs所在的linux系统的buffer cache过大, 且并没有有效的自动回收, 因 ...