MSIPO技术圈 首页 IT技术 查看内容

Linux基础系统设置与备份策略

2024-03-28

Linux基础系统设置

网络设置(手动设置与DHCP自动获取):nmcli、hostname

手动设置IP网络参数

假设你已经向你的ISP(网络服务提供商)获取了你的网络参数,基本上的网络参数需要这些信息:

  • method:manual(手动设置)
  • IP:192.168.100.10
  • netmask:255.255.255.0
  • gateway:192.168.100.1
  • DNS:114.114.114.114
  • hostname:study.csq.centos

上面的数据除了hostname是可以暂时不理会之外,如果你要上网,就得要上面的这些信息才行。然后通过 nmcli 来处理。

你得要先知道的是, nmcli 是通过一个名为【连接代号】的名称来设置是否要上网,而每个【连接代号】会有个【网卡名称】,这两个东西通常设置成相同名称。那就来先查看目前系统上默认有上面连接代号。

  1. nmcli general status:显示当前的网络状态,包括连接状态和DNS服务器地址。
  2. nmcli device status:显示系统上所有网络设备的状态,包括网卡名称、连接状态和IP地址。
  3. nmcli device show <设备名称>:显示指定网络设备的详细信息,包括MAC地址、IP地址、DNS服务器地址等。
  4. nmcli connection show:显示所有网络连接的详细信息,包括连接代号、连接类型和IP地址。
  5. nmcli connection add:添加一个新的网络连接。
  6. nmcli connection modify <连接代号>:修改现有网络连接的设置。
  7. nmcli connection delete <连接代号>:删除现有的网络连接。
  8. nmcli connection up <连接代号>:启动指定的网络连接。
  9. nmcli connection down <连接代号>:关闭指定的网络连接。
    以上是一些常用的nmcli命令,还有很多其他命令可用于管理网络设置。
[root@localhost ~]# nmcli connection show
NAME   UUID                                  TYPE      DEVICE 
ens34  09c7b5e9-805b-4928-9003-094eae5240fd  ethernet  ens34  
ens33  359ec964-ce76-40d2-8980-8780c8f80dd0  ethernet  --   
# NAME    就是连接代号,通常与后面的网卡 DEVICE 会一样
# UUID    这个是特殊的设备代码
# TYPE    就是网卡的类型,通常就是以太网卡
# DEVICE  当然就是网卡名称

从上面我们会知道有个ens34的连接代号,那么查一下这个连接代号都有哪些设置

[root@localhost ~]# nmcli connection show ens34
connection.id:                          ens34
connection.uuid:                        09c7b5e9-805b-4928-9003-094eae5240fd
connection.stable-id:                   --
connection.type:                        802-3-ethernet
connection.interface-name:              ens34
connection.autoconnect:                 是
connection.autoconnect-priority:        0
connection.autoconnect-retries:         -1 (default)
.......
.......
.......
ipv4.method:                            manual
ipv4.dns:                               114.114.114.114
ipv4.addresses:                         192.168.200.10/24
ipv4.gateway:                           192.168.200.2
........
........
........
IP4.ADDRESS[1]:                         192.168.200.10/24
IP4.GATEWAY:                            192.168.200.2
........
........
IP6.ADDRESS[1]:                         fe80::5f07:885b:f6d6:71f7/64
IP6.GATEWAY:                            --

如上表的输出,最下面的是大写的IP4、IP6指的是目前实际使用的网络参数,最上面的 connection 开头的部分则指的是连接状态。比较重要的参数如下:

  • connection.autoconnect [yes|no]:是否开机时启动这个连接,默认是yes
  • ipv4.method [auto|manual]:自动还是手动设置网络参数的意思
  • ipv4.dns [dns_server_ip]:就是填写DNS的地址
  • ipv4.addresses [IP/Netmask]:就是IP与netmask的集合,中间用斜线 / 来隔开
  • ipv4.gateway [gw_ip]:就是gateway的IP地址

所以,根据上面的设置选项,我们来将网络参数设置好

[root@localhost ~]# nmcli connection modify ens34 \
> connection.autoconnect yes \
> ipv4.method manual \
> ipv4.addresses 192.168.200.20/24 \
> ipv4.gateway 192.168.200.2 \
> ipv4.dns 8.8.8.8

