第7章:网络---centos网络排障命令

第7章:网络---centos网络排障思路

 

复制代码
lspci命令;dmesg命令;dmicode命令
==========================================================================================================
lspci命令用于显示当前主机的所有PCI总线信息,以及所有已连接的PCI设备信息。 现在主流设备如网卡储存等都采用PCI总线
    常用参数:
    -n    以数字方式显示PCI厂商和设备代码
    -t    以树状结构显示PCI设备的层次关系
    -b    以总线为中心的视图
    -s    仅显示指定总线插槽的设备和功能块信息
    -i    指定PCI编号列表文件,不使用默认文件
    -m    以机器可读方式显示PCI设备信息



    lspci -t:以树的形式显示pci设备信息。
    lspci -v/-vv/-vvv:显示详细的pci设备信息,v越多,越详细,当然,上限3个。
    lspci -n/-nn:显示设备的vendor厂商号和device设备号;显示厂商等信息和名称。
    lspci -D:显示设备的厂商号、设备号、Class号。



    lspci -vvv |grep eth

---------------------------------------------------------------------------------------------------------
dmesg命令用于打印Linux系统开机启动信息,kernel会将开机信息存储在ring buffer中。
开机信息亦保存在/var/log/dmesg的文件里。
dmesg命令设备故障的诊断是非常重要的。在dmesg命令的帮助下进行硬件的连接或断开连接操作时,我们可以看到硬件的检测或者断开连接的信息。dmesg命令在多数基于Linux和Unix的操作系统中都可以使用。
    实测:卸载重装网卡,dmesg命令可以查询到该日志;ifconfig eth0 down这种主动关闭链路,则查不到日志


    dmesg | grep IDE            # 查看启动时IDE设备检测状况
    dmesg |grep -i link         # 启动日志可以看到网卡的up日志、网卡协商模式
    dmesg |grep -i eth0

    dmesg -c                    # 清除开机的dmesg缓存信息,但/var/log/dmesg文件中仍然有这些信息。

---------------------------------------------------------------------------------------------------------

dmicode这款软件可以在linux操作系统中收集硬件信息,该软件遵循SMBIOS标准,其输出的信息包括系统制造商、型号、序列号、BIOS版本、CPU、内存、PCI、及I/O接口等,该软件非常强大也非常实用。


以下为常用的dmidecode命令:
    1、精简显示dmi信息
    #dmidecode -q
    2、查看设备的型号
    dmidecode | grep 'Product Name'
    3、查看设备的序列号
    dmidecode |grep 'Serial Number'
    4、查看系统的序列号
    dmidecode -s system-serial-number
    5、查看内存槽位及内存大小
    dmidecode|grep –P –A5 'Memory\s+Device'|grep Size|grep –v Range
    6、查看支持的最大内存数
    dmidecode|grep –P 'Maximum\s+Capacity'

dmidecode参数string关键字如下:
    bios-vendor
    bios-version
    bios-release-date
    system-manufacturer
    system-product-name
    system-version
    system-serial-number
    system-uuid
    baseboard-manufacturer
    baseboard-product-name
    baseboard-version
    baseboard-serial-number
    baseboard-asset-tag
    chassis-manufacturer
    chassis-type
    chassis-version
    chassis-serial-number
    chassis-asset-tag
    processor-family
    processor-manufacturer
    processor-version
    processor-frequency

dmidecode参数type关键字如下:
    bios
    system
    baseboard
    chassis
    processor
    memory
    Cache
    connector
    slot
lspci命令;dmesg命令;dmicode命令
复制代码
复制代码
#lspci -tvv |grep -C3 Gigabit
 |           +-15.0  Intel Corporation Sky Lake-E M2PCI Registers
 |           +-16.0  Intel Corporation Sky Lake-E M2PCI Registers
 |           \-16.4  Intel Corporation Sky Lake-E M2PCI Registers
 +-[0000:ae]-+-00.0-[af]--+-00.0  Intel Corporation I350 Gigabit Network Connection
 |           |            \-00.1  Intel Corporation I350 Gigabit Network Connection
 |           +-05.0  Intel Corporation Device 2034
 |           +-05.2  Intel Corporation Sky Lake-E RAS Configuration Registers
 |           +-05.4  Intel Corporation Device 2036
