一.实验环境

两台可以通信的主机
rhel7: 192.168.1.20
rhel8: 192.168.1.10

二.scp命令

scp 本地文件 远程主机用户@远程主机ip:远程主机目录
scp 远程主机用户@远程主机ip:远程主机目录 本地文件

实验步骤:

1.在rhel7.6建立文件和目录

[root@rhel7 mnt]# touch file
[root@rhel7 mnt]# mkdir filedir

2.测试
a)把本地主机复制到远程主机

[root@rhel7 mnt]# scp file root@192.168.1.10:/mnt
file                       100%    0     0.0KB/s   00:00
[root@rhel7 mnt]# scp -r filedir root@192.168.1.10:/mnt
[root@rhel7 mnt]# scp -q file root@192.168.1.10:/mnt

b) 把远程文件复制到本地

[root@rhel7 mnt]# scp root@192.168.1.10:/mnt/rhel8.0_file .
rhel8.0_file               100%    0     0.0KB/s   00:00

三.rsync命令

1.rsync和scp命令的对比
1)在rhel7中建立文件

[root@rhel7 mnt]# dd if=/dev/zero of=/mnt/file1 bs=1M count=10
##dd=截取,if=inputfile of=outputfile bs=blocksize count=块的个数
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.00716192 s, 1.5 GB/s
[root@rhel7 mnt]# dd if=/dev/zero of=/mnt/file2 bs=1M count=20
20+0 records in
20+0 records out
20971520 bytes (21 MB) copied, 0.0151408 s, 1.4 GB/s
[root@rhel7 mnt]# dd if=/dev/zero of=/mnt/file3 bs=1M count=30
30+0 records in
30+0 records out
31457280 bytes (31 MB) copied, 0.132892 s, 237 MB/s

2)在两个主机之间建立免密连接,使得scp远程传输可以直接执行而不用输入密码

ssh-keygen     ##生成密钥
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.10   ##上锁

3)写测试脚本

vim check_scp.sh
time scp -rq /mnt/ root@192.168.1.10:/mnt
time scp -rq /mnt/ root@192.168.1.10:/mnt
time scp -rq /mnt/ root@192.168.1.10:/mnt
vim check_rsync.sh
time rsync -raCq /mnt root@192.168.1.10:/mnt
time rsync -raCq /mnt root@192.168.1.10:/mnt
time rsync -raCq /mnt root@192.168.1.10:/mnt

4)执行

  • real时间是指挂钟时间,也就是命令开始执行到结束的时间。这个短时间包括其他进程所占用的时间片,和进程被阻塞时所花费的时间。
  • user时间是指进程在用户模式中的CPU执行时间,其他进程花费的时间和阻塞状态的时间没有计算在内。
  • sys时间是进程在内核模式中的CPU执行时间,代表进程使用系统调用所花费的CPU执行时间,这也是由进程执行而消耗的CPU执行时间。
[root@rhel7 ~]# sh check_scp.sh real    0m1.257s
user    0m0.233s
sys     0m0.408s        ##第一次系统执行时间real 0m1.208s
user    0m0.275s
sys     0m0.387s        ##第二次系统执行时间real 0m1.181s
user    0m0.274s
sys     0m0.363s        ##第三次系统执行时间

执行结果看出scp三次执行时间基本一致

[root@rhel7 ~]# sh check_rsync.sh real  0m1.013s
user    0m0.274s
sys     0m0.027s        ##第一次系统执行时间real 0m0.315s
user    0m0.013s
sys     0m0.013s        ##第二次系统执行时间real 0m0.277s
user    0m0.011s
sys     0m0.009s        ##第三次系统执行时间

以上执行效果看出rsync后两次执行时间远小于第一次

【scp 和 rsync 的区别】

  • scp是相当于复制,黏贴,如果有的话是覆盖,比较耗时间,不智能。
  • rsync是复制,如果有重复的文件,会直接跳过,而且他自己的算法优化。
  • scp是把文件全部复制过去,当文件修改后还是把所有文件复制过去
  • rsync 第一次是把所有文件同步过去,当文件修改后,只把修改的文件同步过去

2)rsync用法
rsync 文件 远程用户@远程主机ip:远程主机目录
rsync 远程用户@远程主机ip:远程主机目录 文件路径

rsync  -r    ##复制目录-l        ##复制链接-p        ##复制权限-t        ##复制时间戳-o       ##复制拥有者-g       ##复制拥有组-D       ##复制设备文件

在rhel7

[root@rhel7 mnt]# touch file{1..5}
[root@rhel7 mnt]# chmod 777 /mnt/*
[root@rhel7 mnt]# useradd student
[root@rhel7 mnt]# chown student.student /mnt/*
[root@rhel7 mnt]# ln -s /mnt/file1 /mnt/file

在rhel8中

[root@RHEL8 mnt]# watch -n 1 ls -lR /mnt

执行命令看效果

