Python数据库备份脚本

#!/usr/bin/env python
# author: liudong
# -*- coding: utf-8 -*-
# filename: db_bak.py
import os
import time
import string import urllib,sys,urllib,json,smtplib
from email.mime.text import MIMEText mailto_list=['liudong@philisense.com']
mail_host="smtp.philisense.com"
mail_user="liudong@philisense.com"
mail_pass="邮箱密码"
mail_postfix="philisense.com"
def send_mail(to_list,sub,content):
me="hello"+"<"+mail_user+"@"+mail_postfix+">"
msg = MIMEText(content,_subtype='plain')
msg['Subject'] = sub
msg['From'] = me
msg['To'] = ";".join(to_list)
try:
server = smtplib.SMTP(mail_host,25)
server.set_debuglevel(1)
server.login(mail_user,mail_pass)
server.sendmail(me, to_list, msg.as_string())
server.close()
except :
return False
#######################################以上是邮箱配置##########################################
''' defined variable '''
databases=['zabbix'] #定义要备份的数据库名
sql_user='zabbix' #数据库登陆用户
sql_pwd=['zabbix'] #数据库登陆密码
''' Defining the remote backup variables '''
jv_test01_ip="192.168.199.193" #备份服务器ip
jv_test01_user="work" #账户
jv_test01_port='' #端口
jv_test01_dir="/home/work/" #要备份到的服务器路径
''' Create the backup file directory '''
mkdir_dir="/home/work/"+time.strftime('%Y%m%d')+"/" #在/home/work/目录下用当天时间的格式创建目录
if not os.path.exists(mkdir_dir): #判断如果没有当天时间目录
os.mkdir(mkdir_dir) #创建
print 'Successfully created directory', mkdir_dir #打印创建成功
''' Start backup of database to the specified directory '''
for database_name in databases: #循环zabbix数据库
os.chdir(mkdir_dir) #改变当前工作目录到指定的路径
today_sql=mkdir_dir+database_name+'_'+time.strftime('%Y%m%d')+'.sql' #定义数据库文件名变量
sql_comm="mysqldump -u %s -p'%s' %s > %s"%(sql_user,sql_pwd[0],database_name,today_sql) #定义备份数据库变量
if os.system(sql_comm) == 0: #如果上一条执行结果等于0,表示成功
print database_name,'is backup successfully!' #打印成功信息
else: #否则
send_mail(mailto_list,'db_bak','The in db_bak error !!') #发送邮件,提示未备份成功信息
time.sleep(3) #停顿3秒
scp_comm="scp -P%s %s %s@%s:%s "% (jv_test01_port,today_sql,jv_test01_user,jv_test01_ip,jv_test01_dir)#把备份的数据库文件拷贝到指定的服务器的备份目录
if os.system(scp_comm) == 0: ##如果上一条执行结果等于0,表示成功
print today_sql,'This file backup to jv_test01 success!' #打印成功信息
else: #否则
send_mail(mailto_list,'db_bak','The in scp error !!') #发送邮件,提示未远程备份成功信息

Python数据库备份脚本的更多相关文章

  1. Python 数据库备份脚本

    #!/usr/bin/python########################################################### Created date: 2017/12/7 ...

  2. Windows下MySQL数据库备份脚本(一)

    说明: MySQL数据库安装目录:C:\Program Files\MySQL\MySQL Server 5.0 MySQL数据库存放目录:C:\Program Files\MySQL\MySQL S ...

  3. Windows下MySQL数据库备份脚本(二)

    说明: MySQL数据库安装目录:C:\Program Files\MySQL\MySQL Server 5.0 MySQL数据库存放目录:C:\Program Files\MySQL\MySQL S ...

  4. mysql数据库备份脚本

    mysql数据库备份脚本 mysql数据库分库备份脚本:[root@localhost tmp]# cat mysql.sh #!/bin/bash USER=root PASSWORD=joy4yo ...

  5. Shell脚本使用汇总整理——达梦数据库备份脚本

    Shell脚本使用汇总整理——达梦数据库备份脚本 Shell脚本使用的基本知识点汇总详情见连接: https://www.cnblogs.com/lsy-blogs/p/9223477.html 脚本 ...

  6. SQLSERVER 数据库备份脚本-支持多库备份

    原文:SQLSERVER 数据库备份脚本-支持多库备份 <pre name="code" class="sql">--变量定义 DECLARE @b ...

  7. Ubuntu Server下MySql数据库备份脚本代码

    明: 我这里要把MySql数据库存放目录/var/lib/mysql下面的pw85数据库备份到/home/mysql_data里面,并且保存为mysqldata_bak_2012_04_11.tar. ...

  8. mysql数据库备份脚本一例

    例子,mysql数据库备份脚本.vim mysql.sh #!/bin/bash DAY=`date +%Y-%m-%d` //日期以年月日显示并赋予DAY变量 SIZE=`du -sh /var/l ...

  9. PostgreSQL 数据库备份脚本

    PostgreSQL 数据库备份脚本 #!/bin/bash # PG家目录(/opt/postgresql/pg96/) PG_HOME=${PGHOME} # pg数据库连接信息 PG_HOST= ...

随机推荐

  1. Redis应用配置项说明

    近期整理了下项目中Redis配置参数,以便学习备用~ #指定内存大小,格式为1k 1GB 1M,单位不区分大小写 # 1k  => 1000 bytes # 1kb => 1024 byt ...

  2. JSTL 核心标签库 使用

    JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out.set.remove.catch 2.流程控制标签:if.choose.when.otherwise 3.循环标签:f ...

  3. java Servlet Filter 拦截Ajax请求

    /** * 版权:Copyright 2016-2016 AudaqueTech. Co. Ltd. All Rights Reserved. * 描述: * 创建人:赵巍 * 创建时间:2016年1 ...

  4. 数据结构与算法(1)支线任务3——Largest Rectangle in Histogram

    题目如下:(https://leetcode.com/problems/largest-rectangle-in-histogram/) Given n non-negative integers r ...

  5. pacman -Syu : key could not be looked up remotely.

    # sudo pacman -Syu...error: key "5F702428F70E0903" could not be looked up remotelyerror: r ...

  6. web 音频文件自动播放(兼容所有浏览器)

    function AudioPerform() { var ua = navigator.userAgent.toLowerCase(); var audiopath = "$!{Templ ...

  7. Python-9 函数

    #1 内建函数 乘方:pow() >>> pow(2,3) 8 >>> 取绝对值:abs() >>> abs(-1) 1 >>> ...

  8. java.lang.OutOfMemoryError: Java heap space解决办法

    进入到tomcat/bin目录下,编辑catalina.bat,在这个文件最前面加入一句:set JAVA_OPTS=-Xms384m -Xmx384m 保存退出,重启tomcat服务即可. 该异常应 ...

  9. 《JavaScript高级程序设计》学习笔记(5)——面向对象编程

    欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 本节内容对应<JavaScript高级程序设计>的第六章内容. 1.面向对象(Object ...

  10. Sql Server 按行处理表数据思路

    SqlServer的游标当超过1000行左右的时候效率极其低下. DECLARE @Company VARCHAR(12)='' SELECT TOP 1 @Company=CompanyID FRO ...