1、描述
我相信很多朋友在工作都都會有這種需求,老闆或領導讓你每天都要備份mysql資料庫,你該如何實現呢,是每天到一定的時間在伺服器上敲一遍mysql的備份命令,還是想寫個指令碼,定時定點的自動備份呢?我相信大家都想讓它自動備份,接下來我通"shell指令碼+定時任務"的方式來實現自動備份mysql資料庫。
2、環境
備份路徑:/data/mysqlbak/
備份指令碼:/data/mysqlbak/mysqlbak.sh
備份要求:比如備份的資料只保留1周
3、mysqlbak.sh指令碼#!/bin/bash
#資料庫伺服器
dbserver='192.168.100.100'
#資料庫使用者名稱
dbuser='root'
#資料庫用密碼
dbpasswd='********'
#需要備份的資料庫,多個資料庫用空格分開
dbname='backdata01 backdata02'
#備份時間
backtime=`date +%y%m%d`
#日誌備份路徑
logpath='/data/mysqlbak/'
#資料備份路徑
datapath='/data/mysqlbak/'
echo '##################$backtime##########################'
#日誌記錄頭部
echo 『"備份時間為$,備份資料庫表 $ 開始" >> $/mysqlback.log
#正式備份資料庫
for table in $dbname; do
source=`mysqldump -h $ -u $ -p$ $ > $/$.sql` 2>> $/mysqlback.log;
#備份成功以下操作
if [ "$?" == 0 ];then
cd $datapath
#為節約硬碟空間,將資料庫壓縮
tar zcf $$.tar.gz $.sql > /dev/null
#刪除原始檔案,只留壓縮後檔案
rm -f $/$.sql
#刪除七天前備份,也就是只儲存7天內的備份
find $datapath -name "*.tar.gz" -type f -mtime +7 -exec rm -rf {} \; > /dev/null 2>&1
echo "資料庫表 $ 備份成功!!" >> $/mysqlback.log
else
#備份失敗則進行以下操作
echo "資料庫表 $ 備份失敗!!" >> $/mysqlback.log
fidone
echo '##################完成############################
標籤:指令碼,備份,logpath,backtime,dbname,mysqlbak,mysql,資料庫
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 備份指令碼的編寫
最近在為做一些邊邊角角的工作,現在有乙個需求要每天把mysql的資料庫dump出來到備份機器上面去.看似簡單的任務也潛在了很多的需求,整理如下 自動執行 crontab 指令碼的環境變數設定 由於通過crontab 啟動執行的指令碼環境變數沒有設定,需要在指令碼中設定環境變數 使用何種方式備份資料庫...
mysql備份指令碼
bin bash shell variables shellname mysqlbak scriptdir data dbbackup backupdir data dbbackup logfile scriptdir shellname log date time veriables remain...