学以致用,python多线程备份数据库并删除旧的备份。

 1 #!/usr/bin/python
 2 # -*- coding=utf-8 -*-
 3 import time
 4 import os
 5 import datetime
 6 import threading
 7 from time import ctime,sleep
 8
 9 date=time.strftime(‘%Y-%m-%d‘,time.localtime(time.time()))
10 dbname=(‘test‘,‘test2‘) #定义元组必须要有多个,要不则循环里面的字符。
11 dbname2=(‘test3‘,‘test4‘)
12 bkdir="/backup/mysqlbk/"
13
14 #删除超过3天的备份文件
15 now_time = datetime.datetime.now()
16 yes_time = now_time + datetime.timedelta(days=-3)
17 out_time = yes_time.strftime(‘%Y-%m-%d‘)
18
19
20
21
22 def dumpsql():
23     for i in dbname:
24         os.system("/usr/local/mysql/bin/mysqldump -u%s %s | gzip > %s%s" % ("root",i,bkdir,date+"."+i+".sql.gz"))
25
26 def dumpsql2():
27     for i in dbname2:
28         os.system("/usr/local/mysql/bin/mysqldump -u%s %s | gzip > %s%s" % ("root",i,bkdir,date+"."+i+".sql.gz"))
29
30
31 def outbk():
32     for i in dbname:
33         if os.path.exists(bkdir+out_time+‘.‘+i+‘.sql.gz‘):
34             os.remove(bkdir+out_time+‘.‘+i+‘.sql.gz‘)
35
36 #双线程
37 threads=[]
38 t1 = threading.Thread(target=dumpsql)
39 threads.append(t1)
40 t2 = threading.Thread(target=dumpsql2)
41 threads.append(t2)
42
43 if __name__ == "__main__":
44     outbk()
45     for t in threads:
46         t.setDaemon(True)   #启动多线程
47         t.start()
48     t.join()
49     print ("all over %s" %ctime())
时间: 2024-10-21 06:01:25

学以致用,python多线程备份数据库并删除旧的备份。的相关文章

sql server 批量备份数据库及删除N天前的备份数据

很多时候,我们都需要将数据库进行备份,当服务器上数据库较多时,不可能一个数据库创建一个定时任务进行备份,这时,就需要进行批量的数据库备份操作,好了,废话不多说,具体实现语句如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 -

Xtrabackup+Rsync 备份数据库并同步到远端备份机

简单架构: 简单描述: 要备份中间这三台服务器上面的数据库数据到备份机140上:中间这三台服务器是游戏服务器,WEB服务和DB都在一台机器上 最前端是passport服务器,提供玩家的账号相关信息及充值信息等,WEB服务和DB都在一台机器上,需要将数据库数据备份到备份机140上 服务器129对passport服务器的数据库做了mysql的主主同步,这里先忽略 要求: 对游戏服务器和passport服务器的数据库数据,在本地备份,同时备份到远端备份机140上,在本地保留三天,在备份机保留7天 将p

SQL Server 2005/2008备份数据库时提示“无法打开备份设备”

错误描述: 今天备份sqlserver 2008数据库时候,想要将备份文件放在f盘的根目录下,结果提示如下信息:备份对于服务器“服务器名”失败.(Microsoft.SqlServer.Smo)其他信息:System.Data.SqlClient.SqlError:无法打开备份设备'f:\abc.bak'.出现操作系统错误5(拒绝访问.).(Microsoft.SqlServer.Smo) 解决方法: 因为Sql Server 2005 可能存在一个小Bug,不能将备份文件放在根目录下,必须放在

SQL SERVER 设置自动备份和删除旧的数据库文件

打开SQL SERVER MANAGEMENT STUDIO,启动SQL SERVER代理服务(注意在“控制面板-管理工具-服务”中设置SQL SERVER AGENT的启动类型为自动).启动后点击“作业-新建作业”,弹出一个作业属性的窗口,在“常规”栏目里可以先给作业命名,假设为“备份数据”. 一.备份数据的第一个步骤--“备份当日数据” 在“步骤”栏目里新建一个步骤名为“备份当日数据”,类型为“T-SQL”,数据库选择你要操作的数据库(假设为“TESTDB”),命令窗口里填入备份的SQL语句

Linux下通过脚本自动备份Oracle数据库并删除指定天数前的备份

#!/bin/bash #设置Oracle数据库运行账号及oracle的系统环境变量 export ORACLE_BASE=/data/oracle export ORACLE_HOME=$ORACLE_BASE/product/10g export ORACLE_SID=test export PATH=$ORACLE_HOME/bin:$HOME/bin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/li

[Irving] SQL 2005/SQL 2008 备份数据库并自动删除N天前备份的脚本

以下为SQL脚本,本人以执行计划来调用,所以改成了执行命令,大家可根据自己需要改为存储过程使用 DECLARE @bak_path nvarchar(4000)='E:\MsBackUp\SqlAutoBackup\' --备份路径; DECLARE @baktype int = 0 --备份类型为全备,1为差异备,2为日志备份 DECLARE @type int = 3 --设置需要备份的库,0为全部库,1为系统库,2为全部用户库,3为指定库,4为排除指定库; DECLARE @dbnames

SqlServer自动备份、自动压缩、自动删除旧备份

准备工具: SqlServer2008 WinRar 1.给SqlServer设置维护计划定时备份 这个操作比较简单,按向导新增维护计划即可. 2.自动压缩脚本 c:\Progra~2\WinRar\winRar.exe a D:\bak\database_buckup_%date:~0,4%_%date:~5,2%_%date:~8,2% d:\bak\database_*%date:~0,4%_%date:~5,2%_%date:~8,2%_*.bak 备份文件的格式是:database_b

MySQL 5.7.10 自动备份、自动清理旧备份集

http://blog.csdn.net/mchdba/article/details/51527081 MySQL版本是5.7.10-log社区版本,需要进行备份,但是备份时间长了后,磁盘不够用,所以需要对指定旧的备份集合进行清理工作. 1,mysqldump备份脚本 备份脚本为,里面有几个需要注意的参数: (1)--master-data=2 :这个参数可以在搭建从库的时候,记录当前备份的复制点信息. (2)--extended-insert=false:这个在形成sql语句的时候,一条记录

MySQL 5.7.10 自动备份、自动清理旧备份集(转)

1,mysqldump备份脚本 备份脚本为,里面有几个需要注意的参数: (1)--master-data=2 :这个参数可以在搭建从库的时候,记录当前备份的复制点信息. (2)--extended-insert=false:这个在形成sql语句的时候,一条记录一个insert语句 (3)--single-transaction:来保证备份的一致性,实际上它的工作原理是设定本次会话的隔离级别为:REPEATABLE READ,以确保本次会话(dump)时,不会看到其他会话已经提交了的数据. 备份脚