--
 |           +-0d.1  Intel Corporation Device 2049
 |           +-0d.2  Intel Corporation Device 204a
 |           \-0d.3  Intel Corporation Device 204b
 +-[0000:85]-+-00.0-[86]--+-00.0  Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection
 |           |            \-00.1  Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection
 |           +-05.0  Intel Corporation Device 2034
 |           +-05.2  Intel Corporation Sky Lake-E RAS Configuration Registers
 |           +-05.4  Intel Corporation Device 2036
--
 |           +-08.0  Intel Corporation Sky Lake-E Ubox Registers
 |           +-08.1  Intel Corporation Sky Lake-E Ubox Registers
 |           \-08.2  Intel Corporation Sky Lake-E Ubox Registers
 +-[0000:5d]-+-02.0-[5e]--+-00.0  Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection
 |           |            \-00.1  Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection
 |           +-05.0  Intel Corporation Device 2034
 |           +-05.2  Intel Corporation Sky Lake-E RAS Configuration Registers
 |           +-05.4  Intel Corporation Device 2036

--------------------------------------------------
#lspci |grep -i ether
5e:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
5e:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
86:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
86:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
af:00.0 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
af:00.1 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
--------------------------------------------------------------
#lspci -vvv |grep 10-Gigabit -A10
5e:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
  Physical Slot: 1
  Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B- DisINTx+
  Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
  Latency: 0, Cache Line Size: 64 bytes
  Interrupt: pin A routed to IRQ 44                                                        #硬中断
  Region 0: Memory at c4800000 (64-bit, non-prefetchable) [size=8M]
  Region 2: I/O ports at 9020 [size=32]
  Region 4: Memory at c5804000 (64-bit, non-prefetchable) [size=16K]
  Expansion ROM at c5400000 [disabled] [size=4M]
  Capabilities: [40] Power Management version 3
--
5e:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
  Physical Slot: 1
  Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B- DisINTx+
  Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
  Latency: 0, Cache Line Size: 64 bytes
  Interrupt: pin B routed to IRQ 74
  Region 0: Memory at c4000000 (64-bit, non-prefetchable) [size=8M]
  Region 2: I/O ports at 9000 [size=32]
  Region 4: Memory at c5800000 (64-bit, non-prefetchable) [size=16K]
  Expansion ROM at c5000000 [disabled] [size=4M]
  Capabilities: [40] Power Management version 3
lspci -tvv|lspci -vvv
复制代码

 

复制代码
Ipmitool命令
-------------------------------------------
Ipmitool对搞运维的哥们儿来说是一个很不错的管理工具,既支持本地操作也支持远端操作。
https://blog.51cto.com/qiangsh/1861481
ipmitool lan print 1
#网络接口相关命令
    ipmitool -I lanplus -H $oob_ip -U root -P <密码> lan print 1    #显示channel1的网络配置信息
    ipmitool lan set 1 ipaddr 10.32.2.2    #设置channel1的IP地址
    ipmitool lan set 1 netmask 255.255.0.0   #设置channel1的netmask
    ipmitool lan set 4 defgw ipaddr255.255.0.254    #设置channel4的网关
    ipmitool lan set 2 defgw macaddr  <macaddr> #设置channel2的网关mac address
    ipmitool lan set 2 ipsrc dhcp         #设置channel2的ip 源在DHCP
    ipmitool lan set 3 ipsrc static        #设置channel2的ip是静态获得的

