linux服务之ssh(免密登录)和scp . rsync

article/2025/1/11 14:43:05

一、scp文件传输命令
scp命令:实现远程文件传输(文件的上传与文件的下载)
但是在实际的工作环境中,我们经常需要Linux操作系统与Linux操作系统之间实现文件的传输。这个功能主要就是通过scp命令来实现的。

scp实现文件上传
:# scp [选项] 本地文件路径 远程服务器的用户名@远程服务器的IP地址:远程文件的存储路径
-r:递归,针对文件夹

scp实现文件下载
基本语法:# scp [选项] 远程服务器的用户名@远程服务器的IP地址:远程文件的地址 本地文件存储路径
-r:递归针对文件夹

注意:如果修改了ssh端口 则需要加-p选项 指定端口

二、SSH免密登录
秘钥对的认证(免密登录工作原理)
假设现在有ssh客户端、ssh服务器端各一台
第一步:首先在客户端生成一对密钥对(公钥私钥)
第二步:通过网络把客户端刚刚生成的公钥发送到需要免密的服务端,追加在免密登录账号的家目录下的authroized_keys文件中
第三步:客户端向服务端发起登录请求,服务端根据authroized_keys文件中保存的公钥进行比对,如果找到了对应客户端的公钥,则对比成功。成功后会用此公钥随机生成一个字符串加密后返回给客户端
第四步:客户端收到服务端传送过来的加密密文后用本地的私钥解密把解密的结果传输回服务端
第五步:服务端收到后对比刚才生成的随机字符串,如果一致,则返回成功的结果给客户端

SSH免密登录的具体实现:
生成密钥对的命令:# ssh-keygen (命令输入之后一直按回车即可)
然后就是把公钥发送到服务端:# ssh-copy-id -i 服务端账号名@服务端ip地址
到此,SSH免密就配置成功了
可以测试 # ssh 服务端账号名@服务端ip地址

三、Linux下数据同步服务RSYNC
rsync概述:
sync:同步操作,刷新文件系统缓存,强制将修改过的数据块写入磁盘,并且更新超级块。
async:异步操作,将数据先放到缓冲区,再周期性(一般是30s)的去同步到磁盘。
rsync 远程同步:remote synchronous

rsync特点:
1.可以镜像保存整个目录树和文件系统
2.可以保留原有的权限(permission,mode),owner,group,时间(修改时间,modify time),软硬链接,文件acl,文件属性(attributes)信息等
3.传输效率高,使用同步算法,只比较变化的(增量备份)
4.支持匿名传输,方便网站镜像;也可以做验证,加强安全

rsync与scp区别
两者都可以实现远程同步,但是相对比而言,rsync能力更强
① 支持增量备份
② 数据同步时保持文件的原有属性

RSYNC的基本语法:# rsync [选项]
实际工作中,rsync主要使用-a、-v以及-e三个选项,重点记忆即可
-a :归档模式,递归的方式传输文件,并保持文件的属性
-v :详细模式输出
-e :指定要执行的远程shell命令,如果更改了SSH的默认端口必须使用此项rsync -e ‘ssh -p 10086’

RSYNC作为命令之本地文件同步(类cp)
假定我们现在有2个文件 /linux1 /linux2
把/linux1目录中的所有文件拷贝到/linux2目录中
: # rsync -av /linux1/ /linux2/
把/linux1整个目录拷贝到/linux2目录中
: # rsync -av /linux1 /linux2/
注意文件后面加了/ 表示把目录下的文件拷贝过去 没有加则表示直接把整个目录完整的拷贝过 但是通过-R选项:不管加不加"/",都会将源数据的绝对路径一起同步 :# rsync -avR /linux1/ /linux2/
–delete:删除目标目录里多余的文件
–delete可以保证源路径与目标路径中的文件高度一致
:# rsync -av --delete /linux1/ /linux2/

RSYNC作为命令之远程文件同步(类scp)
上传基本语法:# rsync -av 本地文件路径 远程服务器的用户名@远程服务器的IP地址:目标存储路径

下载基本语法:# rsync -av 远程服务器的用户名@远程服务器的IP地址:远程文件路径 本地存储路径

注意:rsync作为一个命令,则其底层就是基于SSH服务。首先要验证SSH的正确性,然后才能实现文件的同步。如果不想使用密码可以基于SSH免密操作

