部署伺服器,需要安裝個mysql,所以有備份資料庫資料的定時任務的需求:
寫了兩種方法,先記錄下來,
方法一:
1.編寫相應指令碼:
time=$(date "+%y%m%d")
mysqldump -u*** -p**** test > /data/test/test$.sql
2.編輯crontabding定時任務,然後重啟;
1 0 * * * sh /data/test/test.sh (每天都執行)
方法二:
使用python指令碼:
import os
import subprocess
import time
import datetime
db_username = "****"
db_password = "****"
path = "/data/dbback/bk"
default_db = "law_sh"
def backdb(dbname):
if(dbname==none):
dbname=default_db
targetpath=path + os.sep + dbname + "-" + time.strftime('%y-%m-%d',time.localtime()) + ".sql"
command="mysqldump -u" + db_username + " -p" + db_password + " " + dbname + " >" + targetpath
print('execute command : ',command)
p=subprocess.popen(command,shell=true,)
p.wait()
print("------------- db backup successful ---------")
deluselessfile()
print("------------- delete invalid backfile successful ---------")
return
def recover(filename):
targetpath=path +os.sep+ filename
dbname=filename.split("-")[0]
command="mysql -u" + db_username + " -p" + db_password + " " + dbname + " <" + targetpath
print('execute command : ',command)
p=subprocess.popen(command,shell=true,)
p.wait()
print("------------- db recover successful ---------")
return
def deluselessfile():
print('where are you ?')
files=os.listdir(path)
for delfile in files:
if isoverdue(delfile):
os.remove(path+os.sep+delfile)
print(' delete file ',delfile)
def isoverdue(file):
cpdate=datetime.datetime.now()-datetime.timedelta(days=7)
datestring = file[file.find("-") + 1:file.find(".")]
filedate= datetime.datetime.strptime(datestring,'%y-%m-%d')
print(filedate.strftime('%y-%m-%d'),' -- ',cpdate.strftime('%y-%m-%d'))
if(filedate方法一更加簡單,方法二增加成本,但對於這類基本不會改動的指令碼,也關係不大,看自己的選擇。
資料庫備份指令碼
注意,如果在windows下編寫,由於換行等字元的不同,在unix下可能會報錯。bin bash 設定mysql備份目錄 folder path home backup mysql cd folder day date y m d rm rf day mkdir day cd day 資料庫服務 i...
linux下oracle資料庫備份指令碼
bin sh 匯入環境變數 oracle home xx oracle 10g export oracle home oracle base xx oracle export oracle base oracle sid db export oracle sid ld library path or...
linux中資料庫定時備份指令碼
backdir 我們的備份的檔案放的位置 logfile 備份成功或者失敗的日誌 database 資料庫名稱 databaseuser 資料庫使用者名稱 databasepwd 資料庫密碼 指令碼如下 export lang en us.utf 8 注意 下面這幾個變數需修改為你自己的 backd...