最终执行【nmcli connection show ens34】 然后看最下方,是否为正确的设置值?如果是的话,那就设置好了

image-20230524170620958

image-20230524170725762

你会发现我们实际用IP还是原来的IP,我们可以执行nmcli connection up <连接代号>来生效网卡;也可以使用systemctl restart network 来重启网络服务

[root@localhost ~]# nmcli connection up ens34

自动获取IP参数

DHCP协议是一种网络协议,它可以自动分配IP地址给你的电脑或设备,让你的设备能够连接网络。如果你的网络是由DHCP协议所分配,那么你不需要去记忆上述提到的所有功能,只需要把设置中的ipv4.method项目填成auto即可。所以来看看,如果变成自动获取,网络设置要如何处理?

[root@localhost ~]# nmcli connection modify ens34 \
> connection.autoconnect yes \
> ipv4.method auto
[root@localhost ~]# nmcli connection up ens34
[root@localhost ~]# nmcli connection show ens34

自动获取IP要简单太多了。同时执行 modify 之后,整个配置文件就写入了,因此你无须使用 vim 去重新改写与设置。nmcli 确实不错。另外,上面的参数中,那个 connection、ipv4等,你也可以使用[TAB]去调用出来。也就是说,nmcli 有支持 bash-commplete 的功能,所以命令执行也很方便。

可以执行如下命令安装

[root@localhost ~]# yum install -y bash-completion

修改主机名

主机名的修改就得要通过 hostnamectl 这个命令来处理

hostnamectl [set-hostname] NAME
  1. 显示目前的主机名称与相关信息

    [root@localhost ~]# hostnamectl 
       Static hostname: localhost.localdomain             # 这就是主机名称
             Icon name: computer-vm
               Chassis: vm
            Machine ID: 567928b865d945a8a3c7211006b3ba40
               Boot ID: 61e7c5dfdc194da58102b6271d530da0
        Virtualization: vmware
      Operating System: CentOS Linux 7 (Core)            # 操作系统名称
           CPE OS Name: cpe:/o:centos:centos:7
                Kernel: Linux 3.10.0-1160.el7.x86_64     # 内核版本也提供
          Architecture: x86-64                           # 硬件架构也提供
    
  2. 尝试修改主机名称为 zzh 之后再改回来

    [root@localhost ~]# hostnamectl set-hostname zzh
    [root@localhost ~]# cat /etc/hostname 
    zzh
    # 可以使用reboot重启主机生效主机名,也可以使用bash命令生效主机名
    [root@localhost ~]# hostnamectl set-hostname localhost
    [root@localhost ~]# cat /etc/hostname 
    localhost
    

日期与时间设置:timedatectl、ntpdate

date 命令可以用来设置系统的日期和时间,但是如果要改变系统的时区,需要使用另外的命令来完成。在 Linux 系统中,时区信息通常保存在 /usr/share/zoneinfo 目录下,每个时区都有一个对应的文件。要改变系统的时区,可以使用 timedatectl 命令。

时区的显示与设置

timedatectl  [command]
选项:
list-timezones      列出系统上所有支持的时区名称
set-timezone        设置时区位置
set-time            设置时间
set-ntp             设置网络校时系统
  1. 显示目前的时区与时间等信息

    [root@zzh ~]# timedatectl 
          Local time: 三 2023-05-24 19:36:11 CST
      Universal time: 三 2023-05-24 11:36:11 UTC
            RTC time: 三 2023-05-24 11:36:11
           Time zone: Asia/Shanghai (CST, +0800)
         NTP enabled: yes
    NTP synchronized: yes
     RTC in local TZ: no
          DST active: n/a
    
  2. 显示出是否有 New_York 时区?若有请将目前的时区更新一下

    [root@zzh ~]# timedatectl list-timezones |grep -i new
    America/New_York
    America/North_Dakota/New_Salem
    [root@zzh ~]# timedatectl set-timezone "America/New_York"
    [root@zzh ~]# timedatectl 
          Local time: 三 2023-05-24 07:40:15 EDT
      Universal time: 三 2023-05-24 11:40:15 UTC
            RTC time: 三 2023-05-24 11:40:15
           Time zone: America/New_York (EDT, -0400)
         NTP enabled: yes
    NTP synchronized: yes
     RTC in local TZ: no
          DST active: yes
    
  3. 最后改回时区

    [root@zzh ~]# timedatectl set-timezone "Asia/Shanghai"
    

