Ubuntu Server下MySql數據庫備份劇本代碼。本站提示廣大學習愛好者:(Ubuntu Server下MySql數據庫備份劇本代碼)文章只能為提供參考,不一定能成為您想要的結果。以下是Ubuntu Server下MySql數據庫備份劇本代碼正文
我這裡要把MySql數據庫寄存目次/var/lib/mysql上面的pw85數據庫備份到/home/mysql_data外面,而且保留為mysqldata_bak_2012_04_11.tar.gz的緊縮文件格局(2012_04_11是指備份履行時當天的日期), 最初只保存比來7天的備份。
完成步調:
1、創立保留備份文件的目次:/home/mysql_data
cd /home #進入目次
mkdir mysql_data #創立目次
2、創立備份劇本文件:/home/mysql_data/mysql_databak.sh
cd /home/mysql_data #進入目次
touch mysql_databak.sh #創立文件
nano mysql_databak.sh #編纂文件,輸出以下內容
#!/bin/sh
DUMP=/usr/bin/mysqldump #mysqldump備份法式履行途徑
OUT_DIR=/home/mysql_data #備份文件寄存途徑
LINUX_USER=root #體系用戶名
DB_NAME=pw85 #要備份的數據庫名字
DB_USER=root #數據庫賬號 留意:非root用戶要用備份參數 --skip-lock-tables,不然能夠會報錯
DB_PASS=123456 #數據庫暗碼
DAYS=7 #DAYS=7代表刪除7天前的備份,即只保存比來7天的備份
cd $OUT_DIR #進入備份寄存目次
DATE=`date +%Y_%m_%d` #獲得以後體系時光
OUT_SQL="$DATE.sql" #備份數據庫的文件名
TAR_SQL="mysqldata_bak_$DATE.tar.gz" #終究保留的數據庫備份文件名
$DUMP -u$DB_USER -p$DB_PASS $DB_NAME --default-character-set=utf8 --opt -Q -R --skip-lock-tables> $OUT_SQL #備份
tar -czf $TAR_SQL ./$OUT_SQL #緊縮為.tar.gz格局
rm $OUT_SQL #刪除.sql格局的備份文件
chown $LINUX_USER:$LINUX_USER $OUT_DIR/$TAR_SQL #更改備份數據庫文件的一切者
find $OUT_DIR -name "mysqldata_bak*" -type f -mtime +$DAYS -exec rm {} \; #刪除7天前的備份文件
(留意:{} \;中央有空格)
#######################################################################################################
ctrl+o #保留設置裝備擺設
ctrl+x #加入
3、修正文件屬性,使其可履行
chmod +x /home/mysql_data/mysql_databak.sh
4、修正/etc/crontab
nano /etc/crontab #編纂文件,鄙人面添加
45 22 * * * root /home/mysql_data/mysql_databak.sh #表現天天22點45分履行備份
ctrl+o #保留設置裝備擺設
ctrl+x #加入
5、從新啟動crond使設置失效
service cron stop #停滯
service cron start #啟動
/etc/init.d/cron restart #重啟
chkconfig cron on #設為開機啟動
天天你在/home/mysql_data目次上面可以看到相似mysqldata_bak_2012_04_11.tar.gz如許的緊縮文件
假如須要恢復文件的時刻,只須要把這個文件解壓:tar -zxvf mysqldata_bak_2012_04_11.tar.gz
然後導入到數據庫中便可。
至此,Ubuntu Server下MySql數據庫備份劇本完成。