RSYNC作为系统服务
假设现在有一台代码服务器和一台备份服务器
创建代码目录以及测试代码文件
:# mkdir -p /app/java_project
在Code服务器中搭建RSYNC服务
第一步:创建一个/etc/rsyncd.conf文件:# touch /etc/rsyncd.conf
第二步:更改配置信息:# vim /etc/rsyncd.conf
[app] 标签很重要,调用时就是基于这个标签的!
path = /app/java_project/
log file = /var/log/rsyncd.log在这里插入图片描述
第三步:启动RSYNC : # systemctl start rsyncd

在备份服务器端创建备份目录以及同步脚本
第一步:创建备份目录: # mkdir /backup/app1_java -p
第二步:测试Code服务器端的RSYNC服务是否可以正常连接
:# rsync -a root@ip地址::
第三步:创建rsync.sh脚本文件实现定时同步
:# vim rsync.sh
#!/bin/bash
rsync -av root@10.1.1.10::app /backup/app1_java/ &>/dev/null
:# chmod +x rsync.sh
第四步:编写计划任务,每天凌晨的1:03同步代码 :# crontab -e
03 01 * * * /root/rsync.sh

RSYNC+INOTIFY工具实现代码实时同步
RSYNC+INOTIFY实时同步:不需要配置RSYNC服务,然后其会监控代码文件夹的状态,如果一旦发现了这个文件夹有变化,则自动进行代码同步备份
第一步:上传inotify工具到/root目录下,然后编译安装
在这里插入图片描述

第三步:编写inotify.sh脚本,监测/app/java_project项目目录代码的变化
:# vim inotify.sh
#!/bin/bash
/usr/local/bin/inotifywait -mrq -e modify,delete,create,attrib,move /app/java_project |while read events
do
rsync -a --delete /app/java_project/ 10.1.1.100:/backup/app1_java/
echo “date +%F\ %T出现事件$events” >> /var/log/rsyncd.log 2>&1
done

第四步:添加x可执行权限,然后在后台调用这个sh脚本(要求其一直运行下去):# chmod +x inotify.sh
:# ./inotify.sh &

如何中止这个脚本?
使用jobs命令+kill命令
1.# jobs => 显示后台正在运行的脚本
2.# kill %后台程序的编号


http://chatgpt.dhexx.cn/article/I22vg8Ig.shtml

相关文章

Java知识点总结

Java研发工程师知识点总结 大纲 一、Java基础(语言、集合框架、OOP、设计模式等) 二、Java高级(JavaEE、框架、服务器、工具等) 三、多线程和并发 四、Java虚拟机 五、数据库(Sql、MySQL、Redis等) 六、算法与数据结构 七、计算机网络 八、操作系统(OS基础、Linux等) 九、其他 …

IDEA中Git使用http协议和ssh协议的区别

文章目录 IDEA中Git使用http协议和ssh协议的区别一、Git传输协议1.1 git可以使用以下四种协议进行资料的传输:1.2 目前码云支持的协议 二、https协议和ssh协议在使用上的差别2.1 http协议简介2.2 ssh协议简介 三、如何使用协议3.1使用http协议3.2 使用ssh协议首先Gi…

Java面试题总结及答案总结

文章目录 ***Java基础:******数据结构:******线程:******网络:******MySql:******JVM*** :***Linux:******Spring:*** Java基础: 0.Java的几种基本数据类型 byte --------1字节—8b…

java面试常见知识点整理

本人现在计算机专业硕士一年级,菜鸡一枚,结合前段时间面试经历,整理一下java后端面试常见知识点。本文会持续更新 java面试常见问题 一、java基础部分1.迭代器2.String3. StringBuilder、StringBuffer4.反射6 Java 8 新特性 二、MySql数据库…

5.NFS共享服务和ssh远程控制服务

文章目录 一,NFS共享存储服务1.NFS网络文件系统2.NAS存储3.端口号4.特点 二,NFS配置实验步骤总结 三,ssh服务1.SSH远程登陆方式登陆方法一登录方法二 四,SSHD 服务支持两种验证方式1.密码验证2.密钥对验证3.公钥和私钥的关系4.构建…

Linux ssh localhost 免密登录(基于JSch实现webssh场景)

背景 看到这个标题,你可能很奇怪,已经登录到Linux上了,为什么还要 ssh localhost,这个问题要从一个需求说起。 需求是这样的: 某一个springboot开发的带有界面的管理后台,有一个功能需求叫 “SSH控制台”…

java知识点汇总

文章目录 面试前的工作自我介绍充足的知识储备 javaSEJMM内存模型jdk1.8新特性java语言的特征如何实现跨平台谈谈你对面向对象的认识理解聊聊面向对象的特征,封装,继承,多态访问权限对象创建过程? 从jvm的角度出发,延伸到对象在内存中的存储空间Java类初始化顺序java中创建对象…