时间的调整

当我们虚拟机时间显示不对的时候,我们就需要来调整一下时间,time格式为【yyyy-mm-dd HH:MM】

[root@zzh ~]# timedatectl set-time "2023-5-24 19:45"
Failed to set time: Automatic time synchronization is enabled

显示这个错误就代表你开启了时间同步 如果你要修改时间的话就要关闭时间同步

关闭时间同步来进行测试,测试完成后,再开启时间同步(NTP)

[root@zzh ~]# timedatectl set-ntp false
[root@zzh ~]# timedatectl 
      Local time: 三 2023-05-24 19:54:53 CST
  Universal time: 三 2023-05-24 11:54:53 UTC
        RTC time: 三 2023-05-24 11:54:53
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: no
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a
# 可以看到时间同步已经关闭了
[root@zzh ~]# timedatectl set-time "2023-5-23 20:00"
[root@zzh ~]# timedatectl 
      Local time: 二 2023-05-23 20:00:02 CST
  Universal time: 二 2023-05-23 12:00:02 UTC
...
# 修改成功
[root@zzh ~]# timedatectl set-ntp true
# 然后再将时间同步开启

用ntpdate手动校时

ntpdate 命令可以手动从 NTP 服务器上获取时间并同步到本地系统。下面是使用 ntpdate 命令手动校时的步骤。

  1. 安装 ntpdate 命令
    在大多数 Linux 发行版中,ntpdate 命令默认已经安装。如果没有安装,可以使用以下命令安装:
[root@zzh ~]# yum install -y ntpdate
  1. 查找可用的 NTP 服务器
    可以使用 ntpdate -q 命令查询可用的 NTP 服务器。例如,查询 cn.pool.ntp.org NTP 服务器的时间:

cn.pool.ntp.org是ntp网络授时组织的中国授时源

[root@zzh ~]# ntpdate -q cn.pool.ntp.org
server 162.159.200.123, stratum 3, offset -0.002245, delay 0.24213
server 193.182.111.142, stratum 2, offset -0.003186, delay 0.32124
server 119.28.183.184, stratum 2, offset -0.000999, delay 0.10298
24 May 20:04:29 ntpdate[66877]: adjust time server 119.28.183.184 offset -0.000999 sec

其中,offset 表示本地时间和 NTP 服务器时间的差值,delay 表示本地系统和 NTP 服务器之间的延迟时间。
3. 同步时间
使用 ntpdate 命令同步时间。例如,使用 cn.pool.ntp.org NTP 服务器同步时间:

[root@zzh ~]# ntpdate cn.pool.ntp.org
24 May 20:13:50 ntpdate[81845]: adjust time server 84.16.73.33 offset -0.004202 sec
[root@zzh ~]# hwclock -w

该命令会从 cn.pool.ntp.org NTP 服务器上获取时间并同步到本地系统。
hwclock 则是将正确的时间写入你的 BIOS 时间记录内。

语系设置

LANG 和 local 命令可以用来查询当前系统的语系信息和变量,而 /etc/local.conf 文件是语系的配置文件。系统的语系和软件的语言数据可能不同,如果想知道当前系统的语系,可以使用 localectl 命令来查看。
localectl 命令是一个用于管理系统语系的工具。它可以查看和修改系统语系,包括默认语言、键盘布局、时区等信息。使用 localectl 命令不需要编辑配置文件,更加方便。
例如,使用 localectl 命令查看当前系统的语系信息:

[root@zzh ~]# localectl 
   System Locale: LANG=zh_CN.UTF-8
       VC Keymap: cn
      X11 Layout: cn
[root@zzh ~]# locale    # 下面则是【当前这个软件的语系】信息
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"

其中,System Locale 表示系统的默认语言,VC Keymap 表示系统的键盘布局,X11 Layout 表示系统的图形界面键盘布局。
如果想修改系统的语系,可以使用 localectl set-locale 命令,例如:

[root@localhost ~]# localectl set-locale LANG=en_US.UTF-8
[root@localhost ~]# localectl 
   System Locale: LANG=en_US.UTF-8
       VC Keymap: cn
      X11 Layout: cn

