Shell備份MySQL指令碼

2021-10-10 16:58:31 字數 2116 閱讀 3050

#!/bin/bash

# backup database

# mysql備份指令碼,自動化備份,定時任務備份,linux、centos、redhat

# 正式環境、全量備份、單庫備份、單錶備份

# by [email protected]

# 適用於生成環境備份指令碼

#備份開始時間

#echo "start:" $(date +"%y-%m-%d %h:%m:%s")

# 資料庫賬號密碼

dbuser=

'root'

dbpasswd=

'hao3q3'

# mysql的bin路徑

# 備份路徑

backup_main=/mnt/sqldata/backup #父目錄

time_dir=

$(date +%y%m%d)

backup_path=

$/$#用時間做目錄備份sql,方便後續解壓

#以當前的時間作為備份的資料庫命名。

dump_time=

$(date +%y%m%d%h%m)

# 備份日誌

backup_log=/tmp/database.logs

exit_log=/tmp/db_error.log

# 執行mysql命令

dbnames=

$($/mysql -u$ -p$ -e "show databases;"

|grep -evi "database|infor|perfor|testi|sys$"

)# 沒有目錄的話,建立備份檔案目錄

[ -d $]||

mkdir -p $

# 存在庫名則備份

if[ -n "$dbnames"];

then

for name in

$dbnames

do mysqldump -d -u$ -p$

$>

$/$_struct.sql

sleep 1

mysqldump -u$ -p$

$ -r -e --triggers --max_allowed_packet=128 --master-data=2 --single-transaction >

$/$.sql

sleep 10

done

fi# -a 全部備份,就是備份整個mysql

# -r #備份儲存過程和函式,有則備份

# -e 匯出事件

# --triggers #備份觸發器

#--single-transaction # 針對innodb進行快照備份,簡稱熱備

# --master-data=2 # 時刻記錄binlog資訊,自動開啟鎖表的功能

# --set-gtid-purged=auto # 預設開啟,不新增也可以,但是不能off

# --max_allowed_packet=128 # 控制備份時傳輸的資料大小

# 如果備份成功這執行,否則退出指令碼if[

$?= 0 ]

;then

# 壓縮檔案cd$

tar zcvf $.tar.gz $

&&cd

# 傳送備份日誌

echo

$"database backup ok"

>>

$else

echo

$"database backup error"

>>$cd

&&exit 1;

fi#將備份資料庫資料夾庫壓成zip檔案,並刪除先前的sql檔案。如果有錯誤資訊也記入日誌。

# cd $

# tar zcvf $.tar.gz $

#刪除7天前備份檔案

find

$ -type d -mtime +7 -exec rm -rf \;

find

$ -type f -mtime +7 -exec rm -f \;

#echo "end:" $(date +"%y-%m-%d %h:%m:%s")

#echo "-----------------------------"

exit

mysql備份shell指令碼

bin bash mysql server login info muser root mpass root mhost localhost mysql which mysql mysqldump which mysqldump dbname test bak backup mysql gzip w...

mysql備份shell指令碼

bin bash 要備份的資料庫名,多個資料庫用空格分開 databases test 備份檔案要儲存的目錄 basepath usr local mysqlbak if d basepath then mkdir p basepath fi 迴圈databases陣列 for db in docd...

mysql備份shell指令碼

先授權乙個使用者對所要備份的庫許可權 grant select,lock tables on zabbix.to backup localhost identified by 123456 bin bash grant select,lock tables on zabbix.to backup l...