centos下自动备份mysql,将备份文件转到其他机器备份

来源:互联网 发布:淘宝深圳远望数码 编辑:程序博客网 时间:2024/05/16 13:51

1、首先创建备份目录和备份脚本文件,这就不多说了

2、备份交本文件如下:

#!/bin/bash
now=$(date +"%Y%m%d") #获取当前日期
days=5
bk_dr=/ #备份目录的路径
find $bk_dr/备份文件名称  -mtime +$days -exec rm -rf {} \; #删除$days的备份文件
mysqldump -u 数据库账号  -p数据库密码  要备份的数据库 |gzip> $bk_dr/导出的文件名$now.sql.gz

username=root
chown -R $username:$username $bk_dr #给备份文件设置所有者

scp $bk_dr/导出的文件名$now.sql linux账号@要备份到的服务器IP:/路径

(这里用的scp,为了不每次都输入备份服务器的密码,需要设置机器信任,也可以用ftp等方式)

3、设置两台机器的ssh信任

使用ssh-keygen -t rsa命令,建立信任证书
ssh b@B mkdir -p .ssh在要备份的机器上创建.ssh目录用于存放证书
cat .ssh/id_rsa.pub | ssh b@B 'cat >> .ssh/authorized_keys'把证书拷贝到刚才创建的目录并改名为authorized_keys
这样就可以用ssh命令测试一下
ssh user@IP

4、将备份文件变成可执行文件

chmod +x 文件所在路径
5、创建任务计划
vi /etc/crontab
添加一行命令:执行时间  执行的账号  需要的命令  执行文件的位置
                       * * * **  user          Command      /
(具体写法可以查询一下crond)
重启crontab
/etc/rc.d/init.d/crond restart
开机执行:
chkconfig crond on
重启服务
service crond restart

centos7下设置开机启动和重启服务的命令:
systemctl enable crond.service;
systemctl restart crond.service;



0 0
原创粉丝点击