存储管理和软件管理

总结raid 0, 1, 5, 10, 01的工作原理。总结各自的利用率,冗余性,性能,至少几个硬盘实现。

RAID 0

工作原理:RAID 0通过条带化(striping)技术将数据分散存储到多个硬盘上,即数据的每个部分都存储在不同的硬盘上,以提高读取和写入速度。
利用率:100%。所有硬盘的容量都可以被利用,没有容量损失。
**冗余性:**无。RAID 0不提供任何数据冗余,如果任何一个硬盘故障,所有数据都将丢失。
性能:高。由于数据分散存储,可以并行读取和写入多个硬盘,因此性能较高。
最少硬盘数:2个。

RAID 1

工作原理:RAID 1通过镜像(mirroring)技术将数据同时写入到两个或多个硬盘上,每个硬盘都包含完整的数据副本。
利用率:50%(对于两个硬盘)。因为只有一半的硬盘容量被用于实际数据存储,另一半用于数据镜像。
冗余性:高。如果任何一个硬盘故障,另一个硬盘上的数据副本仍然可用,确保数据不丢失。
性能:中。虽然读取性能可能因可以从多个硬盘同时读取而有所提升,但写入性能通常较低,因为数据必须写入所有镜像硬盘。
最少硬盘数:2个。

RAID 5

工作原理:RAID 5通过条带化和分布式奇偶校验(distributed parity)技术将数据分散存储到多个硬盘上,并在硬盘上存储校验信息以提供数据冗余。
利用率:N-1/N(N为硬盘数)。因为一部分硬盘空间用于存储校验信息,所以实际可用容量略小于总容量。
冗余性:中。RAID 5可以容忍一个硬盘故障而不丢失数据,但如果多个硬盘同时故障,数据可能会丢失。
性能:中。读取性能通常较高,因为可以并行从多个硬盘读取数据。写入性能可能较低,因为需要计算并存储校验信息。
最少硬盘数:3个。

RAID 10

工作原理:RAID 10实际上是RAID 1+0的结合,即首先将数据镜像成两组,然后将这两组镜像条带化到多个硬盘上。
利用率:50%。因为RAID 10先进行镜像,所以其利用率与RAID 1相同。
冗余性:高。RAID 10可以容忍每组镜像中的一个硬盘故障而不丢失数据。
性能:高。由于结合了RAID 1的镜像和RAID 0的条带化,RAID 10在提供数据冗余的同时,也保持了较高的性能。
最少硬盘数:4个(两个硬盘用于每组镜像)。

RAID 01

工作原理:RAID 0+1实际上是RAID 0+RAID 1的结合,即首先将数据条带化到多个硬盘上,然后再对整个条带化后的数据进行镜像。
利用率:50%。因为RAID 0+1后进行镜像,所以其利用率与RAID 1相同。
冗余性:高。RAID 0+1可以容忍任何一组(条带化+镜像)中的一个硬盘故障而不丢失数据。
性能:中。虽然读取性能可能较高,但由于需要先将数据条带化再进行镜像,写入性能可能不如RAID 10。
最少硬盘数:4个(至少两个硬盘用于条带化,然后再进行镜像)。

完成对LVM磁盘扩容及缩容示例。

LVM磁盘扩容
假设你有一个名为myvg的卷组,并且你想要将一个新的物理卷/dev/sdb1添加到这个卷组中,并扩展名为mylv的逻辑卷。

将新的物理卷添加到卷组
首先,你需要将新的物理卷添加到卷组中:

sudo vgextend myvg /dev/sdb1

扩展逻辑卷
接下来,你可以扩展逻辑卷以使用新添加的空间:

sudo lvextend -L +10G /dev/myvg/mylv

在这个例子中,我们为mylv增加了10GB的空间。你可以根据需要调整这个大小。
3. 调整文件系统大小

如果逻辑卷上有一个文件系统(例如ext4),你还需要调整文件系统的大小以使用新添加的空间:

sudo resize2fs /dev/myvg/mylv

对于XFS文件系统,使用:

sudo xfs_growfs /dev/myvg/mylv

LVM磁盘缩容
缩容操作相对复杂,因为你需要首先缩小文件系统,然后缩小逻辑卷,最后可能还需要从卷组中删除物理卷。

缩小文件系统
首先,你需要确保文件系统上有足够的未使用空间,然后使用相应的工具来缩小文件系统。例如,对于ext4文件系统:

sudo resize2fs /dev/myvg/mylv 20G

这将把文件系统大小调整为20GB。请确保调整的大小不会导致数据丢失。
2. 缩小逻辑卷

接下来,你可以缩小逻辑卷:

sudo lvresize -L 20G /dev/myvg/mylv

这将把逻辑卷大小调整为20GB。同样,请确保调整的大小不会导致数据丢失。
3. 从卷组中删除物理卷(如果需要)

如果你希望从卷组中删除某个物理卷,并且这个物理卷上没有分配任何逻辑卷空间,你可以这样做:

sudo vgreduce myvg /dev/sdb1

这将从myvg卷组中删除/dev/sdb1物理卷。请注意,如果物理卷上仍有逻辑卷空间,你将无法删除它,除非你先移动或删除这些逻辑卷。

总结程序包管理器有哪些,以及包中包含什么内容的文件,尝试这些文件如何获取命令获取? 总结yum/dnf/apt程序包获取途径,以及rpm, yum, apt命令选项示例。

常见的程序包管理器包括:

RPM : 主要用于Red Hat及其衍生版本(如CentOS和Fedora)。RPM包以.rpm为扩展名。
YUM : 是基于RPM的一个更高级的软件包管理工具,它自动解决了依赖关系,并可以从多个存储库中检索和安装软件包。
DNF : 是YUM的一个改进版本,提供了更快的依赖解析和更强大的功能。Fedora和一些其他发行版开始使用DNF代替YUM。
APT:
主要用于Debian及其衍生版本(如Ubuntu)。APT包以.deb为扩展名。APT使用一系列的命令和工具来处理软件包,包括apt-get、apt-cache和apt-config。

包中包含的文件内容

每个软件包通常包含以下类型的文件:

二进制文件:程序的执行文件。
库文件:程序运行所需的共享库。
配置文件:程序的配置文件,用于设置程序的运行参数。
文档和手册页:关于程序使用的说明文档。
其他辅助文件:如示例、脚本等。

如何获取包中的文件

要查看RPM包中的文件列表,可以使用rpm -qlp package_name.rpm命令。

对于APTDNF/YUM,通常需要先安装软件包,然后使用dpkg -L package_name(对于APT)或rpm -ql package_name(对于通过YUM/DNF安装的RPM包)来查看已安装软件包的文件列表。

YUM/DNF/APT程序包获取途径

YUM/DNF
默认从/etc/yum.repos.d/或/etc/dnf/dnf.conf中定义的存储库获取软件包。
可以添加或删除存储库配置文件来更改获取软件包的来源。
APT
默认从/etc/apt/sources.list和/etc/apt/sources.list.d/中定义的存储库获取软件包。
使用add-apt-repository命令可以添加新的存储库。

命令选项示例
RPM

说明命令
安装rpm -ivh package_name.rpm
卸载rpm -e package_name
查询rrpm -q package_name

YUM

说明命令
安装yum install package_name
更新yum update package_name
卸载yum remove package_name
搜索yum search keyword

DNF (与YUM命令非常相似)

说明命令
安装dnf install package_name

其他命令与YUM类似,但DNF通常更快且更强大。

APT

说明命令
安装apt-get install package_name 或 apt install package_name
更新apt-get update && apt-get upgrade 或 apt update && apt upgrade
卸载apt-get remove package_name 或 apt remove package_name
搜索apt-cache search keyword 或 apt search keyword

简要总结yum/dnf工作原理。并搭建私有yum仓库(base, epel源)给另一个虚拟机使用。

YUM/DNF工作原理总结
YUM(Yellowdog Updater Modified)和DNF(Dandified YUM)都是Linux发行版中的软件包管理工具,主要用于自动化地安装、更新、配置和删除软件包。
搭建私有YUM仓库

  • 准备软件包:首先,收集需要放到私有仓库中的RPM软件包,这些软件包可以来自官方仓库或其他来源。
  • 创建仓库目录:在服务器上创建一个目录作为私有仓库的根目录,例如/opt/yumrepo。
  • 生成仓库元数据:使用createrepo命令生成仓库的元数据。这个命令会扫描指定目录下的RPM软件包,并生成相应的元数据文件。例如,执行createrepo
    /opt/yumrepo命令。
  • 配置Nginx或Apache作为HTTP服务器:为了让其他虚拟机能够访问私有仓库,需要配置一个HTTP服务器来提供文件服务。可以使用Nginx或Apache等Web服务器软件来实现。
  • 配置yum仓库:在需要使用私有仓库的虚拟机上,编辑/etc/yum.repos.d/目录下的.repo文件,添加私有仓库的配置信息。包括仓库的ID、名称、基础URL(指向HTTP服务器上的仓库目录)等。
  • 测试仓库:在虚拟机上执行yum clean all和yum makecache命令,清除旧的缓存并生成新的缓存。然后尝试安装或查询软件包,以验证私有仓库是否正常工作。