这个命令会将系统的默认语言设置为 en_US.UTF-8。

防火墙简易设置

防火墙其实是一种网络数据的过滤方式,它可以根据你的服务器启动的服务来设置是否开放,也能够针对你信任的用户开放。由于目前 Centos 7 的默认防火墙机制为 firewalld,它的管理界面主要是通过命令行 firewall-cmd 这个详细的命令。我们用图形界面来介绍防火墙的相关内容

要启动防火墙的图形管理界面,你当然就得要先登录 X 才行。然后到【应用程序】>【杂项】>【防火墙】给它点下去。

image-20230524225648238

配置: 【运行时】与【永久】的差异

image-20230524225926051

如图箭头 1 处,基本上,防火墙的规则拟定大概有两种情况,一种是【暂时用来执行】的退则,一种则是【永久】的规则。一般来说,刚刚启动防火墙时,这两种规则会一模一样。不过,后来可能你会暂时测试而加上几条规则,如果该规则没有写入【永久】区的话,那下次重新加载防火墙时,该规则就会消失。所以请特别注意:【不要只是在运行时记录区增加规则设置,而是必须要永久记录区增加规则行才行】

区域:根据不同的环境所设计的网络区域

在计算机网络中,不同的网络环境可能需要划分不同的区域,以便更好地管理和保护网络资源。这些划分出的区域就是所谓的网络区域。
举个例子,一个大型企业的网络环境可能包括多个部门、多个子公司或者多个地区的分支机构,这些部门、子公司或分支机构之间可能需要进行一定的隔离,以保证各自的网络安全。为了实现这一目的,可以将网络划分为不同的区域,比如内部网络区域、外部网络区域以及 DMZ(即“隔离区域”)等。在这些区域之间设置相应的网络设备(如防火墙、路由器、交换机等),通过规定不同区域之间的访问规则,来实现网络资源的访问控制和安全保护。
总之,网络区域是根据不同的网络环境所设计的,用于实现网络资源的管理、保护和访问控制的一种组织方式。

相关设置项目

4号箭头的地方是重点。防火墙规则通常需要设置的地方有:

  1. 服务:服务是指在网络上运行的应用程序,例如HTTP、FTP、SSH等。在设置防火墙规则时,我们需要指定哪些服务是允许访问的,哪些是禁止访问的。
  2. 端口:端口是指网络应用程序使用的通信端口,例如HTTP协议默认使用的端口是80,SSH协议默认使用的端口是22。在设置防火墙规则时,我们需要指定哪些端口是允许访问的,哪些是禁止访问的。
  3. 协议:协议是指网络通信中使用的协议,例如TCP、UDP等。在设置防火墙规则时,我们需要指定允许或禁止使用哪些协议进行通信。
  4. 源端口:源端口是指发起网络通信的应用程序使用的端口号。在设置防火墙规则时,我们可以指定允许或禁止使用哪些源端口进行通信。
  5. 伪装:伪装是一种隐藏机制,可以使网络通信看起来像是从防火墙本身发出的,从而增强网络安全性。在设置防火墙规则时,我们可以使用伪装功能来隐藏内部网络的真实IP地址和端口号。
  6. 端口转发:端口转发是一种网络通信机制,它可以将来自外部网络的请求转发到内部网络中的指定主机或端口。在设置防火墙规则时,我们可以使用端口转发功能来实现网络访问的转发和控制。
  7. ICMP过滤器:ICMP是一种网络协议,用于在网络中传递控制信息和错误信息。在设置防火墙规则时,我们可以使用ICMP过滤器来控制网络中的ICMP消息,例如禁止PING等操作。
  8. 富规则:富规则是一种高级的防火墙规则,它可以根据不同的协议、源IP地址、目标IP地址、端口号等条件来设置访问策略。富规则可以更加灵活地控制网络访问,但设置起来也更加复杂。
  9. 网卡:网卡是指网络设备的物理或逻辑接口,例如网卡、虚拟网卡等。在设置防火墙规则时,我们需要指定哪些网卡是允许访问的,哪些是禁止访问的。
  10. 来源:在设置防火墙规则时,我们需要指定允许或禁止哪些来源访问网络,例如指定允许内部网络访问,禁止外部网络访问等。

