开发者社区> 问答> 正文

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)启动服务
rsync --daemon

3)查看服务
ps -ef |grep rsync #或者 netstat -lnutp |grep rsync

二、主服务器A配置用户

新增用户
useradd rget

设置密码
echo '123456' | passwd --stdin rget

设置权限
setfacl -R -m user:rget:rwx /home/tomcat8

设置默认权限 及时以后目录变动更改
setfacl -R -m default:rget:rwx /home/tomcat8

查看权限是否正确
getfacl /home/tomcat8_pay

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

1)生成密钥(一直回车就可以) ssh-keygen -t rsa

2)复制密钥,这里需要输入服务器A刚才配置的的密码 ssh-copy-id   rget@192.168.1.120

3)测试 登陆服务器A(主) ssh     rget@192.168.1.120

4)登陆成功 exit 退出即可

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

1)执行命令 rsync  -azP  --delete   rget@192.168.1.130:/home/tomcat8   /backup

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


2)编写脚本
vi rsync_back.sh #!/bin/bashrsync  -az  rget@192.168.1.130:/home/tomcat8   /backup

定期备份的时候可以把 -azP中的P去掉,不用看进度。
delete 也要去掉,防止误删操作。
执行 chmod +x rsync_back.sh


3)定时同步(每天一点半)
命令 crontab -e 30 1 * * *  /home/rsync_back.sh &#定期备份
tar -zcvf  backup_`date +%Y-%m-%d`.tar.gz /backup/


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


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

云栖博客   https://yq.aliyun.com/articles/71238

展开
收起
小柒2012 2017-03-02 18:20:55 5104 0
2 条回答
写回答
取消 提交回答
  • 数据的重要性啊~~~~
    2017-03-13 13:29:20
    赞同 展开评论 打赏
  • ReLinux下使用ssh密钥实现无交互备份
    无交互~~~
    2017-03-09 21:22:00
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Alibaba Cloud Linux 3 发布 立即下载
ECS系统指南之Linux系统诊断 立即下载
ECS运维指南 之 Linux系统诊断 立即下载