总结系统安装之后的常用初始化步骤。rocky/ubuntu

Rocky/CentOS/RHEL 初始化

关闭防火墙

systemctl disable --now firewalld  关闭默认内置的防火墙策略,但仍可以自定义策略

关闭SELinux

  nano /etc/selinux/config
  SELINUX=disabled
   reboot

实现邮件通信

  yum -y install postfix mailx 
  systemctl enable --now postfix 

常用软件:

  yum -y install bash-completion psmisc lrzsz  tree man-pages redhat-lsb-core zip unzip bzip2 wget tcpdump ftp rsync vim lsof

网卡NAT

 地址:10.0.0.X/24 GATEWAY:10.0.0.2,dns:10.0.0.2,180.76.76.76

 名称修改:ethX

解读一键安装httpd脚本,并自行实现一个一键安装脚本**, 要求 1)基于位置变量传递版本号 2)基于独立函数进行初始化步骤,禁用防火墙,安装开发依赖包。 3)基于独立函数进行下载包,解压包。 4)基于独立函数进行编译,安装包。 5)基于独立函数完成链接包。 6)启动服务,并输出自定义的语句,安装xxx服务

#!/bin/bash  
  
# 初始化函数  
initialize() {  
    # 禁用防火墙 
  systemctl disable --now firewalld 
    # 安装开发依赖包  
    yum install -y wget openssl-devel pcre-devel apr-devel apr-util-devel  
}  
# 下载和解压函数  
download_and_extract() {  
    local version=$1  
    local tarball="httpd-$version.tar.bz2"  
    local dir="httpd-$version"  
    # 下载源码包  
    wget "https://archive.apache.org/dist/httpd/httpd-$version.tar.bz2" -O "$tarball"  
    # 解压源码包  
    tar -xf "$tarball"  
    # 进入解压后的目录  
    cd "$dir" || exit 1  
}   
# 编译和安装函数  
compile_and_install() {  
    # 配置编译选项(这里使用默认选项,你可以根据需要调整)  
    ./configure --prefix=/usr/local/apache2  
    # 编译和安装  
    make  
    make install  
}  
# 链接函数(如果需要的话,比如创建软链接到/usr/sbin等)  
link_packages() {  
    # 你可以在这里添加链接包的命令,如果需要的话  
    # 例如:ln -s /usr/local/apache2/bin/httpd /usr/sbin/httpd  
}   
# 启动服务函数  
start_service() {  
    /usr/local/apache2/bin/apachectl start  
    echo "httpd服务已启动"  
}  
# 主函数  
main() {  
    local version=$1  
    # 检查是否提供了版本号  
    if [ -z "$version" ]; then  
        echo "请提供httpd的版本号作为位置参数"  
        exit 1  
    fi  
    # 初始化  
    initialize  
    # 下载和解压  
    download_and_extract "$version"  
    # 编译和安装  
    compile_and_install  
    # 链接包(如果需要的话)  
    link_packages  
    # 启动服务  
    start_service  
}  
  
# 调用主函数  
main "$@"

总结开放系统互联OSI模型,每层作用及对应的协议。

开放系统互联(OSI)模型是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,为开放式互连信息系统提供了一种功能结构的框架。OSI模型从低到高分为七层,每层都有其特定的作用以及与之对应的协议。以下是OSI模型的各层及其作用和常见协议:

物理层(Physical Layer):
作用:负责在物理传输媒介上传输数据比特流。
常见协议与标准:Ethernet、Wi-Fi、蓝牙等。
数据链路层(Data Link Layer):
作用:将物理层传输的比特流组织成帧(Frame),并在相邻节点之间传输数据。
常见协议与标准:以太网协议(Ethernet)、无线局域网协议(Wi-Fi)、透明传输协议(PPP)等。
网络层(Network Layer):
作用:负责数据在不同网络之间的传输和路由选择。
常见协议与标准:互联网协议(IP)、网际控制报文协议(ICMP)、网际组管理协议(IGMP)等。
传输层(Transport Layer):
作用:主要负责提供端到端的可靠数据传输和错误恢复机制。
注意:OSI七层模型原本包括会话层、表示层和应用层,但在某些资料中,传输层、会话层、表示层被统一为运输层。因此,对于会话层和表示层的协议与功能,在这里可能并不涵盖。
会话层:
作用:负责建立、管理和终止会话。
对应协议:在不同的网络环境和应用中会有所不同。
表示层:
作用:对数据进行加密、压缩和转换,以确保数据的安全性和一致性。
对应协议:因具体应用和数据类型的不同而有所不同。
应用层:
作用:为用户提供网络服务接口,如电子邮件、文件传输等。
常见协议:HTTP、FTP、SMTP、DNS等。

调整动态端口范围为20000-60000

要修改动态端口范围,可以使用sysctl命令的-w选项。执行以下命令将起始端口设置为20000,结束端口设置为60000:

sudo sysctl -w net.ipv4.ip_local_port_range=20000 60000

修改后的设置将立即生效,但仅在当前会话中有效。为了使设置在系统重启后仍然有效,需要将上述命令添加到/etc/sysctl.conf配置文件中。使用文本编辑器打开该文件:

sudo vim /etc/sysctl.conf

在文件的末尾添加以下行:

net.ipv4.ip_local_port_range=20000 60000

保存并关闭文件。
为了使新设置生效,可以执行以下命令:

sudo sysctl -p

这将应用/etc/sysctl.conf文件中的新设置。

总结TCP包头结构,TCP三次握手,4次挥手。

TCP包头结构主要包含了TCP协议头,其最小长度为20个字节。关键区域包括

TCP源端口和目的端口:各占16位,分别用于标识发送端和接收端的端口号。源端口和源IP地址的作用是标示报文的返回地址。
序列号:用于标识TCP分段中第一个字节的序列号,确保数据的按序到达。
标志位:包含一系列控制标志,如ACK(确认标志)、SYN(同步标志)、FIN(结束标志)等,用于TCP连接的建立和断开,以及数据的确认和重传。

TCP三次握手用于建立TCP连接,过程如下

客户端发送SYN包(包含初始序列号)到服务器,并进入SYN_SEND状态,等待服务器确认。
服务器收到SYN包后,确认客户的SYN,同时自己也发送一个SYN包,即SYN+ACK包,此时服务器进入SYN_RECV状态。
客户端收到服务器的SYN+ACK包后,向服务器发送确认包ACK,此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。此时,客户端与服务器之间的TCP连接建立成功,可以开始传输数据。

TCP四次挥手用于断开TCP连接,过程如下

客户端向服务器发送一个FIN数据包,告诉服务器不再发送数据,并指定一个序列号。此时客户端进入FIN_WAIT1状态。
服务器收到FIN包后,发送ACK包进行确认,此时服务器进入CLOSE_WAIT状态。客户端收到确认后进入FIN_WAIT2状态,等待服务器断开连接。
当服务器完成数据传输后,也发送一个FIN包给客户端,进入LAST_ACK状态。
客户端收到服务器的FIN包后,发送ACK包进行确认,然后进入TIME_WAIT状态,等待一段时间后,进入CLOSED状态,连接完全关闭。同时,服务器收到客户端的ACK包后,也进入CLOSED状态。

总结主机到主机的包传递过程。

  • 应用层封装:当主机需要发送数据时,首先会在应用层将应用数据封装成特定的格式,如HTTP请求或FTP文件数据等。这些数据包含了发送方想要传达给接收方的信息。
  • 传输层封装:接下来,在传输层,数据被封装成TCP或UDP数据包。TCP提供可靠的、面向连接的传输服务,而UDP则提供无连接的、不可靠的传输服务。对于TCP数据包,还会涉及序列号、确认机制等以确保数据的顺序和完整性。
  • 网络层封装:在网络层,数据包被封装成IP数据包。IP数据包包含了源主机和目的主机的IP地址,使得数据包能够在互联网中正确地路由和传输。
  • 数据链路层封装:在数据链路层,IP数据包被进一步封装成帧(Frame)。这一层负责在物理网络上传输数据,包括添加帧头、帧尾以及可能的校验和等信息,以确保数据在物理传输过程中的完整性。
  • 物理层传输:最后,封装好的帧通过物理层在物理介质(如网线、光纤或无线信号)上进行传输。物理层负责将比特流转换为可以在物理介质上传输的信号。
  • 中间节点处理:在数据包从源主机到目的主机的路径中,可能会经过多个中间节点,如路由器和交换机。这些中间节点根据数据包的IP地址和路由表信息,决定数据包的下一跳路径,并将其转发到下一个节点。
  • 目的主机处理:当数据包到达目的主机时,目的主机的网络层首先解封装IP数据包,然后传输层解封装TCP或UDP数据包,最后应用层解封装应用数据。这样,目的主机就可以获取到发送方发送的原始信息。