#远程电源管理
    ipmitool -I lanplus -H $oob_ip -U root -P <密码> power status (获取当前电源状态)
    ipmitool -I lanplus -H $oob_ip -U root -P <密码> power off (慎用!硬关机,直接切断电源)
    ipmitool -I lanplus -H $oob_ip -U root -P <密码> power soft (慎用!软关机,即如同轻按一下开机按钮)
    ipmitool -I lanplus -H $oob_ip -U root -P <密码> power on (硬开机)
    ipmitool -I lanplus -H $oob_ip -U root -P <密码> power reset (慎用!硬重启)
    ipmitool -I lanplus -H $oob_ip -U root -P <密码> chassis power cycle (慎用!)
    (注意power cycle 和power reset的区别在于前者从掉电到上电有1秒钟的间隔,而后者是很快上电)
Ipmitool命令
复制代码
复制代码
IPMITool问题排查
==================================================================
https://blog.csdn.net/qq_40700822/article/details/125066329     IPMITool常用命令
1、IPMI管理工具
网络接口相关命令

ipmitool lan print 1 //查看
ipmitool lan print  //查看

ipmitool lan set 1 ipsrc static //设置BMC的静态IP 
ipmitool lan set 1 ipaddr 192.168.18.80  
ipmitool lan set 1 netmask 255.255.255.0 
ipmitool lan set 1 defgw ipaddr 192.168.18.247 

ipmitool lan set 1 ipsrc dhcp //设置成dhcp 
    #若果报channel 1 is not a lan channel,按以下方法查找LAN通道
    for i in `seq 1 14`; do ipmitool lan print $i 2>/dev/null | grep -q ^Set && echo Channel $i; done   #其实就是逐个查看channel,若输出包含"^Set",则打印该Channel

ipmitool -I lanplus -H 带外IP -U 用户名 -P 密码 chassis bootdev pxe //设置仅下一次为pxe启动 
ipmitool -I lanplus -H 带外IP -U 用户名 -P 密码 power reset //重启 
ipmitool -I lanplus -H 带外IP -U 用户名 -P 密码 power off //关闭 
ipmitool -I lanplus -H 带外IP -U 用户名 -P 密码 power on //启动

ipmitool mc reset cold      #BMC 冷启动
---------------------------------------------------------------------------------------------------------------
/etc/dhcp/dhcpd.conf   #dhcp配置文件位置
/var/lib/dhcpd/dhcpd.leases  #dhcp租约文件位置

cat /var/lib/dhcpd/dhcpd.leases
failover peer "oob_peer" state {
  my state communications-interrupted at 3 2022/06/08 21:28:24;
  partner state normal at 0 2019/09/22 10:04:31;
  mclt 3600;
}
lease 172.16.1.1 {                  #已分配的IP
  starts 6 2022/07/16 06:39:32;        #起租时间 
  ends 6 2022/07/16 07:39:32;           #到期时间
  tstp 6 2022/07/16 07:39:32;           
  tsfp 6 2022/07/16 07:39:32;           
  atsfp 6 2022/07/16 07:39:32;
  cltt 6 2022/07/16 06:39:32;
  binding state free;                   #租约状态
  hardware ethernet 6c:92:bf:c0:a4:11;
  uid "\001l\222\277\300\244\021";
}
lease 172.16.1.2 {
  starts 2 2022/07/26 02:58:57;
  ends 2 2022/07/26 03:58:57;
  tstp 2 2022/07/26 04:28:57;
  tsfp 6 2022/07/16 08:19:27;
  cltt 2 2022/07/26 02:58:57;
  binding state active;                 #租约状态,IP已分配
  next binding state expired;
  hardware ethernet 6c:92:bf:ef:63:0c;
  uid "\001l\222\277\357c\014";         #客户端标识符
  client-hostname "IEI6C92BFEF630C";
}

