Linux系统中的文件传输(scp和rsync命令的使用)
一.实验环境
两台可以通信的主机
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命令的使用)相关推荐
- linux系统中的文件传输
Linux系统中的文件传输 1 实验环境 2 scp命令 3 rsync命令 3.1 rsync和scp命令对比 3.2 rsync命令用法 4 文件的归档压缩 4.1 文件归档 4.2 文件压缩 4 ...
- linux系统中加密文件传输助手,Linux 下的安卓文件传输助手!
如果你尝试在 Ubuntu 下连接你的安卓手机,你也许可以试试 Linux 下的安卓文件传输助手.本质上来说,这个应用是谷歌 macOS 版本的一个克隆.它是用 Qt 编写的,用户界面非常简洁,使得你 ...
- 运维大法之Linux系统中的文件传输
1.scp和rsync命令 实验环境 需要2台主机并且保证这两台主机是可以通信的 ①localhost.localdomain 172.25.254.10 ②node.westos.com 172.2 ...
- Linux系统中的文件传输(scp命令,rsync命令)
实验环境 需要2台主机并且保证这两台主机是可以通信的 linux_westos : 172.25.254.10 westos_lue : 172.25.254.20 systemctl disab ...
- Linux系统中的文件传输优化
目录 一.实验环境 二.scp 命令 1.在rhel7中建立实验素材 2.测试 三.rsync命令 四.scp与 rsync的比较 五. 文件的归档与压缩 1.文件归档 2.文件的压缩 3.tar+压 ...
- Android 系统(68)---使用Xshell在Windows系统和Linux系统之间进行文件传输
使用Xshell在Windows系统和Linux系统之间进行文件传输 Windows系统在安装虚拟机centos系统之后,如何进行两者之间的文件传输和互操作,或者如何在Windows端使用Xshell ...
- 将windows系统主机上的文件拷贝到Linux系统中;将Linux系统中的文件粘贴到Windows主机中
本篇文章主要实现将windows主机上的文件复制到Linux服务器上,这里为了方便演示,我举例放在C盘中的一个test101.py文件,现在我要将它放在Linux系统的home下的shao目录下. 首 ...
- android程序移动到Linux,Android应用开发之Android 系统 -- 使用Xshell在Windows系统和Linux系统之间进行文件传输...
本文将带你了解Android应用开发之Android 系统 -- 使用Xshell在Windows系统和Linux系统之间进行文件传输,希望本文对大家学Android有所帮助. 使用Xshell在Wi ...
- linux系统中清空文件内容的三种方法
1.使用vi/vim命令打开文件后,输入"%d"清空,后保存即可.但当文件内容较大时,处理较慢,命令如下: vim file_name :%d :wq 2.使用cat命令情况,命令 ...
最新文章
- 机器学习算法的优点和缺点总结
- 7-2 然后是几点 (Java)
- 5G 智慧城市安全参考架构概述
- python 布尔值 bool( ) 与逻辑运算符
- boost::mpl模块实现partition相关的测试程序
- Qt学习笔记之QTextCodec
- 特别慢_背什么都特别慢,该怎么提高记忆力?
- 当前记录集不支持更新_不断中招的你还放心升级win10吗?wi10近期更新问题及解决办法...
- java实现单链表常见操作,java面试题,java初级笔试题
- C语言单元测试框架-cmocka示例
- 什么是python构造方法_什么是Python?
- PLC项目增频减频部分流程图(修改版)
- 【云周刊】第141期:阿里正式发布《Java开发手册》终极版!绝对珍藏!
- 高可用Hadoop平台-应用JAR部署
- Socket网络编程
- 其他浏览器可以上网,只有谷歌浏览器不行解决方案
- JS 把 Wed Jul 15 2015 00:00:00 GMT+0800 转换成2015-07-15
- C++-queue:queue基本用法【q.push(x)、q.front()、q.back()、q.pop()、q.size()、q.empty()】
- iOS 15 UITableView Section间距变大
- 为什么不建议用Executors?