#-*-coding:utf-8 -*-
#!/usr/bin/python
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import os
import time
import MySQLdb
from datetime import datetime
def selectTable(conn,defdb,tbname):
global plname,tablelist
try:
cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)
#conn.select_db('INFORMATION_SCHEMA')
sql="SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=\'%s\' and TABLE_NAME = \'%s\';" % (defdb,tbname)
#print sql
cur.execute(sql)
result = cur.fetchone()
#print result
conn.commit()
cur.close()
except MySQLdb.Error,e:
print "Mysql Error %d:%s"%(e.args[0],e.args[1])
return result
def rename_table(conn,zoneid,defdb):
stri=""
global plname,tablelist
try:
cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)
conn.select_db(defdb)
sql=" SELECT operateTime from b_flowheromoney order by operateTime limit 1"
cur.execute(sql)
conn.commit()
result=cur.fetchone()
if result is not None:
print result['operateTime']
oldtime=result['operateTime']
date_space=int(time.time())-oldtime
if date_space >60*60*24*10 and date_space >0 and oldtime>60*60:
print "新旧表间隔大于10天"
for one in tablelist:
if selectTable(conn,defdb,"%s_bak" % one) is not None:
print "开始 rename table %s to %s_bak" % (one,one)
cur.execute("truncate table %s_bak" % (one))
conn.commit()
cur.execute("drop table if exists %s_bak") % one
conn.commit()
cur.execute("rename table %s to %s_bak" % (one))
conn.commit()
else:
print "rename table 不超过10天,不操作"
else:
print "新表没有超过10天,不操作备份"
cur.close()
except MySQLdb.Error,e:
print e
print "MySQL Error %d:%s" % (e.args[0],e.args[1])
if __name__=="__main__":
tablelist=['b_flowheromoney','b_flowmmcache','b_flowequip','b_flowheroexp','b_flowtool','b_flowherostrength','b_flowheroattr','b_flowfabao','m_logininfo','m_loginout']
plname=sys.argv[1]
zoneid=sys.argv[2]
gsport=sys.argv[3]
if os.path.exists("/usr/jyserver/%s/server/config/dbs.properties" % str(gsport)):
with open("/usr/jyserver/%s/server/config/dbs.properties" % str(gsport)) as f:
for line in f:
print line
zoneid=int(line.split("=")[0])
print zoneid
address=line.split("/")[2].split(":")[0]
print address
database_name=line.split("&")[0].split("/")[3]
print database_name
if not zoneid is None and not address is None:
defdb="xmxy_%s_%s" % (plname,zoneid)
conn = MySQLdb.connect(host="%s" % address,user='xxxx',passwd='xxxx',port=3306,charset='utf8')
rename_table(conn,zoneid,defdb)
else:
print "zoneid and address is null"
else:
print "table is not exists"
rename_table
原创yzg2880671962 ©著作权
©著作权归作者所有:来自51CTO博客作者yzg2880671962的原创作品,谢绝转载,否则将追究法律责任
上一篇:检查version,发送邮件
下一篇:主服dbs添加次服dbs配置
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章