----------------------------------------------------------------------------------------------
抓取特定主机的DHCP请求报文
tcpdump -i eth0 udp 67 and 68  //抓取交互的所有dhcp报文
tcpdump -i eth0 udp port 67 and 68 and ether host "MAC地址,格式xx-xx-xx-xx-xx-xx" //抓取指定MAC的报文
----------------------------------------------------------------------------------------------
尝试重新获取DHCP地址
可以尝试重新插拔网线,然后继续在OOB抓包观察是否有DHCP请求报文上来,或者登录问题NC执行如下命令通过ipmitool重置DHCP:
ipmitool lan set 1 ipsrc static  //先将带外网卡的工作模式从DHCP设置为静态
ipmitool lan set 1 ipsrc dhcp   //再从静态恢复成DHCP
ipmitool lan print 1 //改回dhcp方式后,稍等一会儿再看下是否获取到正常的ip
IPMITool问题排查
复制代码
复制代码
IPMI常用命令
ipmitool lan print 查看本地带外ip 
ipmitool fru list 查看本地sn号 
ipmitool -I lanplus -H $ip -U username -P 123456 fru print查看服务器的FRU信息 
ipmitool -I lanplus -H $ip -U username -P 123456 chassis bootdev pxe  ---手动触发PXE 

on/off/reset/cycle服务器的开机,关机,重启和循环

查看bmc网络信息:
ipmitool  -I lanplus -H (BMC的管理IP地址)  -U (BMC登录用户名) -P (BMC 登录用户名的密码) lan print 
重启后从PXE启动
ipmitool -I lanplus -H (BMC的管理IP地址)  -U (BMC登录用户名) -P (BMC 登录用户名的密码) chassis bootdev pxe
远程通过bmc开机
ipmitool -I lanplus -H (BMC的管理IP地址)  -U (BMC登录用户名) -P (BMC 登录用户名的密码) power on
远程通过bmc关机
ipmitool -I lanplus -H (BMC的管理IP地址)  -U (BMC登录用户名) -P (BMC 登录用户名的密码) power off
远程通过bmc重启
ipmitool -I lanplus -H (BMC的管理IP地址)  -U (BMC登录用户名) -P (BMC 登录用户名的密码) power reset
显示BMC版本信息
ipmitool -I lanplus -H (BMC的管理IP地址)  -U (BMC登录用户名) -P (BMC 登录用户名的密码) mc info                                    
通过bmc获取sn信息
ipmitool  -I lanplus -H (BMC的管理IP地址)  -U (BMC登录用户名) -P (BMC 登录用户名的密码) fru list

添加用户名方法
查看user list,确认哪些id没有被使用
ipmitool -I lanplus -H (BMC的管理IP地址) -U username -P 123456 user list
添加用户名ID和密码
ipmitool -I lanplus -H (BMC的管理IP地址) -U username -P 123456 user set name 7  hello
设置用户密码
ipmitool -I lanplus -H (BMC的管理IP地址) -U username -P 123456 user set password userid  密码
添加管理员权限
ipmitool -I lanplus -H (BMC的管理IP地址) -U username -P 123456 user priv 7 4
启用添加的用户
ipmitool -I lanplus -H (BMC的管理IP地址)-U username -P 123456 user enable 7

IPMI批量命令
for currentMachine in $(cat iplist | xargs); do echo "Checking ${currentMachine} ..."; ipmitool -I lanplus -H ${currentMachine} -U [$Use] -P [$Password] power status; done
IPMI常用命令
复制代码

 

 

BMC使用静态IP,物理机上下线,并不会影响该静态IP的使用;可能是该模块没有被下线的关系吧

复制代码
服务器硬件:dmesg、dmidecode(查看SN)、lspci、hwconfig 
---------------------------------------------------
dmesg 
    dmesg命令会读取内核运行过程中使用printk打印出来的信息.对于一些关键的内核事件里面都会进行打印,比如磁盘的识别,网卡的识别,内核模块的加载/卸载,文件系统的问题等等.当发现系统出问题了,可以看看里面的信息. 因为printk输出的信息是到一个ring buffer里面的,如果buffer满了,后面的信息会将前面的信息覆盖,如果机器的运行时间很长了,那么会发现机器开始启动的信息就没有了. 显示开机信息
    dmesg | grep -i error //显示开机报错信息
dmidecode 
    dmidecode会按照SMBIOS标准去读取机器的bios信息,从里面得到一些有用的值. 
    dmidecode -s system-serial-number //查看SN 
    dmidecode -t 17可以得到内存信息,其他的可以去看帮助文档
