利用Linux的系统日志轮转功能来备份mysql数据库

提到在linux系统上自动定时备份mysql数据库,大家第一反应应该是编写一个shell脚本,然后用crontab执行。

这里我提供一种最简单的方案:

Linux的系统日志轮转功能

步骤一:
创建备份目录,如

mkdir /home/dbback/

步骤二:
导出一份当前数据库备份,如

/usr/local/mysql/bin/mysqldump -uroot -p密码 --all-databases |/usr/bin/zip > /home/dbback/alldatabases.sql.zip

以上命令中 mysqldump的位置请自行修改,密码为数据库root密码,后面用zip压缩(这里可以加上解压密码)

步骤三:
创建日志轮转配置文件,如

vim /etc/logrotate.d/mysql

输入以下内容:

/home/dbback/alldatabases.sql.zip {
        daily
        rotate 7
        extension .zip
        postrotate
        /usr/local/mysql/bin/mysqldump -uroot -p密码 --all-databases |/usr/bin/zip > /home/dbback/alldatabases.sql.zip
        endscript
        sharedscripts
}

意思是,每天备份一次,保留最近7日的备份文件。

然后……没有了,这就行了。

过些天效果就是:

[root@AY130803171912380868Z ~]# ls /home/dbback/ -la
总计 1964972
drwxr-xr-x 2 root root      4096 01-25 04:04 .
drwxr-xr-x 5 root root      4096 2013-08-22 ..
-rw-r--r-- 1 root root 251260755 01-24 04:04 alldatabases.sql.1.zip
-rw-r--r-- 1 root root 251261304 01-23 04:03 alldatabases.sql.2.zip
-rw-r--r-- 1 root root 251255967 01-22 04:03 alldatabases.sql.3.zip
-rw-r--r-- 1 root root 251242861 01-21 04:04 alldatabases.sql.4.zip
-rw-r--r-- 1 root root 251231697 01-20 04:04 alldatabases.sql.5.zip
-rw-r--r-- 1 root root 251226961 01-19 04:03 alldatabases.sql.6.zip
-rw-r--r-- 1 root root 251224355 01-18 04:03 alldatabases.sql.7.zip
-rw-r--r-- 1 root root 251402364 01-25 04:04 alldatabases.sql.zip

暂无评论

发表评论

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