shell指令碼 資料庫的備份

2021-10-08 05:21:44 字數 2314 閱讀 7139

set root password? [y/n] y       設定密碼

new password:

re-enter new password:

password updated successfully!

reloading privilege tables...

.. success!

remove anonymous users? [y/n] y 去掉匿名使用者登陸資料庫的權力

disallow root login remotely? [y/n] 去掉超級使用者遠端登陸的權力

remove test database and access to it? [y/n] y 刪除測試庫

reload privilege tables now? [y/n] y 重新整理資料庫

此時mysql不能直接登入,安全性提高了

一般不備份information_schema和performance_schema,schema$表示以schema結束-v表示取反,說明不要以它結尾的

#!/bin/bash

password=$1

dump_dir=/mnt/mysqldump

# 3.備份已經存在,使使用者進行選擇(編寫函式)

db_choice(

)#1.判斷/mnt/mysqldump目錄是否存在並且是否為目錄

echo

"---------------1.檢測備份目錄-------------------"if[

-e $dump_dir

];then

if[!

-d $dump_dir

];then

rm-fr $dump_dir

mkdir $dump_dir

fielse

echo

"目錄不存在,正在建立中.........."

mkdir $dump_dir

echo

"目錄$dump_dir建立成功"

fi#2.獲取資料中所有的資料庫名稱並通過for迴圈進行批量備份

# mysql westos

echo

"---------------2.載入資料庫並備份-------------------"

dbs=`mysql -uroot -p$password

-e "show databases;"

| grep -v -e "database|schema$"`

for db in $dbs

do#檢測備份檔案是否存在,如果存在,詢問使用者的需求,此處使用函式的呼叫if[

-e $dump_dir

/$db

.sql ]

;then

db_choice $db

$password

else

echo

"檔案$dump_dir/$db.sql備份成功"

mysqldump -uroot -p$password

$db > $dump_dir

/$db

.sql

fidone

注意:要將所需呼叫的函式放在最前面,以本次指令碼為例,如果3.函式部分在2.載入資料庫並備份這一部分的後面,就會出現下列所示錯誤

此處很簡單,只需呼叫函式:在原先為echo處改變成print_color_string ' color' ' string'即可

red="\033[31m"

green="\033[32m"

yellow="\033[33m"

end="\033[0m"

print_color_string(

)# 3.備份已經存在,使使用者進行選擇

mysql資料庫備份shell指令碼

bin bash author george zheng 2012 03 12 version 1.2 myuser root mypass k943587 djj as host localhost date date i name date y m d h m s backupdir home ...

shell指令碼備份mysql資料庫

獲取mysql伺服器所有資料庫名稱,過濾掉不需要備份的資料庫 通過mysqldump來for迴圈匯出所有的資料庫的sql檔案 用zip加密壓縮所有的sql檔案 定期進行資料清理工作 bin bash 02.03.1.資料庫資訊定義 04.mysql host 192.168.1.1 05.mysql...

shell指令碼備份資料庫

自學使用shell指令碼備份資料庫,記錄一下 bin bash 定義變數 backdir mysql back date y m d t mysqldb 要備份的資料庫 mysqldb mysql mysqlusr root 手動輸入資料庫密碼 read p enter your password ...