现在我们的Linux服务器是要作为下面几个重要服务于相关的域名功能,你该如何配置防火墙?

  • 开放ssh、www、ftp、https 等服务的常规端口
  • 同时与前面几章搭配,还需要开放222端口与555端口
  • 局域网络 192.168.200.0/24 是我们目前想要直接开放这段域名对我们服务器的连接

请注意,因为未来都要持续生效,所以请一定要到【永久】的防火墙设置项目里面去处理。不然只有这次开机期间会生效而已。

首先处理一下常规服务器开放,不过因为永久设置比较重要,因此你得要先经过授权认证才行

image-20230524233334073

如下图所示,你要先确认箭头 1、2 、3的地方是正确的,如何再直接勾选 ftp、http、https、ssh即可。因为ssh默认被勾选就不再展示。比较特别的是勾选就生效,没有【确认】键

image-20230524234002309

接下来按下【端口】的页面,如下图,按下【添加】之后出现的窗口当中填写你需要的端口号,通常也就是tcp协议保留它不动,之后按下【确定】即可

image-20230524234114371

因为我们有两个端口要增加,所以请将222与555端口也添加,如下图

image-20230524234213362

最后一个要处理的是局域网络开放,这时你可以这样执行命令

[root@localhost ~]# firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.200.0/24" accept"
success
[root@localhost ~]# firewall-cmd --reload
success

最后一行很重要,我们上面的图例通通是作用于【永久】设置中,只是修改了配置文件,要让这些设置实际生效,那么就得要使用上面的reload,让防火墙系统整个完整的加载一行就行了。

代码解释

  1. firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.200.0/24" accept"
    这条命令的作用是向防火墙添加一条永久规则,允许来自IP地址段为192.168.200.0/24的所有主机访问服务器。其中,–permanent选项表示将规则永久保存在防火墙中,add-rich-rule是添加富规则的命令,"rule family=“ipv4” source address=“192.168.200.0/24” accept"是具体的规则内容,它指定了规则的IP版本为IPv4,源IP地址为192.168.200.0/24,动作为允许访问。
  2. firewall-cmd --reload
    这条命令的作用是重新加载防火墙规则,使刚刚添加的永久规则生效。

执行这两条命令后,就可以允许来自192.168.200.0/24地址段的主机访问服务器

Linux 服务器硬件数据的收集:dmidecode、lspci、lsusb、iostat

在Linux服务器上,可以使用一些命令来收集硬件数据,比如:

dmidecode

dmidecode是一款在Linux系统中用于获取计算机硬件系统信息的工具,可以获取到主板、BIOS、CPU、内存、硬盘等硬件信息。下面对dmidecode命令进行详解:

dmidecode [options]

常用选项:

  • -t :指定要显示的硬件类型,如1表示显示主板信息,2表示显示内存信息,4表示显示CPU信息等。
  • -s :指定要显示的硬件关键字,如system-manufacturer表示显示系统制造商。
  • -u :以二进制格式显示DMI数据。
  • -q :只显示硬件数据,不显示额外信息。

dmidecode支持的数字参数如下:

编号信息
0计算机的基本输入输出系统,是计算机启动时加载的程序
1计算机系统的基本信息,如制造商、型号、序列号等
2主板的详细信息,如制造商、型号、序列号等
3机箱的详细信息,包括制造商、型号、序列号等
4CPU 的详细信息,包括制造商、型号、频率等
5内存控制器的详细信息,包括制造商、型号、频率等
6内存模块的详细信息,包括制造商、型号、容量等
7CPU 缓存的详细信息,包括缓存级别、容量等
8接口连接器的详细信息,如USB、SATA、PCI-E等
9系统插槽的详细信息,如PCI-E插槽、内存插槽等
10主板上的集成设备,如网卡、声卡等
11OEM厂商的信息
12系统配置选项的详细信息,如BIOS设置等
13BIOS的语言信息
14组关联信息
15系统事件日志信息
16物理内存信息
17内存设备的详细信息,如制造商、型号、容量等
1832位内存错误信息
19内存阵列映射地址的信息
20内存设备映射地址的信息
21内置指针设备的信息,如触摸板、指点杆等
22便携电池的信息
23系统重置信息
24硬件安全信息,如TPM
25系统电源控制信息
26电压探头的信息
27散热设备的信息,如CPU散热器、机箱风扇等
28温度探头的信息
29电流探头的信息
30远程访问信息
31启动完整性服务的信息
32系统启动信息
3364位内存错误信息
34管理设备的信息
35管理设备组件的信息
36管理设备阈值数据的信息
37内存通道的信息,如单通道、双通道等
38IPMI设备的信息
39电源的信息
40额外的信息
41扩展的集成设备信息
42管理控制器主机接口的信息

