scp命令
scp(secure cp)命令用于远程复制文件和目录
和cp的区别:
(1)scp远程复制,cp只能在本机复制
(2)scp传输是加密的
和rsync的区别:
(1)不占用系统资源,不提高多少系统负荷
(2)速度慢
(3)不检测增量,如果要复制文件已存在,那么scp命令仍会复制,但rsync则不会。
1.scp 本地文件 远程主机用户@远程主机ip:远程主机目录 #从本地复制到远程
scp -q 传输文件时不显示进度
scp -r 复制目录
2.scp 远程主机用户@远程主机ip:远程主机目录 本地文件 #从远程复制到本地
scp -r 复制目录
从本地到远程:
1.复制文件
(1)不加参数
在虚拟机1中
在虚拟机2中
(2)加参数-q
在虚拟机1中
在虚拟机2中
2.复制目录
在虚拟机1中,如果不加-r的话会报错。
在虚拟机2中
从远程到本地:
1.复制文件
在虚拟机2中
在虚拟机1中
2.复制目录
在虚拟机2中
在虚拟机1中
rsync命令
命令格式同scp,参数有所不同。
1.rsync 本地文件 远程主机用户@远程主机ip:远程主机目录 #从本地复制到远程
rsync -r:复制目录
rsync -l:复制链接
rsync -p:复制权限
rsync -t:复制时间戳
rsync -o:复制拥有者
rsync -g:复制拥有组
rsync -D:复制设备文件
rsync -a:以递归方式传输文件,并保持所有文件属性
rsync -C:看要传输文件是否已存在,已存在则不传
2.rsync 远程主机用户@远程主机ip:远程主机目录 本地文件 #从远程复制到本地
参数同上
从本地复制到远程:
准备工作
在虚拟机2中远程连接到虚拟机1上,使用watch命令监控虚拟机1的/mnt文件夹,使用rsync命令时方便看到效果。
1.rsync -r
使用目录/mnt时,发现将/mnt目录本身也传过来了。
使用目录/mnt/时
2.rsync -l
使用 ln -s 源文件 目标文件 生成软链接,即在源文件处生成目标文件的快捷方式,没有s参数生成硬链接。
3.rsync -p
4.rsync -t
5.rsync -o
6.rsync -g
7.rsync -D
当不加参数D时传输设备文件,出现错误。
当加上参数D时
scp和rsync的比较
1.建立实验素材
使用 dd 指令进行截取(即用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。if=inputfile、of=outputfile、bs=blocksize、count=块的个数)
2.建立免密登录
先在主机之间建立免密登录使远程文件传输可以直接执行,以免影响运行时间的统计。
在虚拟机1中
3.编写脚本文件check_scp.sh
在虚拟机1中
4.编写脚本文件check_rsync.sh
在虚拟机1中
5.运行上述脚本并进行对比
使用 sh 脚本 命令运行脚本,可以发现scp三次执行时间几乎一致,而rsync三次执行时间(sys)后两次远远小于第一次(因为第二次和第三次实际上根本没有传输文件)。
补充: 对使用 time 指令后得到的几个时间进行解释
(1)real :实际使用时间
(2)user :用户态使用时间
(3)sys :内核态使用时间
归档和压缩
1.归档
1.tar c #创建
2.tar f #指定文件名称
3.tar x #解档
4.tar t #查看
5.tar r #向归档文件中添加文件
6.tar -C #指定解档路径
7.tar --get #解档指定文件
8.tar --delete #删除指定文件
(1)tar -cf
使用 du -sh 指令,查看当前目录下各个文件和目录所占用空间的大小。
q: 为什么使用tar归档后统计文件会变小呢?
a: du -sh 在统计打包前的文件时会统计链接,导致有的文件被统计两次,而统计打包后的文件时,不会统计链接。
(2)tar -tf
(3)tar -rf
添加文件需存在
在尾部发现文件
(4)tar xf
(5)tar f --get
(6)tar f --delete
尾部没有westos_rehl8文件了
(7)tar xf -C
注意-C参数的位置
2.压缩
1.zip -r etc.tar.zip etc.tar #zip格式压缩
unzip etc.tar.zip #zip格式解压缩
2.gzip etc.tar #gzip格式压缩
gunzip etc.tar.gz #gzip格式解压缩
3.bzip2 etc.tar #bzip2格式压缩
bunzip2 etc.tar.bz2 #bzip2格式解压缩
4.xz etc.tar #xz格式压缩
unxz etc.tar.xz #xz格式解压缩
(1)zip
(2)gzip
(3)bzip2
(4)xz
3.归档和压缩
1.gzip
tar zcf etc.tar.gz /etc
tar zxf etc.tar.gz
2.bzip2
tar jcf etc.tar.bz2 /etc
tar jxf etc.tar.bz2
3.xz
tar Jcf etc.tar.xz /etc
tar Jxf etc.tar.xz
(1)gzip
(2)bzip2
(3)xz