mysql自动备份脚本

由于服务器不是很稳定,所以想到最好还是每天备份一次数据库,正所谓数据无价么,要是万一哪天丢了就悲剧了,下面分享给大家我的数据库备份脚本

首先使用vim创建一个备份文件

vim mysqldump

将下面这段代码复制进去


#!/bin/sh

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

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

LINUX_USER=root #系统用户名

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

DB_USER=root #数据库用户名

DB_PASS= #数据库密码

DAYS=7 #DAYS=7代表删除7天前的备份,即只保留最近7天的备份

cd $OUT_DIR #进入备份存放目录

DATE=`date +%Y_%m_%d` #获取当前系统时间

OUT_SQL="wordpress$DATE.sql" #备份数据库的文件名

TAR_SQL="wordpress$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 -zcvf $TAR_SQL $OUT_SQL #压缩为.tar.gz格式

rm $OUT_SQL #删除.sql格式的备份文件

chown $LINUX_USER:$LINUX_USER $OUT_DIR/$TAR_SQL #更改备份数据库文件的所有者

find $OUT_DIR -name "$DB_NAME_bak*" -type f -mtime +$DAYS -exec rm {} ; #删除7天前的备份文件(注意:{} ;中间有空格)

deldate=` date -d -7day +%Y_%m_%d ` #删除7天前的备份

然后赋予可执行权限

sudo chmod  777    mysqldump


将该备份复制到/usr/bin/目录中,以后就可以直接执行mysqldump命令来备份了

sudo cp mysqldump /usr/bin/

然后就是要创建数据库自动备份目录

mkdir /var/www/mysql_data

要是没有这个目录,就会将备份文件放置在该文件存放目录,
当然,你也可以使用crontab来每天自动备份数据库,例如我的
0 10 * * * /usr/bin/mysqldump
就会在每天10点自动备份数据库。

发表评论

电子邮件地址不会被公开。 必填项已用*标注