显示BIOS版本号

[root@localhost ~]# dmidecode -s bios-version
6.00

显示整个系统的硬件信息,例如主板型号

[root@localhost ~]# dmidecode -t 2
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 2.7 present.

Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
        Manufacturer: Intel Corporation
        Product Name: 440BX Desktop Reference Platform
        Version: None
        Serial Number: None
        Asset Tag: Not Specified
        Features: None
        Location In Chassis: Not Specified
        Chassis Handle: 0x0000
        Type: Unknown
        Contained Object Handles: 0

显示整个系统的CPU信息

[root@chenshiren ~]# dmidecode -t 4
......
......
......
Handle 0x0082, DMI type 4, 42 bytes
Processor Information
        Socket Designation: CPU #127
        Type: Central Processor
        Family: Unknown
        Manufacturer: GenuineIntel
        ID: EA 06 00 00 FF FB 8B 1F
        Version: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
        Voltage: 3.3 V
        External Clock: Unknown
        Max Speed: 30000 MHz
        Current Speed: 2600 MHz
        Status: Populated, Disabled By BIOS
        Upgrade: ZIF Socket
        L1 Cache Handle: 0x0112
        L2 Cache Handle: 0x0192
        L3 Cache Handle: Not Provided
        Serial Number: Not Specified
        Asset Tag: Not Specified
        Part Number: Not Specified
        Core Count: 4
        Core Enabled: 4
        Characteristics:
                64-bit capable
                Multi-Core
                Execute Protection

lspci

lspci是Linux系统中的一个命令,它可以列出计算机中所有PCI设备的信息,包括显示卡、声卡、网卡等等。可以理解为,lspci是一个工具,它帮助我们查看计算机中的硬件设备。

lspci [-vvn]
选项:
-v:显示更多的PCI设备的详细信息
-vv:比-v还要更详细的详细信息
-n:直接查看PCI的ID而不是厂商名称
-s:只显示指定设备的信息

去看系统内的PCI相关设备

[root@localhost ~]# lspci 
00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 01)
00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 01)
00:07.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 08)
00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)
00:07.7 System peripheral: VMware Virtual Machine Communication Interface (rev 10)
00:0f.0 VGA compatible controller: VMware SVGA II Adapter
00:10.0 SCSI storage controller: Broadcom / LSI 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 01)
00:11.0 PCI bridge: VMware PCI bridge (rev 02)
00:15.0 PCI bridge: VMware PCI Express Root Port (rev 01)
00:15.1 PCI bridge: VMware PCI Express Root Port (rev 01)
00:15.2 PCI bridge: VMware PCI Express Root Port (rev 01)
00:15.3 PCI bridge: VMware PCI Express Root Port (rev 01)
00:15.4 PCI bridge: VMware PCI Express Root Port (rev 01)
00:15.5 PCI bridge: VMware PCI Express Root Port (rev 01)
00:15.6 PCI bridge: VMware PCI Express Root Port (rev 01)
00:15.7 PCI bridge: VMware PCI Express Root Port (rev 01)
00:16.0 PCI bridge: VMware PCI Express Root Port (rev 01)
00:16.1 PCI bridge: VMware PCI Express Root Port (rev 01)
00:16.2 PCI bridge: VMware PCI Express Root Port (rev 01)
00:16.3 PCI bridge: VMware PCI Express Root Port (rev 01)
00:16.4 PCI bridge: VMware PCI Express Root Port (rev 01)
00:16.5 PCI bridge: VMware PCI Express Root Port (rev 01)
00:16.6 PCI bridge: VMware PCI Express Root Port (rev 01)
00:16.7 PCI bridge: VMware PCI Express Root Port (rev 01)
00:17.0 PCI bridge: VMware PCI Express Root Port (rev 01)
00:17.1 PCI bridge: VMware PCI Express Root Port (rev 01)
00:17.2 PCI bridge: VMware PCI Express Root Port (rev 01)
00:17.3 PCI bridge: VMware PCI Express Root Port (rev 01)
00:17.4 PCI bridge: VMware PCI Express Root Port (rev 01)
00:17.5 PCI bridge: VMware PCI Express Root Port (rev 01)
00:17.6 PCI bridge: VMware PCI Express Root Port (rev 01)
00:17.7 PCI bridge: VMware PCI Express Root Port (rev 01)
00:18.0 PCI bridge: VMware PCI Express Root Port (rev 01)
00:18.1 PCI bridge: VMware PCI Express Root Port (rev 01)
00:18.2 PCI bridge: VMware PCI Express Root Port (rev 01)
00:18.3 PCI bridge: VMware PCI Express Root Port (rev 01)
00:18.4 PCI bridge: VMware PCI Express Root Port (rev 01)
00:18.5 PCI bridge: VMware PCI Express Root Port (rev 01)
00:18.6 PCI bridge: VMware PCI Express Root Port (rev 01)
00:18.7 PCI bridge: VMware PCI Express Root Port (rev 01)
02:00.0 USB controller: VMware USB1.1 UHCI Controller
02:01.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)
02:02.0 Multimedia audio controller: Ensoniq ES1371/ES1373 / Creative Labs CT2518 (rev 02)
02:03.0 USB controller: VMware USB2 EHCI Controller

