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

发布时间:2019-11-05编辑:脚本学堂
linux环境下mysql数据库定期备份与删除的方法,mysql结合crontab实现定时备份并压缩,并删除多少天前的过期备份文件,需要的朋友参考下。

linux远程服务器中,mysql/ target=_blank class=infotextkey>mysql数据库的定时备份与删除。

1,Linux环境,一般是ssh连接远程机器的,可以直接通过shell连接,命令:
 

ssh  -l  root  -p  8080  202.***.***.***
 

其中root为用户名,一般为root,8080为端口,202.***.***.***为服务器IP地址
提示输入密码,输入正确后即可进入服务器;

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

mkdir /mysql/mysqldata_bakeup


/mysql/mysqldata_bakeup为创建的路径,可以自定义;

3、创建并编辑文件在路径 /usr/sbin/bakmysql,命令:
vi /usr/sbin/bakmysql
此时会在/usr/sbin/路径下创建bakmysql文件,并进入bakmysql编辑状态,接着输入;
 

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

mysqldump -u root -ppassword /mysql/data/yourdatabase > /mysql/mysqldata_bakeup/mysql$fn.sql
find /mysql/mysqldata_bakeup/ -type f -mtime +7 -exec rm -f {} ;

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

注意,其中第一句命令不是单引号,而是tab键上面的符号,且date前后需要有空格;
第二句命令有两种方法,第一种直接备份并压缩数据库数据源文件,第二种是利用mysql自带命令mysqldump导出数据库yourdatabase的sql文件;
第三句是删除7天前的备份文件,mtime是文件修改时间,如果没有修改过,则为创建时间;

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

7、退出服务器命令:
exit