搜索
查看: 1152|: 0

【MySql】远程linux服务器mysql数据库定期备份和删除

[复制链接]

149

主题

5

回帖

554

积分

高级会员

积分
554
发表于 2014-10-30 16:49:33 | 显示全部楼层 |阅读模式

网上已经有部分关于Linux下定期备份mysql的方法,但是很多步骤不够详细,不适合新手,自己琢磨了很久,终于搞定了。

1.Linux服务器一般是ssh协议,如果本地也是Linux环境,可以直接通过shell连接,命令:

  1. ssh  -l  root  -p  8080  202.***.***.***
复制代码

其中root为用户名,一般为root,8080为端口,202.***.***.***为服务器ip地址;

接下来会提示你输入密码,输入正确后即可进入服务器;


2.然后需要创建一个数据库备份数据存放的文件夹;

  1. mkdir /mysql/mysqldata_bakeup
复制代码

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


3.创建并编辑文件在路径 /usr/sbin/bakmysql,命令:

  1. vi /usr/sbin/bakmysql
复制代码
此时会在/usr/sbin/路径下创建bakmysql文件,并进入bakmysql编辑状态,接着输入;
  1. fn = ` date +%Y%m%d `
  2.     tar  zcvf  /mysql/mysqldata_bakeup/mysql$fn.tar.gz  /mysql/data

  3.     mysqldump -u root -ppassword /mysql/data/yourdatabase > /mysql/mysqldata_bakeup/mysql$fn.sql

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

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

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

注意其中 第一句命令不是单引号,而是tab键上面的符号,且date前后需要有空格;

第二句命令有两种方法,第一种直接备份并压缩数据库数据源文件,第二种是利用mysql自带命令mysqldump导出数据库yourdatabase的sql文件;

第三句是删除7天前的备份文件,文件名写法对应第二句。


4.修改文件bakmysql属性,使其可执行;

  1. chmod +x /usr/sbin/bakmysql
复制代码
5.修改/etc/crontab:
  1. vi /etc/crontab
复制代码
进入编辑状态,在最下面添加:
  1. 01 3 * * * root /usr/sbin/bakmysql
复制代码

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


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

  1. /etc/rc.d/init.d/crond restart
复制代码
7.最后退出服务器命令:exit


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

大数据中国微信

QQ   

版权所有: Discuz! © 2001-2013 大数据.

GMT+8, 2024-11-15 20:41 , Processed in 0.068590 second(s), 24 queries .

快速回复 返回顶部 返回列表