不必加任何参数,就能够显示出目前主机上面的各个PCI设备

如果你要知道以太网的详细信息

[root@localhost ~]# lspci -s 00:03.0 -vv

/usr/share/hwdata/pci.ids

其实那个就是PCI的标准ID与品牌名称的对于表。此外,刚刚我们使用lspci时,其实所有数据都是从 /proc/bus/pci/ 目录中获取的。不过由于硬件发展太过迅速,所以你的 pci.ids 文件可能会落伍,可以使用下面的方式来在线更新你的对应文件

[root@localhost ~]# update-pciids

lsusb

lsusb命令用于列出系统中所有的USB设备信息,包括USB控制器、USB设备及其属性等。具体使用方法如下:

lsusb [-t]
选项:
-t:以树形结构显示设备信息
-s [bus]:[device]:只显示指定总线(bus)和设备(device)的信息,例如 lsusb -s 001:002。
-d [vendor]:[product]:只显示指定供应商(vendor)和产品(product)的信息,例如 lsusb -d 045e:00cb。

列出目前主机USB各端口状态

[root@localhost ~]# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 004: ID 0e0f:0008 VMware, Inc. 
Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

iostat

iostat是一个Linux系统性能监控工具,用于显示CPU、磁盘和tty设备的统计信息。

如果没有这个软件就执行如下命令安装它

yum install -y sysstat

iostat [选项] [间隔时间] [次数]
选项:
-c:显示CPU的统计信息
-d:显示磁盘的统计信息
-k:以KB为单位显示统计信息
-m:以MB为单位显示统计信息
-t:显示时间戳

显示一下目前整个系统的CPU与存储设备的状态

