Linux系统中的网络传输、网络管理以及软件仓库的构建
1.实验环境介绍:在Linux系统中进行文件传输,我们需要借助网络和服务sshd,而此服务在系统中是开机启动并且在防火墙端接口中放行的。
#查看sshd状态 systemctl status sshd
#开启sshd设定 systemctl enable --now sshd
#关闭系统火墙 systemctl disable --now firewalld
模拟企业环境,在Linux系统依托下进行的文件传输,在不同的两个pc端上。模拟机上创建两台虚拟机,通过对主机的克隆,两台主机通过网络传输。
#查看IP hostname -i 和 ip a
## 进入etc下的ssh下的sshd服务器的文件进行编辑
vim /etc/ssh/sshd_config
在PermitRootLogin命令行进行修改,取消密码限制
#重启服务 systemctl restart sshd
到此为止 主机的网络已经配置完成 并启动服务可以进行连接通讯
2.利用scp命令来传输文件
scp主要用于在本地主机和远程主机之间安全地复制文件和目录,基于ssh协议,因此在传输过程中会对数据进行加密,确保数据的安全性。
##复制本地文件到远程主机
scp 文件名称 + 远程主机用户名@远程主机的ip :远程主机的目录
##冒号的作用作为指定到用户下的哪个目录
## 无显示进程 scp + -q 文件名 用户身份@+ip地址:远程主机目录的绝对路径
## 复制目录 scp + -r 目录名称 用户身份@+IP地址:远程主机的目录
3.用rsync来传输文件
rsync是一个高效的文件同步和传输的工具,可以通过ssh进行安全传输,也可以使用rsync守护进程进行传输,同时它具备强大的增量传输功能,会比较源文件和目标文件的差异,仅传输发生变化的部分,节省大量的传输时间和带宽。
rsync与spc命令的区别在于:spc对于文件只是一味的复制内容,而rsync命令则是自行判断文件的内容,进行增量功能,只提供变化的部分。
rsync -r /mnt + root@ +远程主机的ip地址 :/mnt 第一个目录名不加斜杠意味着将mnt一并传输到对端主机
rsync -r /mnt/ + root@+远程主机的ip地址:/mnt 第一个目录加斜杠意味着传输的只是该目录中的内容,目录没有过来
有无加斜杠同时影响着有无链接的传输,对于加斜杠的目录,可以采取用-lr来对链接的传输
rsync参数详解
rsync + -r 复制目录
rsync + -l 复制链接
rsync + -p 复制权限
rsync + -t 复制时间戳
rsync + -o 复制拥有者
rsync + -g 复制拥有组
rsync + -D 复制设备文件
对于特殊文件的传输
将设备文件同步到另一个主机上:rsync + logtpDr /dev/pts/ root@主机ip地址:/mnt
4.文件传输的效率通过归档和压缩来提高,容量变小、速率变快。
如何将目录变成一个文档,叫做归档
##文件打包归档 tar cf + 文件名 + 根下目录
##文件解封 tar xf + 文件名
scp将文件与目录共同复制到另一个主机的方式速率较慢,而利用tar命令打包文档,归档后提高速率。
tar f etc.tar --get mnt 指定文档传输到哪个目录
tar rf etc.tar 文件名 解开所指定文件
tar f etc.tar --delete 文件名 删除文档中的指定文件
tar xf etc.tar -C 目录名 将文档置于另一个指定目录中
5.压缩文件来减少存储空间的占用,提升数据传输的效率
压缩格式:gz格式以.gz为扩展名,使用gzip算法进行压缩,大多使用于软件包;bz2格式以.bz2,采用bz2的算法,压缩率较高,但压缩和解压缩的速度比gz格式慢,大多使用于大型数据文件;xz格式以.xz为扩展名,使用xz的算法进行压缩,能最大程度地减小文件体积,但压缩和解压缩速度较慢,大多是使用于长期存储的大量数据归档;zip格式可以将多个文件和目录压缩到一个文件中,并且支持跨平台使用,方便不同操作系统之间传输文件,同时具有加密功能。
压缩命令
#zip
zip -r etc.tar.zip etc.tar 压缩zip格式
unzip etc.tar.zip 解压缩zip格式
#gzip
gzip etc.tar 压缩gzip格式
gunzip etc.tar.gz 解压缩gzip格式
#bz2
bzip2 etc.tar 压缩bz2的格式
bunzip2 etc.tar.bz2 解压缩bz2的格式
#xz
xz etc.tar 压缩xz的格式
unxz etc.tar.xz 解压缩xz的格式
归档压缩一步完成
#gzip
tar zcf etc.tar.gz /etc
tar zxf etc.tar.gz
#bzip2
tar jcf etc.tar.bz2 /etc
tar jxf etc.tar.bz2
#xz
tar jcf etc.tar.xz /etc
tar jxf etc.tar.xz