boos里的AHCI RAID_不重装系统也能把硬盘模式IDE改AHCI

相信大家都知道开启AHCI模式可以发挥SATA硬盘的潜在性能,尤其是现在新型系统和固态硬盘逐渐普及,几乎所有新电脑都是ahci模式,不过有些人系统是很早就安装好,之前默认是IDE模式,那么可不可以不重装系统将硬盘模式改成A…

SATA工作模式咋选?揭秘AHCI和IDE区别(全文)

转载自:http://digi.163.com/13/0504/07/8U111CSB00163HE9_all.html 第1页:AHCI模式与Win7、SSD的不解之缘 AHCI这个注定和SATA接口结下不解之缘的接口模式,它担负着淘汰IDE模式的重任,从诞生开始就充满争议,它经历了…

计算机主板提示ahci,映泰主板设置硬盘模式AHCI或IDE的教程

映泰品牌主板是一款性价比极高的电脑主板,具有非常不错的兼容性和稳定性,不少的网吧使用的正是这一款主板,唯一需要注意的是在电脑重装win7或xp时,必须正确的设置硬盘模式,以免重装过程中出现蓝屏现象,那么…

ide模式ahci模式_IDE的完整形式是什么?

ide模式ahci模式 IDE:集成开发环境/集成驱动电子 (IDE: Integrated Development Environment/ Integrated Drive Electronics) 1)IDE:集成开发环境 (1) IDE: Integrated Development Environment) IDE is an abbreviation of the Integrated Development…

硬盘的IDE、AHCI和NVMe模式区别

硬盘接口标准——IDE、AHCI和NVMe ★引言 截至2017年,硬盘的接口标准(工作模式)有IDE、AHCI和NVMe。 NVMe最先进,AHCI次之,IDE已被逐渐淘汰。 ★IDE 集成驱动电子设备(英语:Integrated Dri…

SATA接口Raid、AHCI、IDE三种模式

今天这里分享给朋友们关于SATA接口Raid、AHCI、IDE三种模式! 首先说一下,关于主板的SATA接口的工作模式,BIOS中常见的选项有以下三种:RAID(部分技嘉主板叫XHD)、AHCI、IDE。 当然,并不是每一种主…

AHCI和IDE的区别,如何在AHCI模式下安装系统

最近在找工作,面试的时候问到了一个以前没有接触过的问题,就是AHCI和IDE硬盘模式的差别和如何在AHCI模式下安装操作系统?以前从来没有实验过,所以当场没答出来很是尴尬。后来回来查了很多资料,然后做实验终于知道怎么回…

安装win7系统时,硬盘模式为IDE模式时安装成功,硬盘模式为AHCI模式时重启蓝屏或一直启动的问题,以及IDE模式与AHCI模式的区别!

通俗易懂的说法就是,IDE就是ATA模式,是并口传输模式,04年前普及的技术,理论最大133Mb每秒,AHCI就是SATA模式,串口传输模式,新技术,传输速度快,理论最大300Mb每秒,简单点说…

【科普】AHCI模式是什么,与IDE模式有什么区别?

文章来源:https://www.reneelab.com.cn/ahci-vs-ide.html 目录 一、AHCI模式是什么1、AHCI模式2、AHCI 与 IDE 模式的区别 二、如何检测硬盘运行的模式三、如何在BIOS里将IDE模式切换成AHCI模式 一、AHCI模式是什么 在WinXP时代,系统对AHCI模式支持不佳…

字符串比较函数

在c语言的函数库中,有这样两个字符串比较函数,分别是strcmp()和strncmp(),下面简单地介绍下这两个函数的用法。在终端命令行中输入“man 3 strcmp”即可获得下图中的信息。 通过上图,我们可以知道: strcmp的函数原型为…

python中的字符串比较

python中没有直接的方法对字符串进行排序,原因是字符串类型是不允许直接修改元素的。 字符串比较的规则是由左边开始最前面的字符对应ascll码表中的大小决定的,与长度无关,比如下面这个比较: 进阶,如何根据字符串数组…

字符串对比[蓝桥杯]

题目链接:字符串对比 时间限制: 1 Sec 内存限制: 256 MB 题目描述: 给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一:   1:两个字符串长度不等。比如 Beijing 和 …

C#字符串比较

1、Compare(string s1,string s2)的用法。 该方法的三种返回类型分别是: 如果S1大于S2,结果为1; 如果S1等于S2,结果为0; 如果S1小于S2,结果为-1; 那么如何来判断S1与S2的大小关系呢&#xff…