rsync -r /mnt root@192.168.1.10:/mnt    ##同步目录本身及目录中的文件
rsync -r /mnt/ root@192.168.1.10:/mnt   ##同步目录中的文件
rsync -rl /mnt/ root@192.168.1.10:/mnt  ##同步链接
rsync -rlp /mnt/ root@192.168.1.10:/mnt     ##同步权限
rsync -rlpog /mnt/ root@192.168.1.10:/mnt    ##同步用户组
rsync -rlpogt /mnt/ root@192.168.1.10:/mnt  ##同步时间
rsync -rD /dev/pts root@192.168.1.10:/mnt/    ##同步设备

Linux系统中的文件传输(scp和rsync命令的使用)相关推荐

  1. linux系统中的文件传输

    Linux系统中的文件传输 1 实验环境 2 scp命令 3 rsync命令 3.1 rsync和scp命令对比 3.2 rsync命令用法 4 文件的归档压缩 4.1 文件归档 4.2 文件压缩 4 ...

  2. linux系统中加密文件传输助手,Linux 下的安卓文件传输助手!

    如果你尝试在 Ubuntu 下连接你的安卓手机,你也许可以试试 Linux 下的安卓文件传输助手.本质上来说,这个应用是谷歌 macOS 版本的一个克隆.它是用 Qt 编写的,用户界面非常简洁,使得你 ...

  3. 运维大法之Linux系统中的文件传输

    1.scp和rsync命令 实验环境 需要2台主机并且保证这两台主机是可以通信的 ①localhost.localdomain 172.25.254.10 ②node.westos.com 172.2 ...

  4. Linux系统中的文件传输(scp命令,rsync命令)

    实验环境 需要2台主机并且保证这两台主机是可以通信的 linux_westos  : 172.25.254.10 westos_lue :  172.25.254.20 systemctl disab ...

  5. Linux系统中的文件传输优化

    目录 一.实验环境 二.scp 命令 1.在rhel7中建立实验素材 2.测试 三.rsync命令 四.scp与 rsync的比较 五. 文件的归档与压缩 1.文件归档 2.文件的压缩 3.tar+压 ...

  6. Android 系统(68)---使用Xshell在Windows系统和Linux系统之间进行文件传输

    使用Xshell在Windows系统和Linux系统之间进行文件传输 Windows系统在安装虚拟机centos系统之后,如何进行两者之间的文件传输和互操作,或者如何在Windows端使用Xshell ...

  7. 将windows系统主机上的文件拷贝到Linux系统中;将Linux系统中的文件粘贴到Windows主机中

    本篇文章主要实现将windows主机上的文件复制到Linux服务器上,这里为了方便演示,我举例放在C盘中的一个test101.py文件,现在我要将它放在Linux系统的home下的shao目录下. 首 ...

  8. android程序移动到Linux,Android应用开发之Android 系统 -- 使用Xshell在Windows系统和Linux系统之间进行文件传输...

    本文将带你了解Android应用开发之Android 系统 -- 使用Xshell在Windows系统和Linux系统之间进行文件传输,希望本文对大家学Android有所帮助. 使用Xshell在Wi ...

  9. linux系统中清空文件内容的三种方法

    1.使用vi/vim命令打开文件后,输入"%d"清空,后保存即可.但当文件内容较大时,处理较慢,命令如下: vim file_name :%d :wq 2.使用cat命令情况,命令 ...

最新文章

  1. 机器学习算法的优点和缺点总结
  2. 7-2 然后是几点 (Java)
  3. 5G 智慧城市安全参考架构概述
  4. python 布尔值 bool( ) 与逻辑运算符
  5. boost::mpl模块实现partition相关的测试程序
  6. Qt学习笔记之QTextCodec
  7. 特别慢_背什么都特别慢,该怎么提高记忆力?
  8. 当前记录集不支持更新_不断中招的你还放心升级win10吗?wi10近期更新问题及解决办法...
  9. java实现单链表常见操作,java面试题,java初级笔试题
  10. C语言单元测试框架-cmocka示例
  11. 什么是python构造方法_什么是Python?
  12. PLC项目增频减频部分流程图(修改版)
  13. 【云周刊】第141期:阿里正式发布《Java开发手册》终极版!绝对珍藏!
  14. 高可用Hadoop平台-应用JAR部署
  15. Socket网络编程
  16. 其他浏览器可以上网,只有谷歌浏览器不行解决方案
  17. JS 把 Wed Jul 15 2015 00:00:00 GMT+0800 转换成2015-07-15
  18. C++-queue:queue基本用法【q.push(x)、q.front()、q.back()、q.pop()、q.size()、q.empty()】
  19. iOS 15 UITableView Section间距变大
  20. 为什么不建议用Executors?

热门文章

  1. 数据分析师与数据分析的恩怨
  2. 第二章 进程的描述与控制
  3. Adafruit_TFTLCD 类的方法属性详解与Arduino Uno实测记录-ILI9341 LCD driver
  4. PMcenter集中监控平台丨多台精密空调集中监控方案
  5. Eclipse背景颜色设置(设置成豆沙绿色保护眼睛,码农保护色)
  6. CF528D Fuzzy Search FFT
  7. 柠檬水找零(C++)
  8. 北京奥运会开幕式彩排 观众提前四小时等候
  9. oracle近义词,Oracle同义词
  10. FL STUDIO 最新20.9汉化中文版软件更新