首页 > 代码库 > Linux下mysql数据库定期备份与删除

Linux下mysql数据库定期备份与删除

1、通过shell连接到服务器

ssh -l root -p 端口 ip

输入密码后,进入服务器

2、创建一个数据库备份数据存放的文件夹

mkdir /mysql/mysqldata_backup

3、创建并编辑文件

vi /usr/sbin/bakmysql

文件内容如下:

fn = ` date +%Y%m%d`
tar zcvf /mysql/mysqldata_backup/mysql$fn.tar.gz /mysql/data

或者

mysqldump -uroot -ppassword /mysql/data/yourdatabase > /mysql/mysqldata_backup/mysql$fn.sql
find $fn -name "mysql*.tar.gz" -type f -mtime +7 -exec fm{}; > /dev/null 2>&1

或者

find $fn -name "mysql*.sql" -type f -mtime +7 -exec fm{}; > /dev/null 2>&1

 

说明:

/mysql/mysqldata_backup/为备份数据保存路径,msql$fn.tar.gz为备份数据根据日期编号的名称,/mysql/data为服务器数据库的数据路径,yourdatabase为你要备份的数据库名;
注意:

第一句命令不是单引号,而是tab键上面的符号,且date前后需要有空格;
第二句命令有两种方法,第一种直接备份并压缩数据库数据源文件,第二种是利用mysql自带命令mysqldump导出数据库yourdatabase的sql文件;
第三句是删除7天前的备份文件,文件名写法对应第二句。

4、修改文件bakmysql属性

chmod +x /usr/sbin/bakmysql

5、修改/etc/crontab

vi /etc/crontab

01 3 * * * root /usr/sbin/bakmysql
说明:

01 3 是每天凌晨3:01执行 bakmysql文件;

6、关于重启有时候并不需要,如果服务器在/etc/rc.d/init.d/路径下有crond服务,可以选择重启crond

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


Linux下mysql数据库定期备份与删除