Mysql定時備份數據腳本

項目集羣搭建完成,數據庫雖有作主從同步,但考慮到數據安全性,爲了知足這個需求那麼要天天對數據備份處理,mysql

但天天手動進行備份處理太過於被動,並且白天用戶訪問,會有數據變化以及在備份時會影響服務器正常運行的性能,sql

因此考慮寫一個腳本,並制定一個定時任務進行執行腳本備份數據;數據庫

!/bin/bash

數據庫定時備份,並將備份的庫進行打包壓縮

user=root
passwd=123456
back_path=/vdb1/mysql/backup
data_name=zmq123
date=date +%Y%m%d安全

mkdir $back_path/$date
mysqldump -u $user -p$passwd $data_name |gzip > $back_path/$date/$data_name.sql.gzbash

定時任務,計劃在天天晚上23點55分進行數據備份

55 23 * . /vdb1/mysql/mysqldump.sh服務器

當運行了一段時間後,發現備份的數據有些佔磁盤空間的,而我要保存的只是最近一月的數據就能夠了,因此將這個腳本進行升級,性能

在可能沒有人注意的狀況下,而磁盤不會被備份數據佔滿;code

升級版天天晚上11:55分進行定時備份,

!/bin/bash

year=date +%Y
month=date +%m
day=date +%d
backpath=/vdb1/mysql/backup/$year$month/
user=root
passwd=123456
dataname=zmq123ip

[ -d $backpath ] || mkdir -p $backpath
rq=date +%Y%m%d
mysqldump -u $user -p$passwd $dataname|gzip >$backpath/$rq.sql.gz同步

定時任務

分 時 日 月 周
55 23 * . /vdb1/mysql/mysqldump.sh

每個月2號晚上11:30進行定時刪除上個月備份數據

!/bin/bash

year=date +%Y
month=date +%m
month=expr $month - 1
if [ $month -eq 0 ];then

month=12
day=31
year=`expr $year - 1`

fi

if [ $month -lt 10 ];then

pre=0

fi

backdir=/vdb1/mysql/backup/$year$pre$month
rm -rf $backdir #刪除上一個月的數據

定時任務

30 23 2 . /vdb1/mysql/delmysqlbak.sh

相關文章
相關標籤/搜索