[root@localhost ~]# iostat 
Linux 3.10.0-1160.el7.x86_64 (localhost.localdomain)    2023年05月25日  _x86_64_        (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.28    0.00    0.87    0.00    0.00   98.85

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               1.26        24.06         8.13     545074     184191
scd0              0.00         0.05         0.00       1028          0

输出详解:

  1. 第一行:显示Linux系统的版本信息、当前日期和时间、CPU的架构和数量。

  2. 第二行:显示CPU的利用率统计信息,包括以下各列:

    %user:表示用户进程占用CPU时间的百分比。

    %nice:表示“优先级较高的进程”占用CPU时间的百分比。

    %system:表示内核占用CPU时间的百分比。

    %iowait:表示CPU等待I/O操作完成的时间占用的百分比。

    %steal:表示虚拟机监控程序(如KVM)偷取CPU时间的百分比。

    %idle:表示CPU空闲时间的百分比。

  3. 第三行:显示磁盘I/O统计信息,包括以下各列:

    Device:表示磁盘设备的名称。

    tps :平均每秒钟的传送次数,与数据传输【次数】有关,非容量

    KB_read/s:开机到现在平均的读取单位

    KB_wrtn/s:开机到现在平均的写入单位

    KB_read:开机到现在,总共读出来的数据

    KB_wrtn:开机到现在,总共写入的数据

仅针对sda,每两秒检测一次,并且共检测三次存储设备

[root@localhost ~]# iostat -d 2 3 sda
Linux 3.10.0-1160.el7.x86_64 (localhost.localdomain)    2023年05月25日  _x86_64_        (8 CPU)

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               1.24        23.25         8.07     545074     189201

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               1.00         0.00        10.75          0         21

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.00         0.00         0.00          0          0

仔细看看,如果是有检测次数的情况,那么第一次显示的是【从开机到现在的数据】

第二次以后所显示的数据则代表两次检测之间的系统传输值,举例来说,上面的信息中,

第二次显示的数据,则是两秒钟内(本案例)系统的总传输量的平均值

了解磁盘的健康状态

其实Linux服务器最重要的就是【数据安全】,而数据都是放在磁盘当中的,所以,无时无刻了解以下你的磁盘健康状况,应该是个好习惯。我呢提提,你怎么知道你的磁盘是好还是坏?

smartctl是smartmontools软件包中的命令行工具,用于读取和显示磁盘的S.M.A.R.T(Self-Monitoring, Analysis and Reporting Technology)信息。S.M.A.R.T是一种嵌入在计算机硬件中的技术,可以在磁盘上记录各种故障预测和错误信息,从而提前预测磁盘故障并采取相应措施。

smartctl命令的基本语法如下:

smartctl [options] device

其中,device参数指定要显示S.M.A.R.T信息的磁盘设备,可以是设备文件名(如/dev/sda)、磁盘代号(如sda)或磁盘路径(如/sys/block/sda)。
下面是一些常用的选项和参数:

  • -a:显示磁盘的所有S.M.A.R.T信息。
  • -H:显示磁盘的健康状态
  • -i:显示磁盘的基本信息,包括制造商、型号、序列号、固件版本等。
  • -l error:显示磁盘的错误日志。
  • -t [testname]:执行磁盘的自测,testname参数指定自测的类型,如short(短自测)、long(长自测)等。

除了以上常用选项,smartctl命令还支持许多其他选项,可以使用“man smartctl”命令查看完整的手册。

用smartctl 显示完整的 /dev/sda 的信息

[root@localhost ~]# smartctl -a /dev/sdb 
smartctl 7.0 2018-12-30 r4883 [x86_64-linux-3.10.0-1160.el7.x86_64] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Vendor:               VMware,
Product:              VMware Virtual S
Revision:             1.0
User Capacity:        21,474,836,480 bytes [21.4 GB]
Logical block size:   512 bytes
Rotation Rate:        Solid State Device
Device type:          disk
Local Time is:        Thu May 25 16:08:23 2023 CST
SMART support is:     Unavailable - device lacks SMART capability.

=== START OF READ SMART DATA SECTION ===
Current Drive Temperature:     0 C
Drive Trip Temperature:        0 C

Error Counter logging not supported

Device does not support Self Test logging

查看磁盘的健康状态

[root@localhost ~]# smartctl -H /dev/sdb 
smartctl 7.0 2018-12-30 r4883 [x86_64-linux-3.10.0-1160.el7.x86_64] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Health Status: OK

Linux 备份要点

在Linux系统中,备份数据是非常重要的,特别是在生产环境中。以下是Linux备份的一些要点:

确定备份的目录和文件

Linux备份的目录和文件取决于用户需要备份的数据内容和重要性,以下是一些常见的备份目录和文件:

  1. /etc:包含系统配置文件,例如网络配置、用户账户信息、服务配置等。

  2. /home:包含用户主目录,其中包括用户的文档、音乐、视频、图片等文件。

  3. /var:包含系统日志、缓存文件、邮件、数据库等数据。

  4. /usr/local:包含用户安装的软件和应用程序。

  5. /root:root用户的主目录,其中包括root用户的文档、配置文件等。

  6. /opt:包含第三方软件和应用程序。

  7. /srv:包含服务数据,例如Web服务器的网站数据、FTP服务器的文件等。

  8. /boot:包含系统启动文件和内核文件。

  9. /lib&#x

相关阅读

热门文章

    手机版|MSIPO技术圈 皖ICP备19022944号-2

    Copyright © 2024, msipo.com

    返回顶部