系统中的文件传输
一,文间的上传与下载
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 第一次是把所有文件同步过去,当文件修改后,只把修改的文件同步过去。