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

文章目录

  • Linux基础系统设置
    • 网络设置(手动设置与DHCP自动获取):nmcli、hostname
    • 日期与时间设置:timedatectl、ntpdate
    • 语系设置
    • 防火墙简易设置
  • Linux 服务器硬件数据的收集:dmidecode、lspci、lsusb、iostat
  • 了解磁盘的健康状态
  • Linux 备份要点
    • 确定备份的目录和文件
    • 备份的种类、频率与工具的选择
      • 完整备份
      • 增量备份
      • 差异备份
      • 镜像备份
    • 定期备份
    • 远程备份的脚本
      • 使用rsync上传备份数据

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-vmChassis: vmMachine ID: 567928b865d945a8a3c7211006b3ba40Boot ID: 61e7c5dfdc194da58102b6271d530da0Virtualization: vmwareOperating System: CentOS Linux 7 (Core)            # 操作系统名称CPE OS Name: cpe:/o:centos:centos:7Kernel: 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 CSTUniversal time: 三 2023-05-24 11:36:11 UTCRTC time: 三 2023-05-24 11:36:11Time zone: Asia/Shanghai (CST, +0800)NTP enabled: yes
    NTP synchronized: yesRTC in local TZ: noDST 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 EDTUniversal time: 三 2023-05-24 11:40:15 UTCRTC time: 三 2023-05-24 11:40:15Time zone: America/New_York (EDT, -0400)NTP enabled: yes
    NTP synchronized: yesRTC in local TZ: noDST 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 CSTUniversal time: 三 2023-05-24 11:54:53 UTCRTC time: 三 2023-05-24 11:54:53Time zone: Asia/Shanghai (CST, +0800)NTP enabled: no
NTP synchronized: yesRTC in local TZ: noDST active: n/a
# 可以看到时间同步已经关闭了
[root@zzh ~]# timedatectl set-time "2023-5-23 20:00"
[root@zzh ~]# timedatectl Local time: 二 2023-05-23 20:00:02 CSTUniversal 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-8VC Keymap: cnX11 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-8VC Keymap: cnX11 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 InformationManufacturer: Intel CorporationProduct Name: 440BX Desktop Reference PlatformVersion: NoneSerial Number: NoneAsset Tag: Not SpecifiedFeatures: NoneLocation In Chassis: Not SpecifiedChassis Handle: 0x0000Type: UnknownContained Object Handles: 0

显示整个系统的CPU信息

[root@chenshiren ~]# dmidecode -t 4
......
......
......
Handle 0x0082, DMI type 4, 42 bytes
Processor InformationSocket Designation: CPU #127Type: Central ProcessorFamily: UnknownManufacturer: GenuineIntelID: EA 06 00 00 FF FB 8B 1FVersion: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHzVoltage: 3.3 VExternal Clock: UnknownMax Speed: 30000 MHzCurrent Speed: 2600 MHzStatus: Populated, Disabled By BIOSUpgrade: ZIF SocketL1 Cache Handle: 0x0112L2 Cache Handle: 0x0192L3 Cache Handle: Not ProvidedSerial Number: Not SpecifiedAsset Tag: Not SpecifiedPart Number: Not SpecifiedCore Count: 4Core Enabled: 4Characteristics:64-bit capableMulti-CoreExecute 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   %idle0.28    0.00    0.87    0.00    0.00   98.85Device:            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     189201Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               1.00         0.00        10.75          0         21Device:            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 CError Counter logging not supportedDevice 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:包含系统共享库文件。

  10. /mnt:包含挂载的文件系统或设备。

    当然,以上仅是一些常见的备份目录和文件,具体需要备份哪些目录和文件取决于用户需要保护的数据内容和重要性。

虽然Linux备份可以备份大部分的目录和文件,但有些目录和文件不应该被备份或者无法被备份,以下是一些不能备份的目录和文件:

  1. /proc和/sys:这些目录包含的是虚拟文件系统,其中的文件不是实际的文件而是系统内核的相关信息,无法被备份。

  2. /dev:这个目录包含的是设备文件,备份这些文件没有意义,因为它们不包含实际的数据。

  3. /run:这个目录包含的是运行时的系统信息,例如进程ID和锁文件,这些信息在系统重启后会被重新创建,无需备份。

  4. /tmp:这个目录包含的是临时文件,通常不需要备份。

  5. 已经被加密的文件:如果文件已经被加密,备份也没有意义,因为备份文件也会被加密,无法还原。

  6. 大文件或者已损坏的文件:备份大文件需要消耗大量的时间和存储空间,因此不建议备份过大的文件。如果文件已经损坏,备份也没有意义,因为备份文件也会是损坏的。

