提到在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
暂无评论