生產環境中mysql資料庫的備份是週期性重複的操作,所以通常是要編寫指令碼實現,通過crond計畫任務週期性執行備份指令碼
mysqldump備份方案:
週日凌晨1點全庫備份
周一到週六凌晨每隔4個小時增量備份一次
設定crontab任務,每天執行備份指令碼
0 1 * * 0 /root/mysqlfullbackup.sh >/dev/null 2>&1
0 /4 * 1-6 /root/mysqldailybackup.sh >/dev/null 2>&1
mysqlfullbackup.sh指令碼內容:
[root@localhost ~]# cat mysqlfullbackup.sh
mysqldir=/usr/local/mysql
user=root
userpwd=123456
dbname=test_db
databackupdir=/opt/mysqlbackup
[ ! -d
databackupdir ]&& mkdir
databackupdir
emailfile=$databackupdir/email.txt
logfile=$databackupdir/mysqlbackup.log
date=date -i
echo 「」 > em
ailf
ilee
cho (date +"%y-%m-%d %h:%m:%s") >> em
ailf
ilec
d databackupdir
dumpfile=mysql_
date.sql
gzdumpfile=mysql_
date.sql.tar.gzmy
sqld
ir/b
in/m
ysql
dump
−uuser -pus
erpw
d−−f
lush
−log
s−x dbname > $dumpfile
if [ ?−
eq0]
;the
ntar
czf gzdumpfile du
mpfi
le>>
emailfile 2>&1
echo 「backupfilename:gz
dump
file
">
>
emailfile
echo 「database backup success!」 >> em
ailf
iler
m−f dumpfile
else
echo 「database backup fail!」 >> $emailfile
fiecho 「——————————————————–」 >> lo
gfil
ecat
emailfile >> $logfile
cat em
ailf
ile|
−s"m
ysql
back
up" email
mysqldailybackup.sh指令碼內容:
[root@localhost ~]# cat mysqldailybackup.sh
mysqldir=/usr/local/mysql
datadir=$mysqldir/data
user=root
userpwd=123456
databackupdir=/opt/mysqlbackup
dailybackupdir=da
taba
ckup
dir/
dail
y[!−
d dailybackupdir ]&& mkdir -p $databackupdir/daily
emailfile=$databackupdir/email.txt
logfile=da
taba
ckup
dir/
mysq
lbac
kup.
loge
cho「
」>
emailfile
echo (d
ate+
" emailfile #m
ysql
dir/
bin/
mysq
ladm
in−u
user -pus
erpw
dflu
sh−l
ogsc
d datadir
filelist=cat mysql-bin.index
icounter=0
for file in $filelist
do icounter=expr $icounter + 1
done
nextnum=0
ifile=0
for file in $filelist
do binlogname=basename $file
nextnum=expr $nextnum + 1
if [ ne
xtnu
m−eq
icounter ]; then
echo 「skip lastest!」 > /dev/null
else
dest=da
ilyb
acku
pdir
/ binlogname
if [ -e de
st];
then
echo
「ski
pexi
stbinlogname!」 > /dev/null
else
cp bin
logn
ame dailybackupdir
if [ $? -eq 0 ]; then
ifile=expr $ifile + 1
echo 「bi
nlog
name
back
upsu
cces
s!">
>
emailfile
fi fi
fi done
if [ if
ile−
eq0]
;the
nech
o「no
binl
ogba
ckup
!」>>
emailfile
else
echo 「backup if
ilef
ile(
s).">
>
emailfile
echo 「backup mysql binlog ok!」 >> $emailfile
ficat em
ailf
ile|
−s"m
ysql
back
up" email
echo 「——————————————————–」 >> lo
gfil
ecat
emailfile >> $logfile
chmod +x
編寫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...