一、mysql資料可分庫備份
分析:1、建庫 2、備份
在命令列上通過以下命令建立資料庫,socket可以省略
mysql -uroot -pcentos -s /var/lib/mysql/mysql.sock -e "create database wu;"
批量建立mysql資料庫的指令碼如下:
#!/bin/bash
path="/usr/bin:$path"
user=root
passwd=centos
socket=/var/lib/mysql/mysql.sock
mycmd="mysql -u$user -p$passwd -s $socket"
for dbname in yi yang qian xi;do
$mycmd -e "create database $dbname;"
done
在命令列通過以下命令備份資料庫:
mysqldump -uroot -pcentos -s /var/lib/mysql/mysql.sock yi | gzip > /data/shell/mysql/yi_$(date +%f).sql.gz
#!/bin/bash
path="/usr/bin:$path"
dbpath=/data/shell/mysql/back
user=root
passwd=centos
socket=/var/lib/mysql/mysql.sock
mycmd="mysql -u$user -p$passwd -s $socket"
mydump="mysqldump -u$user -p$passwd -s $socket"
[ ! -d "$dbpath" ] && mkdir -pv $dbpath
for dbname in `$mycmd -e "show databases;" | sed '1,2d' | egrep -v "mysql|performance_schema"`;do
$mydump $dbname | gzip >$dbpath/$_$(date +%f).sql.gz
done
二、mysql資料庫分庫分表備份
要求:請用指令碼實現對mysql資料庫的分庫加分表備份準備測試的資料:通過寫指令碼批量建表並插入資料並批量檢視資料:
#!/bin/bash
path="/usr/bin:$path"
user=root
passwd=centos
socket=/var/lib/mysql/mysql.sock
mycmd="mysql -u$user -p$passwd -s $socket"
for dbname in yi yang qian xi ;do
$mycmd -e "use $dbname;create table test(id int,name varchar(16));insert into test values(1,'testdata');"
echo ***************dbtest********************====
$mycmd -e "use $dbname;select * from $.test;"
done
對資料庫進行分表備份:
#!/bin/bash
path="/usr/bin:$path"
dbpath=/data/shell/mysql/table_back
user=root
passwd=centos
socket=/var/lib/mysql/mysql.sock
mycmd="mysql -u$user -p$passwd -s $socket"
mydump="mysqldump -u$user -p$passwd -s $socket"
[ ! -d $dbpath ] && mkdir -pv $dbpath
for dbname in `$mycmd -e "show databases;" | sed 1,2d | egrep -v "mysql|performance_schema"` ;do
#建立對應目錄
mkdir $dbpath/$_$(date +%f) -p
#內層迴圈,獲取每個庫裡面的所有表,然後進入迴圈
for table in `$mycmd -e "show tables from $dbname;"|sed '1d'`;do
#備份指定的庫內的表到指定目錄下,並以庫表名字命名備份的名字
$mydump $dbname $table | gzip > $dbpath/$_$(date +%f)/$_$.sql.gz
done
done
三、mysql主從複製異常監控
要求:開發乙個守護程序指令碼,每30秒監控一次mysql主從複製是否異常(包括不同步及延遲),如果異常,則傳送簡訊並傳送郵件給管理員存檔
linux 建立shell 備份mysql資料庫
linux 備份mysql資料庫 建立目錄 mkdir backup cd backup vi bkdatabasename.sh 第一種本機備份方式 bin bash mysqldump db3 gzip root backup databasename date y m d h m s sql....
日常shell練習指令碼之 備份mysql
指令碼後續更新及迭代將由kkitdeploy專案代替 力爭乾貨最多,咱們直接上指令碼 git clone chmod x mysqlbackup.sh crontab e 00 03 mysqlbackup.sh 恢復mysql u username p databse backup.sql簡單介紹...
shell計算檔案大小並更新mysql資料庫
在shell的for迴圈中更新資料庫表。sh檔案如下 bin bash 注意sql語句之前不能有空格,否則會出錯 for var in ls root zhaolu do size du sb root zhaolu var awk echo filesize size root tenatespa...