Mysql備份指令碼

2021-08-04 07:32:16 字數 2860 閱讀 9055

1、指令碼

#!/bin/bash

#script_name: mysql_backup.

sh#author: 蜷縮的小蝸牛

#site: www.along.party

#version: v0.

1#purpose: mysql backup

#create_time:

2017/07/25

db_name=$1

base_path=`dirname $0

`log_file='

mysql_backup.log

'log()

] $*

"echo

"[$] $*

">>$/$

}

warn_log()

]warning: $*\033[0m

"echo

"[$] $*

">>$/$

}

err_log()

]error: $*\033[0m

"echo

"[$] $*

">>$/$

}

succ_log()

]success: $*\033[0m

"echo

"[$] $*

">>$/$

}help()

all | database_name

"echo -e "

\tall : 備份所有資料庫!

"echo -e "

\tdatabase_name : 資料庫名稱!!"}

##全庫備份

all_backup()

-p -h$ -p$ --all-databases --single-transaction >$/$-all_database-$

"mysqldump -u$ -p$ -h$ -p$ --all-databases --single-transaction \

>$/$-all_database-$ 2>.warn.log

if [ $? -eq 0 ];then

succ_log

cd $

tar -zcvf $-all_database-$.tar.gz $-all_database-$

endtime=`date +%s`

((outtime=($-$)))

log

"全庫備份成功,用時[$outtime]秒

"rm -rf all_database-$

else

err_log

"全庫備份異常,請檢視$日誌檔案

"err_log `

head -10

.warn.log`

rm -rf .warn.log

fi}##備份單個庫

db_backup()

]備份開始

"log

"mysqldump -u$ -p -h$ -p$ $ >$/$-$-$

"mysqldump -u$ -p$ -h$ -p$ $ >$/$-$-$

if [ $? -eq 0 ];then

succ_log

cd $

tar -zcvf $-$-$.tar.gz $-$-$

endtime=`date +%s`

((outtime=($-$)))

log

"資料庫[$]備份成功,用時[$outtime]秒

"rm -rf $-$

else

err_log

"資料庫[$]備份失敗

"err_log `

head -10

.warn.log`

rm -rf .warn.log

fi}main()

/config.ini

" ];then

source $/config.ini

else

err_log

"配置檔案$/config.ini不存在

"exit 1fi

if [ -z $db_name ];then

help

elif [ $db_name == "

all" ];then

all_backup

else

db_backup

fi}main

2、配置檔案

配置檔案config.ini放在指令碼同級目錄

db_host='

127.0.0.1

'db_port='

3306

'db_user='

backup

'db_pass='

******

'now_time=`date +%y%m%d%h%m`

bak_path='

/www/backup

'

3、建立備份使用者

grant replication  select, reload, show databases, lock tables  on *.* to backup@'

localhost

' identified by '

***xx

';

4、使用方法

use: bash mysql_backup.sh all |database_name

all : 備份所有資料庫!

database_name : 資料庫名稱!!

編寫mysql備份指令碼 mysql 備份指令碼的編寫

最近在為做一些邊邊角角的工作,現在有乙個需求要每天把mysql的資料庫dump出來到備份機器上面去.看似簡單的任務也潛在了很多的需求,整理如下 自動執行 crontab 指令碼的環境變數設定 由於通過crontab 啟動執行的指令碼環境變數沒有設定,需要在指令碼中設定環境變數 使用何種方式備份資料庫...

mysql備份 MySQL備份指令碼

第乙個指令碼 bin bash mysql備份指令碼bak dir data backup date y m d mysqldb 資料庫名mysqluser 使用者mysqlpwd 密碼mysqlcmd usr bin mysqldumpmysqlser 資料庫伺服器mysqlport 埠if d ...

mysql的備份指令碼 mysql的備份指令碼

1 描述 我相信很多朋友在工作都都會有這種需求,老闆或領導讓你每天都要備份mysql資料庫,你該如何實現呢,是每天到一定的時間在伺服器上敲一遍mysql的備份命令,還是想寫個指令碼,定時定點的自動備份呢?我相信大家都想讓它自動備份,接下來我通 shell指令碼 定時任務 的方式來實現自動備份mysq...