Linux下使用ssh密钥实现无交互备份
时间:2022-05-08
本文章向大家介绍Linux下使用ssh密钥实现无交互备份,主要内容包括一、备份服务器B安装rsync、二、主服务器A配置用户、二、备份服务器B生成密钥、三、备份服务器B执行同步、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
服务器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/bash
rsync -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配置虚拟用户备份文件,不使用系统用户。
- HDU 4764 Stone(巴什博奕)
- 博弈论入门之巴什博奕
- 理清字符集和字符编码关系
- 我是如何巧妙渗入安全脉搏的(附官方还原详情)
- vscode编写插件详细过程
- zabbix最新SQL注入漏洞+EXP
- 本地密码检索工具 – LaZagne Project
- 我是如何在SQLServer中处理每天四亿三千万记录的
- 程序猿是如何解决SQLServer占CPU100%的
- 记一次SQLServer的分页优化兼谈谈使用Row_Number()分页存在的问题
- 分享一个自制的 .net线程池1
- 分享一个自制的 .net线程池2
- 基于百度翻译的简单爬虫翻译-- coding:utf-8 --访问网址模拟浏览器创建文件夹用一个text文件保存,文件名用单词名字
- .net采集网页方法大全(5种)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- linux下查看so或可执行程序的依赖库
- Linux中crontab输出重定向不生效问题的解决方法
- Ubuntu中安装MySQL更改默认密码的步骤详解
- linux下用csplit命令分割文件的方法示例
- Linux基础命令之mktemp详解
- CentOS7设置jar应用程序开机启动的方法
- linux jexus服务设置开机启动
- linux如何利用crontab添加定时任务详解
- windows安装openssh并通过生成SSH密钥登录Linux服务器
- SSH设置别名访问远程服务器详细介绍
- Linux检查Swap交换空间的五个命令小结
- seaborn数据总体分布的可视化策略
- 配置 Apache 服务器禁止所有非法域名 访问自己的服务器
- Ubuntu16.04源码安装Mininet
- Kotlin基础学习之Deprecated与Suppress注解使用