Home  >  Article  >  Database  >  Ubuntu下开展MYSQL自动备份

Ubuntu下开展MYSQL自动备份

WBOY
WBOYOriginal
2016-06-07 16:26:391077browse

Ubuntu下进行MYSQL自动备份 说明: ? ? 实现步骤: ? 1、创建保存备份文件的目录:/var/mysqlbak/data ? ? 2、创建备份脚本文件:/var/mysqlbak/mysql_databak.sh ? cd /var/mysqlbak #进入目录 ? touch mysql_databak.sh #创建文件 ? vim mysql_databak.sh #编

Ubuntu下进行MYSQL自动备份

说明:

?

?

实现步骤:

?

1、创建保存备份文件的目录:/var/mysqlbak/data

?

?

2、创建备份脚本文件:/var/mysqlbak/mysql_databak.sh

?

cd /var/mysqlbak #进入目录

?

touch mysql_databak.sh #创建文件

?

vim mysql_databak.sh #编辑文件,输入以下内容

?

#######################################################################################################

?

#!/bin/sh

?

DUMP=/usr/bin/mysqldump #mysqldump备份程序执行路径

?

OUT_DIR=/home/mysql_data #备份文件存放路径

?

LINUX_USER=root #系统用户名

?

DB_NAME=zhongchan #要备份的数据库名字

?

DB_USER=root #数据库账号 注意:非root用户要用备份参数 --skip-lock-tables,否则可能会报错

?

DB_PASS=root #数据库密码

?

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天前的备份文件(注意:{} \;中间有空格)

?

#######################################################################################################

?

?

?

3、修改文件属性,使其可执行

?

chmod +x /var/mysqlbak/mysql_databak.sh

?

4、修改/etc/crontab

?

vim /etc/crontab #编辑文件,在下面添加

?

45 22 * * * root /var/mysqlbak/mysql_databak.sh #表示每天22点45分执行备份

?

?

5、重新启动crond使设置生效

?

service cron stop #停止

?

service cron start #启动

?

chkconfig cron on #设为开机启动

?

每天你在/var/mysqlbak/data目录下面可以看到类似mysqldata_bak_2012_04_11.tar.gz这样的压缩文件

?

如果需要恢复文件的时候,只需要把这个文件解压:tar -zxvf mysqldata_bak_2012_04_11.tar.gz

?

然后导入到数据库中即可。

?

至此,Ubuntu Server下MySql数据库备份脚本完成。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn