MYSQL自動(dòng)備份Shell腳本

1新建一個(gè)back.sh 腳本?

#!/bin/bash

id="root" #用戶名

pwd="vd123" #密碼

dbs="zhangdezhi" #數(shù)據(jù)庫(kù)名字的列表,多個(gè)數(shù)據(jù)庫(kù)用空格分開(kāi)

backuppath="/home/mysqlbackup" #保存?zhèn)浞莸奈恢?/p>

day=30? #保留最近幾天的備份

[ ! -d $backuppath ] &&mkdir -p $backuppath? #判斷備份目錄是否存在,不存時(shí)新建目錄。

cd $backuppath? #轉(zhuǎn)到備份目錄,這句話可以省略。可以直接將路徑到命令的也行。

backupname=mysql_$(date +%Y-%m-%d)? #生成備份文件的名字的前綴,不帶后綴。

for db in $dbs;? #dbs是一個(gè)數(shù)據(jù)名字的集合。遍歷所有的數(shù)據(jù)。

do

mysqldump? $db >$backupname_$db.sql? #備份單個(gè)數(shù)據(jù)為.sql文件。放到當(dāng)前位置

if [ "$?" == "0" ]? #$? 得到上一個(gè)shell命令的執(zhí)行的返回值。0表示執(zhí)行成功。其他表示錯(cuò)誤。并將將結(jié)果寫(xiě)入到日志中。

then

echo $(date +%Y-%m-%d)" $db? mysqldump sucess">>mysql.log

else

echo $(date +%Y-%m-%d)"? $db mysql dump failed">>mysql.log

exit 0

fi

done

tar -czf $backupname.tar.gz *.sql #壓縮所有sql文件

if [ "$?" == "0" ]

then

echo $(date +%Y-%m-%d)" tar sucess">>mysql.log

else

echo $(date +%Y-%m-%d)" tar failed">>mysql.log

exit 0

fi

rm -f *.sql? #刪除所有的sql文件

delname=mysql_$(date -d "$day day ago" +%Y-%m-%d).tar.gz? #得到要?jiǎng)h除的太舊的備份的名字。

rm -f $delname? #刪除文件。

2.給腳本執(zhí)行權(quán)限 否則會(huì)報(bào) Permission denied 錯(cuò)誤

3.在windows下編輯腳本傳到linux下會(huì)報(bào)bin/sh^M:badinterpreter:Nosuchfileordirectory 錯(cuò)誤

這是不同系統(tǒng)編碼格式引起的:在windows系統(tǒng)中編輯的.sh文件可能有不可見(jiàn)字符,所以在Linux系統(tǒng)下執(zhí)行會(huì)報(bào)以上異常信息

修改文件格式

#sh>vi filename

利用如下命令查看文件格式

:set ff 或 :set fileformat

可以看到如下信息

fileformat=dos 或 fileformat=unix

利用如下命令修改文件格式

:set ff=unix 或 :set fileformat=unix

:wq (存盤(pán)退出)

最后再執(zhí)行文件

4.數(shù)據(jù)庫(kù)報(bào)Warning: Using a password on the command line interface can be insecure.錯(cuò)誤


MySQL 5.6 在命令行輸入密碼,就會(huì)提示這些安全警告信息。

1、針對(duì) mysql

mysql -u root -pPASSWORD 改成 mysql -u root -p 再輸入密碼即可。

2、mysqldump 就比較麻煩了,通常都寫(xiě)在scripts腳本中。

vim /etc/mysql/my.cnf

[mysqldump]

user=your_backup_user_name

password=your_backup_password

修改完配置文件,重啟MyQL后,只需要執(zhí)行mysqldump腳本就可以了。備份腳本中不需要涉及用戶名密碼相關(guān)信息。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容