zoukankan      html  css  js  c++  java
  • Linux下使用ssh密钥实现无交互备份

    服务器A(主) 192.168.1.120

    服务器B(从) 192.168.1.130

    需求:服务器B定期拉取服务器A的数据并备份。

    实现方式:

    一、备份服务器B安装rsync

    1)查看是否安装 rpm -aq rsync
    安装命令 yum intsall rsync -y

    2)启动服

    1. rsync --daemon

    3)查看服务

    1. ps -ef |grep rsync #或者 netstat -lnutp |grep rsync

    二、主服务器A配置用户

    新增用户

    1. useradd rget

    设置密码

    1. echo '123456' | passwd --stdin rget

    设置权限

    1. setfacl -R -m user:rget:rwx /home/tomcat8

    设置默认权限 及时以后目录变动更改

    1. setfacl -R -m default:rget:rwx /home/tomcat8

    查看权限是否正确

    1. getfacl /home/tomcat8_pay

    二、备份服务器B生成密钥

    1)生成密钥(一直回车就可以)

    1. ssh-keygen -t rsa

    2)复制密钥,这里需要输入服务器A刚才配置的的密码

    1. ssh-copy-id rget@192.168.1.120

    3)测试 登陆服务器A(主)

    1. ssh rget@192.168.1.120

    4)登陆成功 exit 退出即可

    三、备份服务器B执行同步

    1)执行命令

    1. rsync -azP --delete rget@192.168.1.130:/home/tomcat8 /backup

    如果backup目录中存在tomcat8中的文件,同步成功。

    2)编写脚本

    vi rsync_back.sh

    1. #!/bin/bash
    2. rsync -az rget@192.168.1.130:/home/tomcat8 /backup

    定期备份的时候可以把 -azP中的P去掉,不用看进度。

    delete 也要去掉,防止误删操作。

    执行 chmod +x rsync_back.sh

    3)定时同步(每天一点半)

    命令 crontab -e

    1. 30 1 * * * /home/rsync_back.sh &
    2. #定期备份
    3. tar -zcvf backup_`date +%Y-%m-%d`.tar.gz /backup/

    当然这样实现备份是极为不安全的,rget用户是可以登陆系统的,也就是说可以做各种操作,甚至提权操作。

    后面我们要讲到的是使用 rsync配置虚拟用户备份文件,不使用系统用户。

  • 相关阅读:
    使用sequelize-auto生成sequelize的Models
    table中td内容过长自动换行
    编写一个方法,去掉数组的重复元素
    call, apply的用法意义以及区别是什么
    在javascript中使用媒体查询media query
    总结的一些封装好的javascript函数
    只对safari起作用的css hack
    javascrip实现无缝滚动
    Ensures there will be no 'console is undefined' errors
    jQuery.isEmptyObject()函数用于判断指定参数是否是一个空对象。
  • 原文地址:https://www.cnblogs.com/xiaohui123-com/p/6501230.html
Copyright © 2011-2022 走看看