第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 -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

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问题排查 ================================================================== 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

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
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包.

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)

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
资源

磁盘、分区、挂载 # 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 #把小写字符转换为大写字符

du与df的区别和联系
du,disk usage,是通过搜索文件来计算每个文件的大小,然后累加,du能看到的文件只是一些当前存在的,没有被删除的。他计算的大小就是,当前他认为存在的所有文件大小的累加和。
df,disk free,通过文件系统来快速获取空间大小的信息。当我们删除一个文件的时候,这个文件不是马上就在文件系统当中消失了,而是暂时消失了,当所有程序都不用时,才会根据OS的规则释放掉已经删除的文件。 df记录的是通过文件系统获取到的文件的大小,他比du强的地方就是能够看到已经删除 的文件,而且计算大小的时候,把这一部分的空间也加上了,更精确了。
当文件系统也确定删除了该文件后,这时候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
参考链接
linux查看硬件配置命令 https://www.cnblogs.com/nineep/p/7011059.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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框架的用法!