总结IP地址 A, B, C, D 类,并解析IP地址的组成

IP地址是由“网络号”和“主机号”两部分组成的。具体来说,IP地址采用了分层结构,通过子网掩码来区分网络位和主机位。子网掩码与IP地址一一对应,子网掩码为1的部分是网络位,为0的部分是主机位。
根据取值范围的不同,IP地址主要分为A、B、C、D、E五类,每一类都有其特定的用途和标识长度:

  • A类地址:网络号占第一段号码,剩下的三段号码为主机号。网络地址的最高位必须是“0”。A类地址用于最大型的网络,网络节点数可达16777216个。A类地址的范围是1.0.0.0~126.255.255.255。
  • B类地址:前两段号码为网络号,后两段号码为主机号。网络地址的最高位必须是“10”。B类地址一般用于中等规模网络,其范围是128.0.0.0~191.255.255.255。
  • C类地址:前三段号码为网络号,最后一段号码为主机号。网络地址的最高位必须是“110”。C类地址用于小型网络,其范围是192.0.0.0~223.255.255.255。
  • D类地址:用于多路广播用户,即多播地址。该类IP地址的最前面为“1110”,所以地址的网络号取值于224239之间,范围是224.0.0.0239.255.255.255。

201.222.200.111/18计算主机数?子网掩码?说明计算方法。

计算子网掩码
IP地址由32位组成,前18位是网络位,后14位是主机位。
子网掩码由32个二进制位组成,前18位是1(表示网络位),后14位是0(表示主机位)。
将这32位转换为点分十进制格式。
前18位为1,即:
11111111 11111110 00000000 00000000
转换为点分十进制:
255.254.0.0(子网掩码)
计算主机数
主机位有14位。
每个位可以有两种状态(0或1),因此总共有2^14种可能的组合。
但是,两种组合是保留的:一个是全0(表示网络地址),另一个是全1(表示广播地址)。
因此,可用的主机数是2^14 - 2。
计算可得:可用主机数是16382个。

当A(10.0.1.1/16)与B(10.0.2.2/24)通信,A如何判断是否在同一个网段?A和B能否通信?

A的IP地址和子网掩码:
IP地址:10.0.1.1
子网掩码:/16 或 255.255.0.0
网络部分计算:
将IP地址与子网掩码进行逻辑与运算,得到网络地址。
10.0.1.1 与 255.255.0.0 = 10.0.0.0
因此,A的网络地址是10.0.0.0,并且它可以识别的主机范围是10.0.0.0到10.0.255.255。

B的IP地址和子网掩码:
IP地址:10.0.2.2
子网掩码:/24 或 255.255.255.0
网络部分计算:
将IP地址与子网掩码进行逻辑与运算,得到网络地址。
10.0.2.2 与 255.255.255.0 = 10.0.2.0
因此,B的网络地址是10.0.2.0,并且它可以识别的主机范围是10.0.2.0到10.0.2.255。

由于A的网络地址是10.0.0.0,而B的网络地址是10.0.2.0,它们是不同的。因此,A和B不在同一个网段。

解析/etc/sysconfig/network-scripts/ifcfg-eth0配置格式。

/etc/sysconfig/network-scripts/ifcfg-eth0 是 Red Hat 和基于 Red Hat 的 Linux 发行版(如 CentOS 和 Fedora)中用于配置网络接口 eth0 的文件。这个文件包含了网络接口的各种参数设置。

下面是一个典型的 ifcfg-eth0 文件内容,以及对其配置的解析:

