Posts tagged: mysql定时备份

mysql定时自动备份

By admin, 2010年01月23日 6:14 下午

查看系统时间

date

编辑自动执行任务

crontab -e

编辑内容如下
15 18 * * * /home/mysqlbackup.sh

15是分钟 18是小时

/var/www/html/mysqlbackup.sh 脚本路径
附:MYSQL自动备份脚本 每次备份自动删除10天之前的数据

#!/bin/sh
filename=`date   +%Y%m%d`
myPath=”/home/mysqlbackup/$filename/”
if [ ! -d "$myPath" ]; then
    mkdir “$myPath”
fi
DBLIST=`ls -p /var/lib/mysql | grep / | tr -d /`
for dbname in $DBLIST
do
mysqldump -u root -p  $dbname | gzip > $myPath$dbname.gz
done

# rm old file before ten days
tendate=`date -d “-10 day”  +%Y%m%d`
filelist=`ls -p /var/www/html/mysqlbackup | grep / | tr -d /`
for fnames in $filelist
do
if [ "$fnames" -lt "$tendate" ]; then
rm -rf /var/www/html/mysqlbackup/$fnames
fi
done

利用crontab定时备份MySQL数据库

By admin, 2010年01月23日 2:07 下午

利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的。

1、创建保存备份文件的路径/mysqldata

#mkdir /data/back/mysql

2、创建/usr/sbin/bakmysql文件

#vi /usr/sbin/backmysql

输入

注意:`符号是TAB键上面的符号,不是ENTER左边的

还有date后要有一个空格。

#!/bin/bash

rq=` date %Y%m%d `

tar zcvf /data/back/mysql/mysql$rq.tar.gz /data/mysql/mysql

或者写成

#!/bin/bash

rq=` date %Y%m%d `

mysqldump –all-databases -u root -p密码 > /mysqldata/mysql$rq.sql

/var/lib/mysql是你数据库文件的目录,部分用户是/usr/local/mysql/data,每个人可能不同

/mysqldata/表示保存备份文件的目录,这个每个人也可以根据自己的要求来做。

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

# chmod x /usr/sbin/backmysql

4、修改/etc/crontab

#vi /etc/crontab

或者#crontab -e

在下面添加

01 3 * * * root /usr/sbin/bakmysql

表示每天3点钟执行备份

20 * * * * root /usr/sbin/bakmysql

每小时第20分钟备份一次

5、重新启动crond

# /etc/rc.d/init.d/crond restart

完成。

这样每天你在/mysqldata可以看到这样的文件

mysql20080929.tar.gz

直接下载即可。

Panorama Theme by Themocracy