lspci 
    lspci命令会根据PCI总线协议,遍历整个PCI设备树,将标准的PCI寄存器的值从各个PCI设备中读出来.并将得到的值和自己内部维护的数据进行匹配,输出文本格式的信息. 一般会使用lspci -nn命令,这样PCI设备的设备号/厂商号就会被输出来.根据这个设备号/厂商.我们可以去/lib/modules/`uname -r`/modules.pcimap文件中搜索这个设备号和厂商号,就知道当前机器上是不是有模块可以支持这个硬件了.    
    还有一个使用较多的是lspci -v,其最后会输出设备使用的驱动模块的名字,在定位硬件驱动问题的时候特别有用.
hwconfig 
    hwconfig命令可以看到当前机器的各种硬件信息. 这个命令可能没有,需要安装tops-hwconfig包.
服务器硬件:dmesg、dmidecode(查看SN)、lspci、hwconfig
复制代码

 

复制代码
nmcli(网卡配置及查看命令);图形配置工具nm-connection-editor;字符界面配置工具nmtui;nmtui-connect;nmtui-edit;nmtui-hostname
===============================================================================================
nmcli命令是redhat7或者centos7之后的命令,该命令可以完成网卡上所有的配置工作,并且可以写入配置文件,永久生效。
centos6之前则直接修改配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE,达到完成网卡配置的目的

nmcli命令的用法是:1、查看接口信息;2、查看连接信息;3、启动或停止接口;4、创建连接;5、修改连接;6、删除连接。
    nmcli device                    #查看和管理网络接口
    nmcli connection                #启用、停止、管理网络连接
-------------------------------------------
0.在本地直接修改配置文件ifcfg-HomeEth0,修改信息是不会自动导入到内存的,这时需要进行reload
    nmcli connection reload        

1、查看接口信息
    nmcli device show
    nmcli device status

2、查看连接信息
    nmcli connection show              #默认显示所有网络连接方案
    nmcli connection show --active     #显示活动连接
    nmcli c show                       #命令的选项和参数支持缩写
    nmcli connection show HomeEth0     #查看网络连接的详细配置

3、启动或停止接口
    nmcli connection up HomeEth0        #启用网络接口方案,即启用ifcfg-HomeEth0配置文件
    nmcli connection down HomeEth0      #停用网络接口方案,即停用ifcfg-HomeEth0配置文件,注意会自动切换到其他网络接口方案
    nmcli device disconnect eth0        #断开网络连接建议使用该命令,该命令相当于拔网线,断开后不会进行主动连接
    nmcli device connect eth0

4、创建连接(创建链接后,即在本地生成了配置文件ifcfg-IFACE )
    创建连接的意思,相当于在/etc/sysconfig/network-scripts/目录下创建了一个ifcfg-${con-name}文件,创建多个连接,则会同时创建多个文件。
    nmcli connection add con-name homeEth0 ifname eth0 type ethernet ipv4.method auto connection.autoconnect yes #dhcp自动获取ip

5、修改连接(注意:修改完不是直接生效的,需要重新up)
    nmcli connection modify homeEth0 con-name HomeEth0  #改名
    nmcli connection modify HomeEth0 ipv4.addresses 192.168.1.77 ipv4.gateway 192.168.1.1 ipv4.dns 192.168.1.1 ipv4.method manual #静态IP
    nmcli connection modify HomeEth0 ip4 10.0.0.1   #并不是修改IP,而是新增了IP。。。
    nmcli connection up HomeEth0  #注意:修改完不是直接生效的,需要重新up
    -----
    nmcli connection modify HomeEth0 ipv4.dns 10.0.0.2     #配置DNS
    nmcli connection modify HomeEth0 +ipv4.dns 10.0.0.3     #增加DNS
    nmcli connection up HomeEth0  #注意:修改完不是直接生效的,需要重新up

6、删除连接
    nmcli connection delete HomeEth0 