DEVICE=eth0  #指定了网络接口的名字。在大多数情况下,它将是 eth0
BOOTPROTO=static # 定了网络接口使用的启动协议。static 表示使用静态 IP 地址,而 dhcp 表示使用 DHCP 来获取 IP 地址。
ONBOOT=yes#指定了是否在系统启动时激活这个网络接口。yes 表示在系统启动时激活它,而 no 则表示不激活。  
IPADDR=192.168.1.100 # 指定了网络接口的静态 IP 地址。
NETMASK=255.255.255.0 #指定了网络掩码。它用于确定哪些 IP 地址在同一个子网上。
GATEWAY=192.168.1.1 # 指定了默认网关的 IP 地址。所有不在本地网络上的流量都将通过这个网关转发。
DNS1=8.8.8.8 # 定了用于域名解析的 DNS 服务器的 IP 地址。
DNS2=8.8.4.4 

基于配置文件或命令完成bond0配置

创建bond0的配置文件:

vim /etc/sysconfig/network-scripts/ifcfg-bond0

在配置文件中添加以下内容:

DEVICE=bond0  
TYPE=Bond  
BOOTPROTO=static  
ONBOOT=yes  
IPADDR=192.168.1.100  # 替换为你的IP地址  
NETMASK=255.255.255.0  # 替换为你的子网掩码  
GATEWAY=192.168.1.1  # 替换为你的网关地址  
BONDING_MASTER=yes  
BONDING_MIIMON=100  # 链路监测间隔,单位为毫秒  
BONDING_MODE=active-backup  # 绑定模式,这里使用active-backup模式

创建物理接口的配置文件,并将其绑定到bond0。假设你有两个物理接口eth0和eth1,你可以创建以下配置文件:

vim /etc/sysconfig/network-scripts/ifcfg-eth0

内容如下:

DEVICE=eth0  
MASTER=bond0  
SLAVE=yes  
ONBOOT=yes  
USERCTL=no

对于eth1,创建类似的配置文件:

vim /etc/sysconfig/network-scripts/ifcfg-eth1

内容如下:

DEVICE=eth1  
MASTER=bond0  
SLAVE=yes  
ONBOOT=yes  
USERCTL=no

重启网络服务以应用更改

完成上述步骤后,你的bond0接口应该已经配置好了,并且绑定了eth0和eth1两个物理接口。你可以使用ip addr命令来验证配置是否生效。

通过ifconfig命令结果找到ip地址.

打开终端,输入 ifconfig 命令并回车。

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500  
        inet 192.168.1.100  netmask 255.255.255.0  broadcast 192.168.1.255  
        inet6 fe80::20c:29ff:fe9a:9b55  prefixlen 64  scopeid 0x20<link>  
        ether 00:0c:29:9a:9b:55  txqueuelen 1000  (Ethernet)  
        RX packets 12345  bytes 1048576  (1.0 MB)  
        RX errors 0  dropped 0  overruns 0  frame 0  
        TX packets 890  bytes 65432  (65.4 KB)  
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0  
  
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536  
        inet 127.0.0.1  netmask 255.0.0.0  
        inet6 ::1  prefixlen 128  scopeid 0x10<host>  
        loop  txqueuelen 1000  (Local Loopback)  
        RX packets 8  bytes 656  (656.0 B)  
        RX errors 0  dropped 0  overruns 0  frame 0  
        TX packets 8  bytes 656  (656.0 B)  
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

在上面的例子中,eth0 是一个以太网接口,inet 后面的 192.168.1.100 就是该接口的 IPv4 地址。而 lo 是回环接口,通常用于本机测试,其 IPv4 地址是 127.0.0.1。

使用脚本判断 你主机所在网络内在线的主机IP有哪些? ping通则在线。

示例:它使用ping命令来扫描一个指定的IP地址范围,并输出在线的主机IP:

#!/bin/bash  
  
# 设置网络前缀和扫描范围  
NET_PREFIX="192.168.1"  # 替换为你的网络前缀  
START_IP=1  
END_IP=254             # 替换为你的扫描范围,例如从1到254  
  
# 使用ping命令扫描网络内的主机  
for ip in $(seq $START_IP $END_IP); do  
    # 构造完整的IP地址  
    FULL_IP="${NET_PREFIX}.${ip}"  
  
    # 使用ping命令检查主机是否在线  
    # 使用-c 1参数限制ping命令只发送一个包  
    # 使用-W 1参数设置超时时间为1秒  
    ping -c 1 -W 1 $FULL_IP &> /dev/null  
  
    # 检查ping命令的退出状态  
    if [ $? -eq 0 ]; then  
        echo "$FULL_IP is online"  
    fi  
done
  • 16
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值