diff --git a/python/doBackup_mysql.py b/python/doBackup_mysql.py new file mode 100644 index 0000000..c0445f8 --- /dev/null +++ b/python/doBackup_mysql.py @@ -0,0 +1,112 @@ +##################################################### +#author:wangjiazhe +#created time: 2015-01-20 +#file name: doBackup_mysql.py +#use : 用于mysql数据恢复 +##################################################### +#!/usr/sbin/python +import os,sys,tarfile +list=['db_lanmayi','db_mall','db_ucenter','db_ljmallim','db_tuan','db_webim'] +mysql='mysql -uroot -p密码 -e ' +path1='/data/work/mysql_backup/data/' +######找到相应的tar解压####### +def localdata(c): + if os.path.exists(path1) : + tar = tarfile.open(c) + names = tar.getnames() + for name in names: + tar.extract(name,path=path1) + tar.close() + else: + mkdir='mkdir -p '+path1 + os.system(mkdir) + tar231=raw_input("Please enter a remote tar package.").strip() + com='scp -P2211 spider@218.249.131.231:/backup/187-db/' + localdir=' '+path1 + g=com+tar231+localdir + os.system(g) + tarpath=localdir+tar231 + tar = tarfile.open(tarpath) + names = tar.getnames() + for name in names: + tar.extract(name,path=path1) + tar.close() + return +###################判断输入的内容############################ +while True: + print "\033[36m1.please enter the date to resume.\n2.Restore one database.\n3.Restore one table.\n4.quit\033[0m" + try: + nu=int(raw_input("please select:")) + if nu == 1 : + while True: + date=raw_input("please enter date(0000-00-00) :").strip() + fil='find '+path1+date+'*' + a=os.popen(fil) + b=a.read() + c=b.rstrip() + if os.path.isfile(c): + localdata(c) + break + else: + print "please enter a valid dtae." + elif nu == 2 : + #localdata() + while True: + dataname=raw_input("please enter database name or break:").strip() + if dataname in list : + lsdir='ls -ap '+path1+"|grep '/'|grep -v '\./'" + tdir=os.popen(lsdir) + zdir=tdir.read() + dirl=zdir.strip('\n') + pathd=path1+dirl+dataname+'_'+dirl + ls='ls ' + sqlall=ls+pathd + sql=os.popen(sqlall) + sqla=sql.readlines() + crbase=mysql+'"create database if not exists '+dataname+';'+'"' + os.system(crbase) + for i in sqla: + allsql='"use '+dataname+';'+'source '+path1+dirl+dataname+'_'+dirl+i+';"' + mysql1='mysql -uroot -p123456 -e '+allsql + os.system(mysql1) + break + elif dataname == "break" : + break + else: + print "please enter database name." + elif nu == 3 : + #localdata() + while True: + dataname=raw_input("please enter database name or break:").strip() + if dataname in list : + table=raw_input("please enter table name(*.sql):").strip() + lsdir='ls -ap '+path1+"|grep '/'|grep -v '\./'" + tdir=os.popen(lsdir) + zdir=tdir.read() + dirl=zdir.strip('\n') + crbase=mysql+'"create database if not exists '+dataname+';'+'"' + os.system(crbase) + data=dataname+'_'+dirl + mycomm=mysql+'"use '+dataname+';'+'source '+path1+dirl+data+table+';'+'"' + os.system(mycomm) + break + elif dataname == "break" : + break + else: + print "please database name." + elif nu == 4 : + rm='a='+'`ls -ap '+path1+"|grep '/'|grep -v '\./'`"+ ';for i in $a; do rm -rf '+path1+'$i; done' + lsdir='ls -ap '+path1+"|grep '/'|grep -v '\./'" + tdir=os.popen(lsdir) + zdir=tdir.read() + dirl=zdir.strip('\n') + if dirl == '': + pass + else: + os.system(rm) + sys.exit() + else: + print "\033[31mplease enter anuber 1 or 2 or 3.\033[0m" + except ValueError: + print "\033[31mPlease enter a number\033[0m" + diff --git a/python/readme.md b/python/readme.md index e69de29..2bd9175 100755 --- a/python/readme.md +++ b/python/readme.md @@ -0,0 +1,2 @@ +###说明 +*doBackup_mysql.py --用于mysql数据恢复 diff --git a/shell/bakup.sh b/shell/bakup.sh new file mode 100644 index 0000000..11c8eec --- /dev/null +++ b/shell/bakup.sh @@ -0,0 +1,16 @@ +####################################################### +#author: wangjiazhe +#created time: 2015-06-08 +#file name:bakup.sh +#use : 打包备份dokuwiki数据 +###################################################### +#!/bin/bash +date=`date "+%Y%m%d"` #当天时间 +#############备份打包,放到备份目录里#################### +cd /home/ + +tar -zcf $date.tar.gz ./dokuwiki + +mv $date.tar.gz /bakup_dokuwiki/ +############保留15天数据##################################### +find /bakup_dokuwiki/ -mtime +15 -type f -name \*.tar.gz -exec rm -rf {} \; diff --git a/shell/data_mv.sh b/shell/data_mv.sh new file mode 100644 index 0000000..5b76212 --- /dev/null +++ b/shell/data_mv.sh @@ -0,0 +1,27 @@ +##################################################### +#author: wangjiazhe +#created time: 2015-07-22 +#file name:data_mv.sh +#use : 把uc_members表中的数据导入mall_member表中 +##################################################### +#!/bin/bash +#从uc_members表中模糊超找出username疑似是电话的 +mysql -uroot -p密码 -e "use db_ucenter; select uid,username from uc_members where username like '1%';" >./uid_name.txt +#判断出电话号码 +cat ./uid_name.txt |egrep [0-9]{11} >./iphon.txt +#从ecm_order表中查出Buyer_id和Payment_id不为0的 +for i in `cat iphon.txt|awk '{print $1}'` + do + mysql -uroot -psvntest_mysql_224 -e "use db_mall; select Payment_id,Buyer_id,buyer_name from ecm_order where Buyer_id=$i && Payment_id!='NUll';" >>./nu.txt + done +#更改数据 + +for i in `cat nu.txt|sed -n '/1/p'|awk '{print $3}'` + do + mysql -uroot -psvntest_mysql_224 -e "use db_mall; update mall_member set iphone=$i where nikename=$i; " + done + +#删除文件 +sleep 5 +rm -rf uid_name.txt iphon.txt + diff --git a/shell/my_kill.sh b/shell/my_kill.sh new file mode 100644 index 0000000..a039b2f --- /dev/null +++ b/shell/my_kill.sh @@ -0,0 +1,19 @@ +################################################## +#author: wangjiazhe +#created time: 2015-05-06 +#file name: my_kill.sh +#use : 杀掉mysql sleep状态的进程 +################################################## +#!/bin/sh +#取有多少个sleep进程 +n=`/usr/bin/mysqladmin -uroot -p密码 processlist | grep -i sleep | wc -l` +if [ "$n" -gt 50 ] + then + /usr/bin/mysqladmin -uroot -pMBBhE8qg04 processlist | grep -i sleep|sed 's/|/ /g' >>/var/log/mysql/my_kill.log +#关闭sleep进程 + for i in `/usr/bin/mysqladmin -uroot -pMBBhE8qg04 processlist | grep -i sleep | awk '{print $2}'` + do + /usr/bin/mysqladmin -uroot -pMBBhE8qg04 kill $i + done +fi + diff --git a/shell/readme.md b/shell/readme.md index e69de29..651e47f 100755 --- a/shell/readme.md +++ b/shell/readme.md @@ -0,0 +1,5 @@ +### 说明 +* my_kill.sh --用于杀掉mysql闲置连接
+* svnbackup.sh --备份224上的svn
+* data_mv.sh --把uc_members表中的数据导入到mall_member +* bakup.sh --备份wiki数据 diff --git a/shell/svnbackup.sh b/shell/svnbackup.sh new file mode 100644 index 0000000..c21bf7b --- /dev/null +++ b/shell/svnbackup.sh @@ -0,0 +1,30 @@ +####################################################### +#author: wangjiazhe +#created time: 2015-01-09 +#file name:svnback.sh +#use:备份svn数据 +####################################################### +#!/bin/bash +dump="svnadmin dump" +rep=`ls -ap /data/svndata/ |grep '/'|grep -v '\./'|sed "s/\/$//"` #取所有的版本库名 +path=/data/svndata/ #svn目录 +date=`date "+%Y%m%d"` #当天时间 +bakdir=/svn_backup/$date #备份目录 +bak=/svn_backup/ +conf=$path/db_api/conf +######把所有的版本库导出到/svn_backup +mkdir -p $bakdir +for i in $rep; +do + $dump $path/$i >$bakdir/$i 2>&1 +done +###########把备份数据打包并删除备份目录 +if [ -d $bakdir ] +then + cd $bak + cp -r $conf ./$date/ + tar -zcvf svn_$date.tar.gz $date 1>/dev/null + rm -rf $date +fi + +find $bak -mtime +1 -type f -name \*.tar.gz -exec rm -rf {} \;