================================================================================================
图形配置工具
nm-connection-editor 
字符配置工具
nmtui;nmtui-connect;nmtui-edit;nmtui-hostname
system-config-network-tui(centos6;tab、方向键、F12等)
setup(操作按键:tab、方向键、空格键、F12)
nmcli(网卡配置及查看命令);图形配置工具nm-connection-editor;字符界面配置工具nmtui;nmtui-connect;nmtui-edit;nmtui-hostname
复制代码

 

 

复制代码
screen命令
screen为多重视窗管理程序。此处所谓的视窗,是指一个全屏幕的文字模式画面。
通常只有在使用telnet登入主机或是使用老式的终端机时,才有可能用到screen程序。
    功能1:相当于字符界面的远程协助工具
    功能2:避免crt等工具的ssh远程连接断开,导致一些长时间的操作被停止,例如长时间ping包等

screen命令:
    -S<作业名称>  指定screen作业的名称。
    -x  恢复之前离线的screen作业。
    -ls或--list  显示目前所有的screen作业。
    -r<作业名称>  恢复离线的screen作业。
    -A  将所有的视窗都调整为目前终端机的大小。
    -d<作业名称>  将指定的screen作业离线。
    -h<行数>  指定视窗的缓冲区行数。
    -m  即使目前已在作业中的screen作业,仍强制建立新的screen作业。
    -R  先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
    -s<shell>  指定建立新视窗时,所要执行的shell。
    -v  显示版本信息。
    -wipe  检查目前所有的screen作业,并删除已经无法使用的screen作业。

----------------------------------------------------------------
创新新的screen session
    screen -S SCREEN_SESSION
查看系统上的所有screen session
    screen -ls
回到指定的screen session
    screen -r SCREEN_SESSION #注意:只有当session状态为detach才能被恢复连接,否则会报找不到session;
    使用命令screen -d SCREEN_SESSION ,再使用screen -r SCREEN_SESSION 回到session
screen session 共享屏幕模式
    screen -x SCREEN_SESSION
通过command结束screen session
    screen -X -S SCREEN_SESSION quit
以上操作除了新建session,其余的命令session_name都可以用id替代

screen session界面的操作
    exit 退出并关闭当前的一个screen会话
    Ctrl+a c -> 创建一个新的运行shell的窗口并切换到该窗口
    Ctrl+a 0..9 -> 切换到第 0..9 个 window
    Ctrl+a [Space] -> 由视窗0循序切换到视窗9
    Ctrl+a d -> detach,(先按ctrl+a,再按ctrl+d)暂时离开当前session,将目前的 screen session (可能含有多个 windows) 丢到后台执行,并会回到还没进 screen 时的状态,此时在 screen session 里,每个 window 内运行的 process (无论是前台/后台)都在继续执行,即使 logout 也不影响。
    Ctrl+a z -> 把当前session放到后台执行,用 shell 的 fg 命令则可回去。

https://blog.csdn.net/han0373/article/details/81352663
https://www.cnblogs.com/runtheworld/p/5659098.html
screen命令
复制代码

 

资源

复制代码
磁盘、分区、挂载
  # mount | column -t # 查看挂接的分区状态
  # fdisk -l # 查看所有分区
  # swapon -s # 查看所有交换分区
  # hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE # 查看启动时IDE设备检测状况


linux查看磁盘挂载的三种方法

    1.使用df命令(上面显示的挂载点/home/mt和她挂载的卷不在同一行,使用shell脚本分析非常麻烦。)
    2.使用mount命令,mount -l。这种方法的缺陷在于没有卷的大小,但是挂载点和挂载的卷在同一行。
    3.查看文件/etc/mtab。原理是,每新挂载一个卷基本上都会更新这个文件的,那么自然可以通过这个文件来查看挂载点和挂职的卷。但是,有时候是不可靠的:如果挂载时使用了-n选项,那么/etc/mtab文件里面就不会新挂载卷的信息。
磁盘、分区、挂载
复制代码

详细的挂载分区命令详见:第2章:磁盘和文件系统

 

