linux資料庫備份指令碼

2022-07-26 11:51:15 字數 2052 閱讀 8153

部署伺服器,需要安裝個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...