Linux系统运维指南

news2025/1/21 18:44:27

实验linux操作系统版本为:CentOS-7.6-x86_64-DVD-1810.iso

注意:此文档为讨论性材料,均为个人实验截图及网络收集资源,非终版。

建议安装操作系统的磁盘与存放数据的磁盘分开

系统盘本次配置:50G    生产推荐:100-150G以上

数据盘本次:100G+120G 生产推荐:300-500G以上

一  系统安装(以图形化安装演示)

镜像获取:Download Linux | Linux.org

在中国境内有许多镜像网站提供各种操作系统和软件的ISO镜像下载服务,以下是一些常用的国内镜像网站,您可以从这些网站获取ISO镜像:

1. **清华大学开源软件镜像站:** https://mirrors.tuna.tsinghua.edu.cn/
2. **上海交通大学开源软件镜像站:** https://mirrors.sjtug.sjtu.edu.cn/
3. **阿里云开源镜像站:** https://developer.aliyun.com/mirror/
4. **中科大开源镜像站:** https://mirrors.ustc.edu.cn/
5. **华为开发者镜像站:** https://mirrors.huaweicloud.com/
6. **网易开源镜像站:** http://mirrors.163.com/
7. **中国科技大学开源镜像站:** https://mirrors.ustc.edu.cn/
8. **兰州大学开源镜像站:** https://mirror.lzu.edu.cn/
9. **北京交通大学开源镜像站:** https://mirror.bjtu.edu.cn/
10. **南京大学开源镜像站:** https://mirrors.nju.edu.cn/

下载ISO镜像使用国内的为最快 使用距离你所在地越近速度越快(数据的传输路径更短)

使用ISO引导安装操作如下:

上下健,选择:Install CentOS 7 回车

下面进入图形化安装模式!

安装语言选择“简体中文”--继续

点击“语言支持”

 选择添加English(United State)

点击“软件选择”:(选择带GUI的服务器及其配置)

注意,模板机推荐最小化安装

为什么使用最小化安装:

节省资源: 虚拟化环境中的模板机是用作创建新虚拟机的基础。使用最小化安装可以减少模板机的占用空间和资源消耗,从而节省存储空间和计算资源。这样,您可以在虚拟环境中创建更多的虚拟机,而不会过多消耗硬件资源。

安全性: 使用最小化安装的模板机可以减少潜在的安全风险。由于只安装了核心组件,攻击面更小,减少了潜在的漏洞和安全隐患。

 选择“带GUI(图形化界面)的服务器”,选择右边的常规工具:KDE、性能工具、系统工具等。

KDE(桌面环境) 

性能工具(监视和分析系统性能

兼容性程序库(确保应用程序在特定环境中正常运行的软件库) 

开发工具(软件开发的工具集合,包括编译器、调试器、集成开发环境(IDE)

系统管理工具(用于管理和维护服务器的工具。

 

 点击安装位置(系统安装位置选择几块磁盘中的一块

如下图:

1 操作系统将安装的位置

2 我要配置分区

 创建根分区、交换分区、用户数据分区。自行划分每个分区的大小、位置和文件系统类型

 这里如果选择自动分区:

根分区:用于容纳操作系统和文件系统,一般20G到30G

交换分区:一般为系统内存的一倍到两倍

用户数据分区(/home):剩余空间全部在这里

其他分区(/var(系统日志)、/tmp(临时文件)等)

3 完成

如下图

1 选择LVM

2 点击“+”手动分区

接上图:点击 完成 ,点击下图中 接受更改!

 接上图:点击 完成 ,点击下图中 接受更改!

 点击开始安装

账户和密码设置 :

设置root 用户密码,如果不符合复杂要求,需要点击2次完成。

系统安装完成,点击 Reboot 重新启动 操作系统安装完毕!

 点击 LICENSING,并接受许可证

 

 点击 完成配置进入系统

 

于安装的是带GUI的服务器,所以首次必须创建一个用户不能直接用root登录(如果是最小化安装无图形界面则不需要)

新建一个用户:user,密码:Qwe123!@#

该处设置密码有很复杂的要求,建议多试几次就明白了

密码复杂度:

一个复杂的密码可能是一个混合了大小写字母、数字和特殊字符的长密码,避免常见单词,避免个人信息,不使用连续字符。例如,一个符合要求的密码可以是 "P@ssw0rd2023!"。

 

虚拟机同步时间

 如果需要让虚拟机同步时间,可以让虚机同步主机,主机同步ntp的方式,设置方法:右击编辑该linux虚拟机,在虚拟机选项中勾选如下图所示:

 系统安装完毕

二  做模板机方便以后克隆使用

需要从原始系统中删除与唯一性和安全性相关的信息,以便在使用镜像创建新的虚拟机时避免冲突和潜在的安全问题。

1.首先删除SSH主机密钥

root账户下执行:rm -rf /etc/ssh/ssh_host_*

2. 在 /etc/sysconfig/network 中添加:(这里本来可以不用设置的,但鉴于标准化还是设置了一个主机名)

HOSTNAME=localhost.localdomain

3. 从 /etc/sysconfig/network-scripts/ifcfg-ens* 中

删除 HWADDR 行和 UUID 行。(如果有的话)

 删除后如下图所示:

 4.删除/var/log中所有的日志

5.最后运行以下命令:# sys-unconfig虚拟机被关机。它已被封装,并可用来创建模板。

sys-unconfig 命令时,系统将重置为类似于首次启动时的状态,您需要重新配置一些基本系统设置,如主机名、网络配置等。

新克隆的虚拟机:可以选择更改root密码,创建新用户,也可以直接进入。

直接进入后,仍然有user用户,密码与之前的一样,需要注意,最小化安装则不需要

三  网络配置(命名规范化配置)

登录操作系统,用户名:root    密码:12345

首先需要查看网络接口名称:

nmcli d stat 

网络设备名称为:ens192  --这是系统分配标识数字,你的环境可能不同,如果网卡多起来,分辨困难,建议采取命名规范化配置,这样日后维护看到名字就知道是哪块网卡

以配置连接名称为 public的网络为例

nmcli c add con-name public ifname ens192 type ethernet ip4 192.168.X.X/24 gw4 192.168.X.1

`nmcli c add` 是 NetworkManager 命令行工具中用于添加新连接的命令。它允许你创建新的网络连接配置。以下是 `nmcli c add` 命令的语法和参数说明:

```
nmcli c add con-name <连接名> ifname <设备名> type <连接类型> [连接参数]
```

- `<连接名>`: 要创建的连接的名称。
- `<设备名>`: 要将连接绑定到的网络设备的名称。
- `<连接类型>`: 连接的类型,例如 `ethernet`(以太网连接)、`wifi`(无线连接)等。

除了上述基本参数,你还可以根据连接类型提供其他特定的参数。例如,对于以太网连接,你可以指定 IP 地址、网关等。以下是一些可能的连接类型和相关参数:

1. **以太网连接**(Ethernet Connection):
   
   ```
   nmcli c add con-name <连接名> ifname <设备名> type ethernet ip4 <IP地址/子网掩码> gw4 <网关>
   ```

   - `<IP地址/子网掩码>`: 你要设置的 IP 地址和子网掩码,例如 `192.168.1.2/24`。
   - `<网关>`: 网关的 IP 地址,例如 `192.168.1.1`。

2. **Wi-Fi 连接**(Wireless Connection):

   ```
   nmcli c add con-name <连接名> ifname <设备名> type wifi ssid <SSID> [-- wifi-sec.key-mgmt <加密方式> -- wifi-sec.psk <密码>]
   ```

   - `<SSID>`: 无线网络的名称。
   - `<加密方式>`: 加密类型,例如 `wpa-psk`。
   - `<密码>`: 无线网络密码。

这只是两种连接类型的示例,实际上还有许多其他类型和相关参数可以使用。要详细了解每种连接类型的参数和选项,你可以在终端中键入 `nmcli c add help` 或者查阅 NetworkManager 的文档。在使用 `nmcli c add` 命令时,你应该根据实际情况提供正确的参数值以配置连接。

nmcli c up public  (启动配置public网卡)

nmcli c    (显示配置)

nmcli d stat (显示接口状态)

ip a   (显示IP信息)

# cat /etc/sysconfig/network-scripts/ifcfg-public  (检查配置)

查看这条“onboot=yes” ----确认开机启动为yes即可

指令nmcli解读:

`nmcli` 是 NetworkManager 的命令行界面工具,它允许你在命令行中管理网络连接和网络配置。以下是一些常用的 `nmcli` 命令和它们的解释:

1. **nmcli c**: 这个命令用于管理连接(connections)。你可以使用不同的子命令来添加、修改、删除和列出连接。

   - `nmcli c add`: 添加新连接。
   - `nmcli c modify`: 修改现有连接的设置。
   - `nmcli c delete`: 删除连接。
   - `nmcli c show`: 列出所有连接及其详细信息。

2. **nmcli d**: 这个命令用于管理设备(devices)。你可以使用不同的子命令来显示设备信息、启用或禁用设备等。

   - `nmcli d show`: 显示设备信息。
   - `nmcli d connect`: 连接设备。
   - `nmcli d disconnect`: 断开设备连接。

3. **nmcli g**: 这个命令用于显示全局设置(global settings)。

   - `nmcli g hostname`: 显示主机名设置。
   - `nmcli g permissions`: 显示权限设置。

4. **nmcli radio**: 这个命令用于管理无线电(radio)设备状态。

   - `nmcli radio all on`: 打开所有无线电设备。
   - `nmcli radio wifi off`: 关闭 Wi-Fi 设备。

5. **nmcli networking**: 用于管理网络功能。

   - `nmcli networking on`: 打开网络功能。
   - `nmcli networking off`: 关闭网络功能。

6. **其他命令**:
   
   - `nmcli general`: 显示 NetworkManager 的一般信息。
   - `nmcli device`: 显示设备的详细信息。

四 挂载系统ISO作为yum源(必会)

1. 新建/home/ISO/  上传CentOS-7.6-x86_64-DVD-1810.iso文件到ISO目录

一定要确保这个ISO文件上传完毕后再进行下面的操作。

2. 创建挂载目录

mkdir /media/CentOS7

3. 挂载iso文件

mount -t iso9660 -o loop  /home/ISO/CentOS-7.6-x86_64-DVD-1810.iso  /media/CentOS7

mount -t  挂载的文件类型   循环设备允许将一个文件作为块设备来访问。
mount -o  loop  指定挂载ISO镜像的循环设备 
 `-o` 是用来指定挂载选项(mount options)的参数。
通过 `-o` 参数,你可以指定一系列的选项来控制挂载的行为。

以下是一些常见的挂载选项和示例:

- `-o ro`: 以只读(read-only)模式挂载文件系统。
- `-o rw`: 以读写(read-write)模式挂载文件系统(默认模式)。
- `-o remount`: 对一个已挂载的文件系统进行重新挂载,可以用来修改挂载选项。
- `-o noexec`: 禁止在该文件系统中执行可执行文件。
- `-o nodev`: 禁止在该文件系统中创建设备文件。
- `-o nosuid`: 禁止在该文件系统中执行 SUID/SGID 程序。
- `-o uid=xxx,gid=xxx`: 指定挂载的文件系统中文件和目录的用户和组身份。
- `-o defaults`: 使用默认的挂载选项。

 df  -TH  查看挂载情况(显示磁盘分区或文件系统的使用情况)

 

4. 设置开机自动挂载光盘镜像

执行 vi /etc/fstab

(fstab 输入错误会使主机无法正常启动而进入emergency mode紧急状态,)

在最后一行添加(按 i进入编辑模式,按 ESC退出编辑模式,再输入 :wq! 再回车,保存后退出)

/home/ISO/CentOS-7.6-x86_64-DVD-1810.iso  /media/CentOS7  iso9660  defaults,ro,loop   0 0

5. 配置源

首先备份原始repo文件

cd /etc/yum.repos.d/

ls

mkdir  ./bak

mv  ./*.repo  ./bak/

执行   vi /etc/yum.repos.d/CentOS7-Localsource.repo  #打开repo文件,如果这一文件不存在则被创建

按i 进入编辑模式,输入以下内容:

[CentOS7-Localsource]
name=CentOS7
baseurl=file:///media/CentOS7
enabled=1
gpgcheck=0  (相当于后面gpgkey密钥的一个开关 设置为0不开启 为1开启检验)
gpgkey=file://etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7


- `[CentOS7-Localsource]`:这是仓库的名称,用方括号括起来。
- `name=CentOS7`:这是仓库的名称,可以自定义。在这个示例中,它被命名为"CentOS7"。
- `baseurl=file:///media/CentOS7`:这是仓库的基本URL,指向本地路径。在这个示例中,它指向一个挂载在`/media/CentOS7`目录下的目录,表示本地的CentOS 7安装介质。
- `enabled=1`:这表示启用该仓库。如果设置为0,仓库将被禁用。
- `gpgcheck=0`:这是GPG检查的设置,用于验证软件包的真实性。在这个示例中,GPG检查被禁用,设置为0。
- `gpgkey=file://etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7`:这是GPG密钥的路径,用于对软件包进行数字签名验证。在这个示例中,GPG密钥的路径是`/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7`。

总之,这个配置文件指定了一个本地的CentOS 7软件仓库,允许你从本地路径挂载的介质中安装和更新软件包。请注意,禁用GPG检查可能会降低软件包的安全性,建议在生产环境中仅在安全的情况下禁用。

按ESC退出编辑 输入 :wq 再回车 保存后退出

6. 生成 本地yum 缓存  执行

yum clean all

yum makecache

五  磁盘(LVM)的各种折腾

查看磁盘信息执行命令:

lsblk (快速了解系统中的存储设备布局)

显示设备的层次结构,展示设备之间的父子关系,并提供了设备的大小、挂载点等信息

 

全新的磁盘 sdb 100G 和sdc 120G未做任何的分区

下面将以创建卷组 test_vg 逻辑卷 test_lv 并挂载到 /test下为例演示!

第一阶段完成:分别用sdb物理盘直接创建pv和sdc 分区后创建pv共同组建lvm卷,挂载给/test,实现容量叠加。

主要演示两个方案:直接PV和分区PV

     CentOS7系统中支持直接创建物理卷(PV)和先进行分区后再创建物理卷

sdb直接创建pv,而sdc进行fdisk分区后再创建pv:

方案一:直接创建物理卷(直接PV

将设备 /dev/sdb 加入到物理卷;显示物理卷 pvs----物理磁盘到物理卷

pvcreate /dev/sdb

pvs

其次,创建 test_vg 卷组并将物理卷指派给 test_vg;显示卷组 vgs

---创建组虚拟卷,加入虚拟卷,可加多个

vgcreate   test_vg   /dev/sdb

vgs

 

最后,创建 test_lv 逻辑卷并分配磁盘空间;显示逻辑卷 lvs

---逻辑卷套虚拟卷组,可加多个虚拟卷组,对外服务

lvcreate -L 50G -n test_lv test_vg    ---创建50G的逻辑卷

或者也可全分配,此次演示采取全部分配方式:

lvcreate -l +100%FREE -n   test_lv   test_vg

lvs

 

接下来需要格式化逻辑卷,并挂载到 /test目录下

mkfs.xfs /dev/test_vg/test_lv

mkdir -p /test

echo  '/dev/test_vg/test_lv /test xfs defaults 0 0' >> /etc/fstab

-----开机启动

mount -a

df -h

 方案二:将sdc采取分区方式创建pv(分区PV),并扩容给/test (此时/test为100G)

fdisk /dev/sdc  (gdisk使用的是 GPT 分区表功能更强大,fdisk使用的是MBR 分区表(传统)简单)

依次输入 n --新建分区   p --主分区  默认回车两次  t --改变分区ID

8e --创建为lvm分区  w --保存并退出

partprobe /dev/sdc(是在对磁盘进行分区操作后,通知操作系统重新读取分区表,以便在运行时更新分区信息

 

为sdc1创建pv

pvcreate /dev/sdc1

扩容vg;查看vgs

vgextend test_vg /dev/sdc1

 

为test_lv扩容

lvextend -l +100%free /dev/test_vg/test_lv -r         

-l  +100%free :将逻辑卷扩展到卷组中的所有可用空闲空间。

-r 表示在扩容后自动调整文件系统的大小,确保文件系统能够利用新增的空间。

可以看到/test此时变为了220G,等于sdb 100G + sdc 120G

 

下面进行第二阶段:分别为sdb和sdc扩容后,再扩容到/test

编辑配置虚拟机,将100G和120G分别改为200G和300G

注意:如果虚拟机有快照,则不支持扩容磁盘,需删除所有快照。

 

lsblk查看当前磁盘大小,发现并未识别到新增容量

sdb和sdc仍然为100和120,

 

此时需要重新扫描SCSI设备

有两个办法: 在vsphere上测试用第一种有效,首选第一种

第一种:手动查找总线ID,执行扫描:

  1. 检查 scsi 设备的名称。先查看当前磁盘挂载在哪条总线上:

ls -l /sys/block/sda       ---host32表示在32总线

 ls /sys/class/scsi_device/    ---检查ID号,此次显示的是32

 

2. 然后重新扫描 scsi 总线。用上一步找到的总线名称替换“0:0:0:0”: 

echo 1 > /sys/class/scsi_device/0\:0\:0\:0/device/rescan

本案例实际命令为:

echo 1 > /sys/class/scsi_device/32\:0\:1\:0/device/rescan     ---重扫sdb

echo 1 > /sys/class/scsi_device/32\:0\:2\:0/device/rescan     ---重扫sdc

再次执行lsblk,可以看到容量已经识别

 

第二种:利用通配符轮询总线并扫描:

for i in $(ls /sys/class/scsi_host/); do echo "- - -" > /sys/class/scsi_host/$i/scan; done

第一种不奏效或者磁盘较多的时候可以用第二种。

此时sdb和sdc都以识别到空间,接下来给分区扩容,最终目的是让/test容量到达500G总和

首先是sdb直接创建pv的扩容方式:

pvresize /dev/sdb

pvs      ----查看pv扩容情况

 

直接扩容lv,由于之前已经将test_lv挂载给了/test,因此lv扩容后便直接给/test扩容。执行如下

lvextend -l +100%free /dev/test_vg/test_lv -r

lvs     ----查看lv扩容后容量

df -h   ----查看/test容量

 

此时/test已经拿到sdb的200G,变成320G,接下来还有sdc的

sdc跟之前一样,首先执行分区格式化

fdisk /dev/sdc

依次输入 n --新建分区   p --主分区  默认回车两次  t --改变分区ID

2 --此处为sdc2更改分区   8e --创建为lvm分区  w --保存并退出

partprobe /dev/sdc

 

为sdc2创建pv

pvcreate /dev/sdc2

扩容vg;查看vgs

vgextend test_vg /dev/sdc2

 

为test_lv扩容

lvextend -l +100%free /dev/test_vg/test_lv -r

可以看到/test此时变为了500G,等于sdb 200G + sdc 300G

 

总结:第五章演示了同时由两块磁盘提供一个lvm分区的容量:由不同的分区方式(物理盘直接创建pv与分区后创建pv),并且还为两块盘都修改了容量进行扩容,同时演示了两种不同创建pv方式后的扩容办法,最终实现lvm分区的扩容。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【校招VIP】校招考点之前端安全和注入

考点介绍&#xff1a; 随着前端的快速发展&#xff0c;各种技术不断更新&#xff0c;前端的安全问题也越来越值得我们重视。千万不要等到项目上线之后才去重视安全问题&#xff0c;到时候被黑客攻击一切都太晚了。今天的专题将讲述前端几大常见安全问题&#xff0c;在校招面试中…

双基证券:预计未来还会有更多政策来吸引增量资金

双基证券表明&#xff0c;8月27日&#xff0c;活泼资本商场五大方针出台&#xff1a;证券买卖印花税折半征收&#xff1b;阶段性收紧IPO节奏&#xff1b;上市房企再融资不受破发、破净和亏损限制&#xff1b;规范控股股东与实践操控人减持行为&#xff1b;融资保证金最低份额由…

MySQL 的隐式转换导致诡异现象的案例一则

正是因为 MySQL 对字符串进行隐式转换时会截断再转&#xff0c;而不是像 Oracle、SQL Server 这些数据库针对这种问题直接报错&#xff0c;所以才出现了这个诡异的问题。 作者&#xff1a;刘晨 网名 bisal &#xff0c;具有十年以上的应用运维工作经验&#xff0c;目前主要从事…

四---降压型开关稳压器

当开关开通时&#xff0c;电流是斜线上升&#xff1b; 开关关断时&#xff0c;电感、负载、二极管、形成自然的续流回路&#xff0c;电流开始线性减少&#xff1b; 类似当蓄水池的水降低到一定程度&#xff0c;开关会重新打开&#xff0c;通过这样的高频开关操作&#xff0c;就…

财务部发布《企业数据资源相关会计处理暂行规定》

导读 财务部为规范企业数据资源相关会计处理&#xff0c;强化相关会计信息披露&#xff0c;根据《中华人民共和国会计法》和相关企业会计准则&#xff0c;制定了《企业数据资源相关会计处理暂行规定》。 加gzh“大数据食铁兽”&#xff0c;回复“20230828”获取材料完整版 来…

【Terraform学习】使用 Terraform创建Lambda函数启动EC2(Terraform-AWS最佳实战学习)

本站以分享各种运维经验和运维所需要的技能为主 《python》&#xff1a;python零基础入门学习 《shell》&#xff1a;shell学习 《terraform》持续更新中&#xff1a;terraform_Aws学习零基础入门到最佳实战 《k8》暂未更新 《docker学习》暂未更新 《ceph学习》ceph日常问题解…

C#,《小白学程序》第六课:队列(Queue)的应用,《实时叫号系统》

医院里面常见的叫号系统怎么实现的&#xff1f; 1 文本格式 /// <summary> /// 下面定义一个新的队列&#xff0c;用于演示《实时叫号系统》 /// </summary> Queue<Classmate> q2 new Queue<Classmate>(); /// <summary> /// 《小白学程序》第…

vue2中使用wangEditor(JS引入)

本文讲的不是npm安装&#xff0c;是下载js本地引入哦~ 想了解vue2和vue3的npm安装的&#xff0c;去这里&#xff1a;用于 Vue React | wangEditor 为了防止内网无法使用&#xff0c;咱不用cdn引入&#xff0c;直接下载js放入本地使用。 第一步&#xff1a;下载wangEditor对应…

使用Python构建网络爬虫:提取网页内容和图片资源

网络爬虫是一种自动获取网页内容的程序&#xff0c;它可以帮助我们高效地收集网络上的有价值信息。本文将介绍如何使用Python构建网络爬虫&#xff0c;提取网页内容和图片资源。   一、环境准备   1.安装Python环境   首先&#xff0c;确保您已经安装了Python环境。访问P…

苹果备货量创新高,潜望镜头立大功,iPhone 15 Pro Max备受瞩目

根据郭明锤的简讯内容&#xff0c;关于苹果公司未来发布的iPhone 15系列&#xff0c;有一些令人振奋的消息。据预测&#xff0c;苹果公司计划于下个月发布iPhone 15系列&#xff0c;其中最高配置的机型iPhone 15 Pro Max备货量预计将占整个系列的35%至40%&#xff0c;这一比例超…

【java】获取当前年份

目录 一、代码示例二、截图示例 一、代码示例 package com.learning;import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.Year; import java.util.Calendar; import java.util.Date;/*** 获取当前年份*/ public class GetCurrentYear {public …

实例046 修改提示字体及颜色

实例说明 如果设置了控件的ToolTip属性&#xff0c;当鼠标移到该控件后&#xff0c;会提示相关的文本&#xff0c;但没有提供对提示字体及颜色的设置属性&#xff0c;如何改变提示文本的样式和字体呢&#xff1f;本例可以设置提示文本的字体及颜色。运行本例&#xff0c;效果如…

无涯教程-Android - 系统架构

Android操作系统是一堆软件组件&#xff0c;大致分为五个部分和四个主要层&#xff0c;如体系结构图中所示。 Linux内核 底层是Linux-Linux 3.6&#xff0c;带有大约115个补丁&#xff0c;这在设备硬件之间提供了一定程度的抽象&#xff0c;并且包含所有必需的硬件驱动程序&am…

分析型CRM的优缺点有哪些?

CRM系统根据其功能和目标的不同&#xff0c;可以分为三种主要类型&#xff1a;运营型CRM、分析型CRM和协作型CRM。本文将进行分析型CRM系统的优缺点分析&#xff0c;帮助您对分析型CRM系统有更深的了解。 什么是分析型CRM系统&#xff1f; 例如Zoho CRM的分析型CRM系统是指通…

一文搞懂常见限流算法:计数器、滑动窗口、漏桶、令牌桶

文章目录 1、计数器算法2、滑动窗口算法3、漏桶算法&#xff08;漏斗算法&#xff09;4、令牌桶算法5、限流算法总结6、限流组件 &#x1f4e2;&#xff1a;在开发高并发系统时&#xff0c;有三把利器用来保护系统&#xff1a;缓存、降级和限流。 限流在很多场景中用来限制并发…

为C# Console应用化个妆

说到Windows的cmd&#xff0c;刻板印象就是黑底白字的命令行界面。跟Linux花花绿绿的界面比&#xff0c;似乎单调了许多。但其实C#开发的Console应用也可以摆脱单调非黑即白的UI。 最近遇到个需求&#xff0c;要在一堆纯文本文件里找指定的关键字&#xff08;后续还要人肉判断…

25 Linux可视化-Webmin和bt运维工具

25 Linux可视化-Webmin和bt运维工具 文章目录 25 Linux可视化-Webmin和bt运维工具25.1 Web运行环境简介25.2 Webmin的安装及使用25.2.1 安装webmin25.2.2 Webmin使用演示 25.3 bt(宝塔)的安装及使用25.3.1 安装宝塔25.3.2 宝塔Web登录Linux服务器25.3.3 找回宝塔登录密码 学习视…

每日两题 226翻转二叉树 1026节点与其祖先之间的最大差值

226 题目 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a;root [4,2,7,1,3,6,9] 输出&#xff1a;[4,7,2,9,6,3,1]示例 2&#xff1a; 输入&#xff1a;root [2,1,3] 输出&#xff1a;[2,3,1]示…

NineData X SelectDB 联合发布会,即将上线!

8月30日晚上19:00&#xff0c;由 NineData 和 SelectDB 共同举办的主题为“实时数据驱动&#xff0c;引领企业智能化数据管理”的线上联合发布会&#xff0c;即将如期上线&#xff01; 本次发布会将聚焦于实时数据仓库技术和数据开发能力&#xff0c;展示SelectDB新一代实时数据…

安装win11卡在联网界面(已解决)

安装win11卡在联网界面&#xff08;已解决&#xff09; 1. 问题描述2. 解决方法参考 1. 问题描述 windows11新电脑第一次开机或系统重装之后配置系统时到联网界面出现如下图情况&#xff0c;没有可以选择的选项&#xff0c;或者说卡在联网界面。 2. 解决方法 按 shiftF10 弹…