一、实验环境设定
本节实验需要两台虚拟机,ip与主机在同一网段,可实现ssh连接!
1.创建虚拟机westosb
因为之前实验已存在一台虚拟机westosa,因此还需创建一台虚拟机westosb!
使用# westos-vmctl create westosb 创建虚拟机出错,如下所示,还未解决!
只能用原始方法创建westos虚拟机! 详细步骤如下:
选择镜像!首先保证镜像存在!路径正确!
选择虚拟机内存大小和cpu个数,默认就可以!
选择第一个,下载系统!
接着配置系统特性!
注意:最小是无图形的系统,如果需要图形,选择最后一个 GUI!
到此虚拟机westosb创建成功!
2.配置westosb实现ssh连接
首先配置westosb的网络!添加ip:172.25.254.80,跟上次实验配置一致!
# nm-connection-editor
利用 # ifconfig 查看ip是否添加成功!出现ip即成功!
别忘了设置网桥模式!
利用ping测试ip配置,真机和westosa都能ping通!成功!
修改westosa westosb虚拟机名,做实验方便!
# hostnamectl set-hostname westosa.westos.org
westosa--->westosa.westos.org
westosb---->westosb.westos.org
真机ssh连接westosa,westoab!成功!
3.清空文件还原初始样
在两台虚拟机上清空.ssh/文件,方便实验!
# rm -fr .ssh/
二、scp命令详解
1.scp命令
scp (secure copy:安全复制) 可以实现远程主机之间的文件/目录复制!具体命令如下:
(1) 把远程文件复制到本地(下载)
# scp root@172.25.254.80:/mnt/* /mnt :以root用户的身份复制172.25.254.80主机的/mnt目录下的所有文件到本机的/mnt目录下
# scp -q root@172.25.254.80: /mnt/* /mnt : 传输文件时不显示进度
# scp -r root@172.25.254.80: /mnt/* /mnt : 传输文件和目录
(2)把本地文件复制到远程主机(上传)
# scp hgxfile{1..3} root@172.25.254.80: /mnt : 把本地的文件传输到80主机的/mnt目录下
# scp -r hgxdir/ root@172.25.254.80 : /mnt :上传目录
# scp -q hgxfile{1..3} root@172.25.254.80:/mnt :不显示传输进度
2. 实验
(1)清空westosa,westosb /mnt目录下的文件
利用 rm 命令即可,但是清空westosa时遇到了问题!root用户也无法删除,
后来想起是上次实验设置了attr权限,关闭权限即可!
(2)把远程文件复制到本地(下载)
首先在westosb上/mnt目录下建立一些文件
在westosa主机上如何获取这些文件?利用scp命令,将远程文件复制到本地
ps:第一次传输文件需要认证,后面就不需要了!
在westosb中mnt目录建立一个目录
此时在westosa再次利用上次的命令下载文件,显示目录无法下载!文件仍然可以下载!
因此传输目录时,必须加 -r ,表示递归的意思!
如果 不想显示传输进度,加-q 即可!
(3)把本地文件复制到远程主机(上传)
在westosa上建立一些文件,上传到westosb上!
上传文件到westosb!
westosb收到文件!
上传目录到westosb!
westosb收到目录!
不显示传输进度!
三、rsync命令详解
rsync(Remote synchronization:远程同步)作用是远程文件/目录同步,与scp的不同是rsync会检测已存在的文件,不再传输,只会传输不存在的文件!因此所用时间短!
1.rsync命令
(1)基本用法
# rsync 文件 远程用户@远程主机ip:远程主机目录 :上传文件
# rsync 远程用户@远程主机ip:远程主机目录 文件路径 :下载文件
(2)其他参数
参数 | 含义 |
-r | 复制目录 |
-l | 复制链接 |
-p | 复制权限 |
-t | 复制时间戳 |
-o | 复制拥有者 |
-g | 复制拥有组 |
-D | 复制设备文件 |
2.实验
(1)在westosb上建立实验素材
(2) 在westosa主机复制目录
# rsync -r root@172.25.254.80:/mnt /mnt/ :下载整个mnt目录
#rsync -r root@172.25.254.80:/mnt/ /mnt/ :下载mnt目录里面的内容不包括mnt目录本身
ps:默认情况 不复制链接。
(3) 在westosa主机复制链接
# rsync -lr root@172.25.254.80:/mnt/ /mnt/ : -l 复制链接
(4) 在westosa主机复制文件的权限
# rsync -plr root@172.25.254.80:/mnt/ /mnt/ :-p复制权限
(5) 在westosa主机复制文件的所有者
# rsync -oplr root@172.25.254.80:/mnt/ /mnt/ : -o 复制文件的所有者
(6) 在westosa主机复制文件的所有组
# rsync -goplr root@172.25.254.80:/mnt/ /mnt/ : -g 复制文件的所有组
(7) 在westosa主机复制文件的时间戳
# rsync -tgoplr root@172.25.254.80:/mnt/ /mnt/ : -t 复制时间戳
(8) 在westosa主机复制字符设备
# rsync -r root@172.25.254.80:/dev/pts/ /mnt/ :默认情况无法复制字符设备
# rsync -Dr root@172.25.254.80:/dev/pts/ /mnt/ :-D复制字符设备
四、tar归档命令详解
1.tar命令
归档,把多个文件整和在一起,常常用在备份上面,本身不具备压缩功能,但是可以指定其他压缩功能去压缩。
2.常用命令选项
命令 | 含义 |
c | 创建归档文件 |
f | 指定文件 |
x | 解档 |
v | 显示过程 |
t | 查看归档文件 |
r | 向归档文件中添加文件 |
P | 不把绝对路径转换为相对路径,慎用!! |
--get | 解档指定文件 |
--delete | 删除指定文件 |
-C | 指定解档路径 |
3.实验
当传输文件比较大时,scp传输时间就会很慢!
(1)下载etc文件到westosa主机上
# scp -r root@172.25.254.80:/etc/ /mnt
ps:传输的太慢了,因此可以利用归档tar,先归档在传输
(2)创建归档文件:c
# tar cf etc.tar /etc/ :将/etc/文件归档
(3)查看归档文件:t
# tar tf etc.tar :查看归档文件
(4)传输归档文件
# scp -r root@172.25.254.80:/mnt/etc.ta /mnt
(5)解档文件 : x
归档文件传输后,解档即可获得原文件!
# tar xf etc.tar : 解档文件
(6)显示过程:v
归档和解档都不显示过程,如果想显示过程需要加v
# tar cfv etc.tar /etc/ :显示归档过程
# tar xfv etc.tar :显示解档过程
(7)向归档文件中添加文件 : r
# tar rf etc.tar westos :将westos文件添加到归档文件中
查看归档文件,westos文件添加成功!
(8)解档指定文件:--get
当归档文件含有多种文件,解档时会分开全部解开,此时可以利用--get解档指定文件
# tar f etc.tar --get westos : 只解档westos文件!
(9)删除指定文件:--delete
# tar f etc.tar --delete westos :删除westos文件
(10)指定解档路径: -C
默认文件解档时在当前目录,-C可以指定解档目录
# tar xf etc.tar -C /opt/ : 指定解档目录为opt
(11)不把绝对路径转换为相对路径: P (慎用!!)
一般默认解档在当前目录,所以用的是相对路径!自动把路径前的 " / " 号去掉!!
加了 P后,不再把绝对路径转换为相对路径,所以会解档在绝对路径中,会覆盖原本的内容,慎用!!!
# tar Pxf opt.tar :将文件解档在/opt目录中,而不是/mnt/opt
(12) tar归档命令不具备压缩能力
# du -sh /mnt/etc.tar : 查看归档文件大小
# du -sh /etc :查看原文件大小
ps: 两者相差的是重复文件,tar没有压缩能力
五、文件的压缩
1.文件压缩命令
Linux 系统中经常用来对文件进行压缩和解压缩的命令:zip, gzip, bzip2, xz!
ps: 必须先将文件归档在进行压缩!
2.命令使用方法
(1) zip压缩
首先将/etc文件归档,归档后利用zip压缩!
# zip etc.tar.zip etc.tar :将归档文件etc.tar压缩为zip文件
# du -sh etc.tar.zip :查看压缩文件的大小
# unzip etc.tar.zip : 解压文件
(2)gzip 压缩
# gzip etc.tar : 压缩归档文件
# gunzip etc.tar.gz:解压文件
(3) bzip2 压缩
# bzip2 etc.tar : 压缩文件
# bunzip2 etc.tar.bz2 :解压文件
(4) xz 压缩
# xz etc.tar:压缩文件
# unxz etc.tar.xz :解压文件
六、tar+压缩一步完成
1.支持tar+压缩的命令
上节介绍了四种压缩命令,但是必须先归档再压缩,很麻烦!
因此我们可以归档压缩一步完成,支持一步完成的命令只有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:解压