mysql基於mysqldump指令碼的邏輯備份

2021-10-08 02:32:54 字數 2538 閱讀 2865

#!/bin/bash

#自動備份指令碼

# you can use like this:./backupshell.sh -u mysql -p don**sql -d vhr -f /media/don**/_dde_data/mysql/backup -l /media/don**/_dde_data/mysql/backuplog/myql_backup.log

# # 當前問題:1.mysqldump在讀取的時候會將表的寫操作鎖住

# -u 使用者名稱

# -p 密碼

# -d 資料庫

# -f 輸出路徑

# -l 日誌路徑

#定義所需變數

bake_path="/media/don**/_dde_data/mysql/backup" #備份後存放目錄

log_path="/media/don**/_dde_data/mysql/backuplog/myql_backup.log" #備份日誌存放目錄及日誌名稱

filename="" #備份存放檔名稱

username="" #使用者名稱

password="" #密碼

database="" #資料庫名稱

table="" #表名稱

# 引數化定製 -p是sql檔案路徑,-l是日誌檔案路徑,-n是檔名稱(包含壓縮過後以及匯出為sql檔案的名稱)

while [ -n "$1" ]

do case "$1" in

-u)username="$2"

echo "the username is :$"

;;-p)password="$2"

echo "the password is:$"

;;-d)database="$2"

echo "the database is:$"

;;-t)table="$2"

echo "the table is:$"

;;-f)bake_path="$2"

echo "the backpath is:$"

;;-l)log_path="$2"

echo "the logpath is:$"

;;# esac是作為case的結尾

esac

# shift在這裡是調轉下乙個入參

shift

done

filename="`date '+%y-%m-%d%h:%m:%s'`_$.tar.gz" #壓縮包檔案

sqlfile="`date '+%y-%m-%d%h:%m:%s'`_$.sql" #匯出的sql檔案

to_file="$/$"

#備份失敗退出

err_quit=1

#自動刪除刪除超期檔案

#保留30多少天前的檔案

overtime=30

#刪除超期檔案

find $bake_path -ctime +$overtime -a -name "*$.tar.gz" -exec rm -f {} \;

if [ $? -eq 0 ];then

echo -e "`date '+%y-%m-%d%h:%m:%s'`\t刪除過期檔案成功">>$log_path

#除錯時輸出日誌資訊

# tail -1 $log_path

fi#進行備份操作

echo "the backpath is: $"

echo "the sqlfile is :$,username:$,password:$,database:$"

mysqldump -u $username -p$password $database > "$/$"

#將生成的sql檔案壓縮

echo "tarfile:$"

echo "sqlfile:$/$"

tar zcf $to_file "$/$" &> /dev/null

#echo $?

#判斷是否備份成功

if [ $? -eq 0 ]; then

echo -e "`date '+%y-%m-%d%h:%m:%s'`\t備份成功">>$log_path

#備份成功刪除生成的sql檔案,保留壓縮包

rm -rf $sqlfile

else

echo -e "`date '+%y-%m-%d%h:%m:%s'`\t備份失敗">>$log_path

exit $err_quit

fi#空間占用百分比

echo "log:$"

percent=$(df $bake_path |awk '/dev/')

echo -e "當前空間的占用百分比:$percent">>$log_path

#輸出日誌資訊

echo "logfile:$"

tail -2 $log_path

mysql的dump備份 mysqldump備份

1 備份命令 格式 mysqldump h主機名 p埠 u使用者名稱 p密碼 database 資料庫名 檔名.sql 例如 mysqldump h 192.168.1.100 p 3306 uroot ppassword database cmdb dump.sql 2 備份壓縮 匯出的資料有可能...

MySQL簡單的備份恢復(mysqldump)

mysql使用最為廣泛的備份工具是mysqldump。使用mysqldump進行基本的資料庫備份恢復。備份乙個資料庫 mysqldump u root p linuxcast linuxcast backup.sql從乙個備份檔案恢復乙個資料庫 mysql u root p linuxcast li...

MySQL 資料備份與還原 mysqldump

1 使用mysqldump命令備份 mysqldump命令將資料庫中的資料備份成乙個文字檔案。表的結構和表中的資料將儲存在生成的文字檔案中。mysqldump命令的工作原理很簡單。它先查出需要備份的表的結構,再在文字檔案中生成乙個create語句。然後,將表中的所有記錄轉換成一條insert語句。然...