linux之系统间的文件传输(scp,rsync以及二者之间的区别)

系统中的文件传输

一,文间的上传与下载

scp    file     username@ip:/dir      ##上传
scp    username@ip:/dir/file  /dir    ##下载
举例:
Desktop虚拟机IP:172.25.254.177
Server虚拟机IP:172.25.254.178
1.上传文件
先在Desktop虚拟机桌面创建文件file_desktop
--尝试ping 172.25.254.178看能否ping通


 

--scp file_desktop root@172.25.254.178:/root/Desktop/  将file_desktop以server虚拟机root用户传送到桌面上


注:执行此命令要输入server虚拟机root用户的密码。在server虚拟机可以看到此文件,
 

2.下载文件
在server虚拟机桌面创建文件file_server
--在desktop虚拟机执行:scp root@172.25.254.178:/root/Desktop/file_server .       ## 以server虚拟机root身份,将server虚拟机桌面上的file_server下载到当前目录  (. 代表当前目录)


注:执行此命令要输入server虚拟机root用户的密码。可以在desktop虚拟机桌面上看到file_server文件

二,目录的上传与下载

scp    -r  dir     username@ip:/dir       ##上传
scp    -r  username@ip:/dir/file  /dir    ##下载

举例:
 

1.上传目录
先在Desktop虚拟机桌面创建目录redhat
--scp -r redhat root@172.25.254.178:/root/Desktop/     ##将redhat目录以server虚拟机root用户传送到桌面上


注:执行此命令要输入server虚拟机root用户的密码。此时server虚拟机可以看到此目录
 

2.下载文件
在server虚拟机桌面创建文件westos
--在desktop虚拟机执行:scp -r root@172.25.254.178:/root/Desktop/westos .  以server虚拟机root身份,将server虚拟机桌面上的westos目录下载到当前目录  (. 代表当前目录)


注:执行此命令要输入server虚拟机root用户的密码。此时可以在desktop虚拟机桌面上看到westos目录


三,rsync差异化传输(支持断点传输,数据同步)

rsync  [参数]    file    username@ip:/dir
rsync   -r      ##同步目录
        -l      ##不忽略链接
        -p      ##不忽略文件权限
        -t      ##不忽文件时间戳
        -g      ##不忽文件所有组
        -o      ##不忽文件所有人

举例:
 

1.传输目录
在desktop虚拟机下的桌面创建嵌套目录77/88/99


 

--rsync -r /root/Desktop/* root@172.25.254.178:/root/Desktop   ##将desktop虚拟机桌面上的目录以server虚拟机的root用户移到server虚拟机的桌面


注:
-输入server虚拟机root用户的密码。目录将在server虚拟机下的桌面显示。

 

2.传输文件
在desktop虚拟机的mnt目录下创建9个文件


 

--rsync /mnt/* root@172.25.254.178:/root/Desktop/  将mnt目录下的所有文件以server虚拟机的root用户传输到桌面上


注:
-此时输入server虚拟机的密码。文件将在server虚拟机的桌面显示
-传输过去的文件,时间戳改变

3.传输文件且不改变时间戳
在desktop虚拟机的mnt目录下创建9个文件
--rsync -t /mnt/* root@172.25.254.178:/mnt        ##将mnt目录下的所有文件以server虚拟机的root用户传输到根木下的mnt目录


注:
-此时输入server虚拟机的密码。文件将在server虚拟机的根目录下的mnt显示
-传输过去的文件,时间戳不改变

4.传输文件不改变时间戳,不改变文件权限
--将文件的ugo权限改为777:chmod 777 *

--rsync -tp /mnt/* root@172.25.254.178:/mnt/


注:
-此时输入server虚拟机root用户的密码。文件将在server虚拟机根目录下的mnt显示
-此时传输过去的文件时间戳和权限不改变。


 

5.传输文件不改变时间戳,不改变文件权限,不改变所有人
--将文件的所有人改为student:chown student *


--rsync -tpo /mnt/* root@172.25.254.178:/mnt/


注:
-此时输入server虚拟机root用户的密码。文件将在server虚拟机根目录下的mnt显示
-传输过去的文件不改变时间戳,不改变文件权限,不改变所有人


 

--新创建用户dd:useradd dd

注:id dd 查看dd用户的uid,gid,group
--chown dd * 改变文件所有人为dd
--rsync -tpo /mnt/* root@172.25.254.178:/mnt/
此时,在server虚拟机上显示dd的uid,不显示dd,因为在server虚拟机上没有dd用户,如果在server虚拟机创建一个新的用户,传输过去的文件所有组,是在server虚拟机上uid与dd用户uid相同的用户。

 

6.传输文件不改变时间戳,不改变文件权限,不改变所有人,不改变所有组
--将文件的所有组改为student:chgrp student *


 

--rsync -tpog /mnt/* root@172.25.254.178:/mnt


注:此输入在server虚拟机root用户的密码。文件将在server虚拟机根目录的mnt目录显示。


 

7.传输文件不改变时间戳,不改变文件权限,不改变所有人,不改变所有组,不改变链接
--进入到根目录下的bin目录,ll查询文件属性,bin最后一个文件带有链接


 

--rsync -tpogl /bin/* root@172.25.254.178:/mnt   将desktop虚拟机bin目录的文件以server虚拟机root用户的身份传输到mnt目录下


注:此处输入server虚拟机root用户的密码。文件将在server虚拟机根目录下的mnt目录显示。


scp 和 rsync 的区别

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值