复制代码
磁盘及文件的空间资源使用情况:df命令、du命令、dd命令
------------------------------------------------------------------------------------------------
df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
    必要参数:
    -a 全部文件系统列表
    -h 方便阅读方式显示
    -H 等于“-h”,但是计算式,1K=1000,而不是1K=1024
    -i 显示inode信息
    -k 区块为1024字节
    -l 只显示本地文件系统
    -m 区块为1048576字节
    --no-sync 忽略 sync 命令
    -P 输出格式为POSIX
    --sync 在取得磁盘信息前,先执行sync命令
    -T 文件系统类型
    选择参数:
    --block-size=<区块大小> 指定区块大小
    -t<文件系统类型> 只显示选定文件系统的磁盘信息
    -x<文件系统类型> 不显示选定文件系统的磁盘信息
    --help 显示帮助信息
    --version 显示版本信息

df              #显示磁盘使用情况
df -i           #以inode模式来显示磁盘使用情况
df -h           #以更易读的方式显示目前磁盘空间和使用情况 

df -t ext3      #显示指定类型磁盘
df -ia          #列出各文件系统的i节点使用情况
df -T           #列出文件系统的类型

------------------------------------------------------------------------------------------------
du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的
    -a或-all  显示目录中个别文件的大小。   
    -b或-bytes  显示目录或文件大小时,以byte为单位。   
    -c或--total  除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。 
    -k或--kilobytes  以KB(1024bytes)为单位输出。
    -m或--megabytes  以MB为单位输出。   
    -s或--summarize  仅显示总计,只列出最后加总的值。
    -h或--human-readable  以K,M,G为单位,提高信息的可读性。
    -x或--one-file-xystem  以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。 
    -L<符号链接>或--dereference<符号链接> 显示选项中所指定符号链接的源文件大小。   
    -S或--separate-dirs   显示个别目录的大小时,并不含其子目录的大小。 
    -X<文件>或--exclude-from=<文件>  在<文件>指定目录或文件。   
    --exclude=<目录或文件>         略过指定的目录或文件。    
    -D或--dereference-args   显示指定符号链接的源文件大小。   
    -H或--si  与-h参数相同,但是K,M,G是以1000为换算单位。   
    -l或--count-links   重复计算硬件链接的文件。  

du                  #列出当前目录下所有文件or目录占用的空间
du -h test          #方便阅读的格式显示
du log2012.log      #显示指定文件所占空间
du dir              #查看目录时,默认只显示目录
du -a dir           #-a查看目录时,显示目录以及包含的文件
du -ah test
du log30.tar.gz log31.tar.gz            #显示多个文件所占空间
du|sort -nr|more                        #按照空间大小排序
du -h  --max-depth=1                    #输出当前目录下各个子目录所使用的空间

------------------------------------------------------------------------------------------------
dd命令用于读取、转换并输出数据。
dd 可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。
    if=文件名:输入文件名,默认为标准输入。即指定源文件。
    of=文件名:输出文件名,默认为标准输出。即指定目的文件。
    ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。
    obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。
    bs=bytes:同时设置读入/输出的块大小为bytes个字节。
    cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。
    skip=blocks:从输入文件开头跳过blocks个块后再开始复制。
    seek=blocks:从输出文件开头跳过blocks个块后再开始复制。
    count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
    conv=<关键字>,关键字可以有以下11种:
        conversion:用指定的参数转换文件。
        ascii:转换ebcdic为ascii
        ebcdic:转换ascii为ebcdic
        ibm:转换ascii为alternate ebcdic
        block:把每一行转换为长度为cbs,不足部分用空格填充
        unblock:使每一行的长度都为cbs,不足部分用空格填充
        lcase:把大写字符转换为小写字符
        ucase:把小写字符转换为大写字符
        swap:交换输入的每对字节
        noerror:出错时不停止
        notrunc:不截短输出文件
        sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。
 
 
dd                  #dd命令默认接收标准输入,再输出标准输出,同时统计标准输入标准输出的数据
dd if=/dev/zero of=file count=10 bs=1024    #制作一个空文件file,块大小1024字节,共10个块,即文件大小10KB
dd if=/dev/zero of=file count=1024 bs=1M    #制作一个空文件file,块大小1MB,共1024个块,即文件大小1G
    /dev/zero文件代表一个永远输出 0的设备文件,使用它作输入可以得到全为空的文件。
dd if=testfile_2 of=testfile_1 conv=ucase   #把小写字符转换为大写字符
磁盘及文件的空间资源使用情况:df命令、du命令、dd命令
复制代码
复制代码
du与df的区别和联系

du,disk usage,是通过搜索文件来计算每个文件的大小,然后累加,du能看到的文件只是一些当前存在的,没有被删除的。他计算的大小就是,当前他认为存在的所有文件大小的累加和。

df,disk free,通过文件系统来快速获取空间大小的信息。当我们删除一个文件的时候,这个文件不是马上就在文件系统当中消失了,而是暂时消失了,当所有程序都不用时,才会根据OS的规则释放掉已经删除的文件。 df记录的是通过文件系统获取到的文件的大小,他比du强的地方就是能够看到已经删除 的文件,而且计算大小的时候,把这一部分的空间也加上了,更精确了。

当文件系统也确定删除了该文件后,这时候du与df就一致了。
du与df的区别和联系
复制代码

 

复制代码
查看cpu使用率;内存free命令
======================================================================================
cpu使用情况:
    一般就使用综合性资源的查看命令,不用cpu的单独查看命令
  uptime # 查看系统运行时间、用户数、负载
  cat /proc/loadavg # 查看系统负载
    
-----------------------------------------------------------------------
内存带宽计算
    内存带宽:内存与北桥芯片之间的数据传输率。
        单通道内存节制器一般都是64bit,即8字节
    内存带宽=内存总线频率*数据总线位数/8*1(如果是DDR内存,则*2)
    例如DDR2 667,运行频率为333MHz,则内存带宽=333*64/8*2=5328MB/s=5.4GB/s

-----------------------------------------------------------------------
内存使用情况:free,
  # free -m # 查看内存使用量和交换区使用量        估计这个就是以MB为单位
  # grep MemTotal /proc/meminfo # 查看内存总量
# grep MemFree /proc/meminfo # 查看空闲内存量

free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。
其实 free 命令中的信息都来自于 /proc/meminfo 文件。

    [root@yefeng ~]# free
                total        used        free      shared  buff/cache   available
    Mem:        1798688      542084      184768        2920     1071836     1044216
    Swap:             0           0           0

    Mem 行(第二行)是内存的使用情况。
    Swap 行(第三行)是交换空间的使用情况。
    total 列显示系统总的可用物理内存和交换空间大小。
    used 列显示已经被使用的物理内存和交换空间。
    free 列显示还有多少物理内存和交换空间可用使用。
    shared 列显示被共享使用的物理内存大小。
    buff/cache 列显示被 buffer 和 cache 使用的物理内存大小。
    available 列显示还可以被应用程序使用的物理内存大小。

示例:
    free -h:以适于人类可读方式显示内存信息。-h与其他命令最大不同是-h选项会在数字后面加上适于人类可读的单位
    free -b:以bytes为单位来显示内存的信息。
    free -k:以kb为单位来显示内存的信息。
    free -m:以m为单位来显示内存的信息。
    free -g:以G为单位来显示内存的信息。
    free -l:显示高低内存的利用率。
    free -t:显示linux的全部内存。
    free -s N:表示每隔N秒打印一次内存信息,直到用ctrl+c结束
    free -c N:表示重复打印内存信息N次

    free -hs 3: 以人类可读的方式,每隔3s打印一次内存信息,直到ctrl+c结束
    free -s 2 -c 4:每隔2秒打印一次内存信息,共打印4次



https://www.cnblogs.com/ultranms/p/9254160.html
查看cpu使用率;内存free命令
复制代码

 

参考链接
linux查看硬件配置命令 https://www.cnblogs.com/nineep/p/7011059.html

posted @   雲淡風輕333  阅读(281)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示