总之,不能备份的目录和文件通常是没有实际意义或者无法还原的文件,备份时需要注意排除这些文件,以避免浪费时间和存储空间。

备份的种类、频率与工具的选择

备份分为多种类型,根据不同的备份需求和数据类型,需要选择不同的备份类型,以下是常见的备份类型、备份频率和备份工具的选择:

完整备份

完整备份(Full backup)是指备份系统中所有的文件和目录,包括系统文件和用户文件。完整备份的优点是备份文件包含了所有的数据,恢复时速度较快;缺点是备份文件较大,备份时间较长。完整备份通常用于定期备份,例如每周或每月备份一次。
以下是一个小案例,介绍如何使用tar工具进行完整备份:
假设我们有一个Web服务器,其中有一个/var/www/html目录,存储了网站的所有静态文件和动态脚本。我们需要对该目录进行完整备份,以防止数据丢失。

  1. 使用tar命令进行备份:
tar -czvf /backup/html_backup.tar.gz /var/www/html# -c :表示创建新的备份文件
# -z :表示使用gzip压缩
# -v :表示显示详细信息
# -f :表示指定备份文件名和路径

该命令将/var/www/html目录下的所有文件和子目录打包成一个名为html_backup.tar.gz的压缩文件,并将其保存在/backup目录下。
2. 恢复备份文件:

tar -xzvf /backup/html_backup.tar.gz -C /# -z :表示使用gzip解压缩
# -x :表示从备份文件中恢复数据
# -v :表示显示详细信息
# -f :表示指定备份文件名和路径
# -C :示指定解压缩路径

该命令将html_backup.tar.gz文件解压缩,并将其恢复到根目录/下。

增量备份

image-20230525175736846

增量备份(Incremental backup)是指备份系统中自上次备份后新增或修改过的文件和目录,与完整备份不同,增量备份只备份最新的变更,因此备份文件较小,备份时间也较短。增量备份通常用于频繁备份,例如每天备份一次。
以下是一个小案例,介绍如何使用rsync工具进行增量备份:
假设我们有一个文件夹/data,其中存储了重要的数据文件,我们需要每天备份一次/data目录,以防止数据丢失。

  1. 使用rsync命令进行增量备份:
rsync -avz --delete /data /backup/data_backup/# -a :表示归档模式
# -v :示显示详细信息
# -z :表示使用gzip压缩传输
# --delete :表示删除目标目录中已经不存在的文件

该命令将/data目录的变更同步到/backup/data_backup目录中,第一次备份时,rsync会备份所有的文件,之后每天备份时,rsync只会备份新增或修改过的文件。备份完成后,目标目录/backup/data_backup中会保存最新的备份文件。
2. 恢复备份文件:
如果需要恢复备份文件,可以直接将备份文件复制回原始目录/data中,或者使用rsync命令进行恢复:

rsync -avz /backup/data_backup/ /data/

该命令将/backup/data_backup目录中的文件同步到/data目录中,-a表示归档模式,-v表示显示详细信息,-z表示使用gzip压缩传输。

差异备份

image-20230525180445426

差异备份是指备份系统中自上次备份以来新增或修改过的文件和目录,与上一次备份之间的差异。

差异备份只备份新增或修改的文件和目录,而不是备份整个文件系统。

以下是一个小案例,介绍如何使用xfsdump工具进行差异备份:
假设我们有一台服务器,其中存储了重要的数据文件,我们需要每天进行差异备份,以保留系统最新的变更,并避免备份文件过大。

  1. 安装xfsdump工具:
    xfsdump是一款用于备份和恢复XFS文件系统的工具,可以在大多数Linux发行版中找到。如果系统中没有安装该工具,可以使用以下命令进行安装:
yum install -y xfsdump
  1. 运行xfsdump进行备份:
    先进行完整备份
xfsdump -l 0 -L 'fullbackup' -M 'fullbackup' -f /backupdata/home.dump  /home
  • xfsdump:命令名称,表示使用xfsdump工具进行备份。
  • -l 0:备份级别为0,表示完全备份。
  • -L ‘fullbackup’:备份标签为’fullbackup’,用于标记备份文件。
  • -M ‘fullbackup’:备份模式为’fullbackup’,表示完全备份。
  • -f /backupdata/home.dump:备份结果保存到/backupdata/home.dump文件中。
  • /home:备份源路径,表示备份/home目录下的所有文件和子目录。
  1. 第一次进行差异备份
xfsdump -l 1 -L 'fullbackup-1' -M 'fullbackup-1' -f /backupdata/home.dump1  /home
  • xfsdump:命令名称,表示使用xfsdump工具进行备份。
  • -l 1:备份级别为1,表示增量备份。
  • -L ‘fullbackup-1’:备份标签为’fullbackup-1’,用于标记备份文件。
  • -M ‘fullbackup-1’:备份模式为’fullbackup-1’,表示差异备份。
  • -f /backupdata/home.dump1:备份结果保存到/backupdata/home.dump1文件中。
  • /home:备份源路径,表示备份/home目录下的所有文件和子目录。
  1. 恢复备份文件:

让/home整个恢复到原本的状态

xfsrestore -f /backupdata/home.dump -L  fullbackup /home

镜像备份

镜像备份是指将整个硬盘或分区的内容完整地复制到另一个硬盘或分区中,以实现数据的完全备份。镜像备份的优点是备份结果与原始数据完全相同,可以快速还原系统。但是,由于备份结果的大小与原始数据一致,因此备份时间较长,占用存储空间较大。
在Linux系统中,可以使用dd命令进行镜像备份。dd命令是一个强大的数据复制工具,可以将数据从一个文件或设备复制到另一个文件或设备中。
以下是一个使用dd命令进行镜像备份的例子:
假设我们要将/dev/sda磁盘的整个内容备份到/dev/sdb中:

dd if=/dev/sda of=/dev/sdb bs=4M conv=sync,noerror
  • sudo:使用管理员权限运行该命令;
  • if=/dev/sda:表示输入文件为/dev/sda,即备份源;
  • of=/dev/sdb:表示输出文件为/dev/sdb,即备份目标;
  • bs=4M:表示以4MB为单位进行数据块复制;
  • conv=sync,noerror:表示在出现读取错误时,使用同步模式继续复制,同时忽略读取错误。
    这条命令的作用是将/dev/sda整个磁盘的内容复制到/dev/sdb中,其中bs参数指定数据块大小为4MB,conv参数指定在出现读取错误时,使用同步模式继续复制,同时忽略读取错误。

定期备份

定期备份是指按照一定的时间间隔,定期对系统数据进行备份,以保证数据的安全性和可靠性。通过定期备份,可以避免因系统故障、病毒攻击等原因导致数据丢失或损坏的风险。在Linux系统中,可以使用cron定时任务来实现定期备份。
以下是一个使用cron定时任务实现每天定期备份的例子:

假设我们要在每天凌晨3点进行一次全盘备份,备份结果保存到/home/backup目录下:

  1. 创建备份脚本文件
    首先,我们需要创建一个备份脚本文件,例如/home/backup.sh,该脚本文件的内容如下:
#!/bin/bash
# 全盘备份
dd if=/dev/sda of=/home/backup/backup.img bs=4M conv=sync,noerror

该脚本文件的作用是将/dev/sda整个磁盘的内容备份到/home/backup/backup.img文件中,其中bs参数指定数据块大小为4MB,conv参数指定在出现读取错误时,使用同步模式继续复制,同时忽略读取错误。
2. 添加定时任务
接下来,我们需要使用cron定时任务来实现每天定期备份。可以使用以下命令打开cron编辑器:

sudo crontab -e

然后,在编辑器中添加以下行:

0 3 * * * /bin/bash /home/backup.sh

该行的含义是,在每天凌晨3点执行/home/backup.sh脚本文件进行备份。其中,0表示分钟数,3表示小时数,*表示任意日期,*表示任意月份,*表示任意星期几。最后,/bin/bash /home/backup.sh指定执行备份脚本文件。

远程备份的脚本

如果管理两台以上的Linux主机时,那么互相将对方的重要数据保存一份在自己的系统中也是个不错的想法。那么怎么保存?使用USB硬盘复制来吗?当然不是,你可以通过网络来处置。我们假设你已经有一台主机,这台主机的IP 是192.168.200.30 而且这台主机已经提供了 sshd这个网络服务了,接下里可以这样做。

使用rsync上传备份数据

要使用rsync你必须要在你的服务器上面获取某个账号使用权,并让该账号可以不用密码也登才行。

[root@server1 ~]# ssh-keygen
[root@server2 ~]# ssh-keygen 
[root@server2 ~]# ssh-copy-id  server1主机IP
[root@server1 ~]# ssh-copy-id  server2主机IP
# copy过程要输入对方主机的密码
# 当提示你可以使用 ssh 对面主机IP时即为配置成功

当你已经设置好了两个服务器可以不用密码都可以登录远程服务器,而同样的,你要让 /backup/weekly/ 整个备份到 /home/下面时,可以简单地这样做

[root@server2 ~]# vim /backup/rsync.sh 
#!/bin/bash
remotedir=/home
basedir=/backup/weekly
host=192.168.200.20
id=rootrsync -av -e ssh $basedir ${id}@${host}:${remotedir}

然后执行程序就可以远程备份了

[root@localhost ~]# sh /backuo/rsync.sh
sending incremental file list
weeklysent 5,244,244 bytes  received 35 bytes  10,488,558.00 bytes/sec
total size is 5,242,880  speedup is 1.00

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/288269.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【MySQL】2.MySQL数据库的基本操作

目录 数据库基本操作 查看数据库信息 查看数据库结构 显示数据表的结构&#xff08;字段&#xff09; 常用的数据类型 数据库管理操作 SQL语句概述 SQL分类 1.DDL&#xff1a;数据定义语言 1.1创建数据库和表 创建数据库 创建数据表 1.2删除数据库和表 删除数据表…

vscode c++环境配置

1.基础软件安装 安装Visual Studio Code. 安装C拓展。点击在vscode界面最左侧的Extensions图标&#xff08;打开快捷键&#xff1a;ctrlshiftX&#xff09;&#xff0c;搜索“C/C”&#xff0c;点击进行安装。 确保已安装gcc. 一般ubuntu系统会预装gcc.在终端窗口中输入如下…

Linux系统使用Docker部署Jupyter Notebook结合内网穿透实现公网访问本地笔记

文章目录 1. 选择与拉取镜像2. 创建容器3. 访问Jupyter工作台4. 远程访问Jupyter工作台4.1 内网穿透工具安装4.2 创建远程连接公网地址4.3 使用固定二级子域名地址远程访问 本文主要介绍如何在Ubuntu系统中使用Docker本地部署Jupyter Notebook&#xff0c;并结合cpolar内网穿透…

《早起的奇迹》要么躺在床上等待生活的暴击,要么早起创造奇迹 - 三余书屋 3ysw.net

精读文稿 今天我们讲述的是关于《早起的奇迹》。通过神奇的早起&#xff0c;我们可以获得改变人生的力量。首先我要给你讲一个故事&#xff0c;这个故事的主人公是一个年轻人&#xff0c;他在少年时就取得了巨大的成就&#xff0c;在15岁时他已经拥有了自己的电台节目&#xff…

数据结构:堆和二叉树遍历

堆的特征 1.堆是一个完全二叉树 2.堆分为大堆和小堆。大堆&#xff1a;左右节点都小于根节点 小堆&#xff1a;左右节点都大于根节点 堆的应用&#xff1a;堆排序&#xff0c;topk问题 堆排序 堆排序的思路&#xff1a; 1.升序排序&#xff0c;建小堆。堆顶就是这个堆最小…

2024/03/27(C++·day3)

一、思维导图 二、完成下面类 代码 #include <cstring> #include <iostream>using namespace std;class myString { private:char *str; // 记录C风格的字符串int size; // 记录字符串的实际长度public:// 无参构造函数myString() : size(10){str new char[si…

JVM(六)——内存模型与高效并发

内存模型与高效并发 一、java 内存模型 【java 内存模型】是 Java Memory Model&#xff08;JMM&#xff09; 简单的说&#xff0c;JMM 定义了一套在多线程读写共享数据时&#xff08;成员变量、数组&#xff09;时&#xff0c;对数据的可见性、有序 性、和原子性的规则和保障…

基于springboot+vue+Mysql的网上图书商城

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

M1 mac安装 Parallels Desktop 18 激活

M1 mac安装 Parallels Desktop 18 激活 下载安装Parallels Desktop 18.1.1 (53328) 激活1. 拷贝prl_disp_service2. 在终端打开Crack所在位置3. 输入命令&#xff0c;激活成功 下载 安装包和激活文件下载地址 链接: https://pan.baidu.com/s/1EjT7xeEDcntIIoOvvhBDfg?pwd9pue …

基于springboot的房屋租赁管理系统+数据库+免费远程调试

项目介绍: 基于springboot的房屋租赁管理系统。Javaee项目&#xff0c;springboot项目&#xff0c;采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring SpringBoot JspMaven来实现。MyS…

基于Springboot的艺体培训机构业务管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的艺体培训机构业务管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层…

【Linux】模拟实现shell(bash)

目录 常见的与shell互动场景 实现代码 全部代码 homepath()接口 const char *getUsername()接口 const char *getHostname()接口 const char *getCwd()接口 int getUserCommand(char *command, int num)接口 void commandSplit(char *in, char *out[])接口 int execut…

IDEA报错Access denied for user ‘root‘@‘localhost‘ (using password: YES)

密码没错&#xff0c;可以正常连接上Mysql 甚至连图形化界面都可以连接得上 重改密码&#xff0c;没有用。 查看端口是3306也没有问题 看端口是不是被多个进程占用&#xff0c;果然&#xff01; 在资源管理器关掉一个后就行了

【新手教程】mmselfsup训练教程及常见报错处理

mmselfsup教程 1.安装mmselfsup2.了解文件结构与配置3.训练常见报错1.报错&#xff1a;FileNotFoundError: [Errno 2] No such file or directory:data/imagenet/train/./train/n04311004/images/n04311004_194.JPEG2.报错&#xff1a;报错ImportError: /mmcv/_ext.cpython-38-…

ASP.NET-Global.asax使用详解

本文介绍了如何使用Global.asax文件来增强ASP.NET Web应用程序的功能。首先&#xff0c;介绍了Global.asax文件的作用和基本功能。接着&#xff0c;详细探讨了在Global.asax中实现定时任务、应用程序级别的错误处理、应用程序启动和结束时执行特定逻辑等功能。随后&#xff0c;…

学习使用xbox手柄控制小乌龟节点移动

使用xbox手柄控制小乌龟&#xff0c;首先要下载joy功能包&#xff0c;发布sensor_msgs话题也就是手柄和ros通信的话题。 下载的步骤就根据官方文档即可 joy/Tutorials/ConfiguringALinuxJoystick - ROS Wiki 这里我提供一下具体步骤 第一步 安装joy 首先安装对应系统版本的…

STM32串口收发单字节数据原理及程序实现

线路连接&#xff1a; 显示屏的SCA接在B11&#xff0c;SCL接在B10&#xff0c;串口的RX连接A9&#xff0c;TX连接A10。 程序编写&#xff1a; 在上一个博客中实现了串口的发送代码&#xff0c;这里实现串口的接收代码&#xff0c;在上一个代码的基础上增加程序功能。 Seiral.…

单页面应用部署到iis上可以正常打开,刷新就404

当您遇到Dumi打包的网站部署到IIS上可以正常打开首页,但刷新页面时出现404错误的情况,这通常与以下几个方面有关: 路由处理: Dumi生成的项目通常基于SPA(Single Page Application)架构,使用前端路由来实现无刷新导航。这意味着大部分页面切换是在浏览器层面完成的,而不…

深入理解Vue的生命周期机制

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

中伟视界:智能识别!电动车戴头盔系统,保障您的安全出行

电动车AI头盔识别系统是一种利用人工智能技术提高道路安全的创新应用。该系统的核心目的是确保电动车驾驶者遵守交通安全规则&#xff0c;特别是佩戴头盔这一基本安全措施。通过自动识别驾驶者是否佩戴头盔&#xff0c;这一系统能够鼓励更为安全的骑行行为&#xff0c;减少交通…