一、监控系统负载

计算机核心资源:
1. CPU: 计算(lscpu)
2. 内存: 缓存数据(掉电丢失)
3. 硬盘: 持久化存储数据
4. 网络: 传播数据

在这里插入图片描述

1.1cpu

1.1.1查看cpu

[root@C001 ~ 10:03:46]# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                2
On-line CPU(s) list:   0,1
Thread(s) per core:    1
Core(s) per socket:    2
座:                 1
NUMA 节点:         1
厂商 ID:           GenuineIntel
CPU 系列:          6
型号:              158
型号名称:        Intel(R) Core(TM) i5-7300HQ CPU @ 2.50GHz
步进:              9
CPU MHz:             2495.996
BogoMIPS:            4991.99
超管理器厂商:  VMware
虚拟化类型:     完全
L1d 缓存:          32K
L1i 缓存:          32K
L2 缓存:           256K
L3 缓存:           6144K
NUMA 节点0 CPU:    0,1

1.1.2给系统加负载

[root@C001 ~ 10:15:52]# md5sum /dev/zero &
[1] 84814

1.1.3查看使用情况

[root@C001 ~ 10:19:43]# top
top - 10:25:17 up  1:39,  2 users,  load average: 1.00, 0.84, 0.45
Tasks: 357 total,   4 running, 353 sleeping,   0 stopped,   0 zombie
%Cpu(s): 48.8 us,  3.2 sy,  0.0 ni, 48.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                           
 84814 root      20   0  108072    620    524 R 100.0  0.0   7:40.72 md5sum                            
 10464 root      20   0  134372   5688   4300 S   1.3  0.3   0:56.47 sshd                              
     1 root      20   0   51004   7324   2540 S   0.0  0.4   0:01.71 systemd                           
     2 root      20   0       0      0      0 S   0.0  0.0   0:00.03 kthreadd         ......
1.1.3.1按CPU降序排列(按p)
 PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 
84814 root      20   0  108072    620    524 R  99.4  0.0   2:43.54 md5sum                            
 10464 root      20   0  134372   5688   4300 S   1.0  0.3   0:53.70 sshd                              
 86814 root      20   0  123996   1892   1188 R   0.3  0.1   0:00.06 top                               
     1 root      20   0   51004   7324   2540 S   0.0  0.4   0:01.71 systemd                           
     2 root      20   0       0      0      0 S   0.0  0.0   0:00.03 kthreadd                          
     3 root      20   0       0      0      0 S   0.0  0.0   0:00.26 ksoftirqd/0                       
     5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H         
     .......
1.1.3.2按内存降序排列(按m)
   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                           
 84814 root      20   0  108072    620    524 R  99.7  0.0   5:14.64 md5sum                            
 10464 root      20   0  134372   5688   4300 S   1.0  0.3   0:55.13 sshd                              
   829 root      16  -4  116784   1632   1236 S   0.3  0.1   0:04.28 auditd                            
 10550 root      20   0  125024   2868   1184 S   0.3  0.2   0:15.04 top                               
 86814 root      20   0  123996   1892   1188 R   0.3  0.1   0:00.32 top                               
     1 root      20   0   51004   7324   2540 S   0.0  0.4   0:01.71 systemd                           
     2 root      20   0       0      0      0 S   0.0  0.0   0:00.03 kthreadd  		......

1.1.4CPU指标

%Cpu(s): 48.7 us(用户),  3.3 sy(系统) 50%

1.1.5删除进程

[root@C001 ~ 10:41:53]# kill -15 84814
[1]+  已终止               md5sum /dev/zero

1.2内存

1.2.1内存指标

KiB Mem:   1870784 total,   359964 used,  1510820 free,      764 buffers
KiB Swap:  2097148 total,        0 used,  2097148 free.   180076 cached Mem

1.3硬盘

1.3.1磁盘容量

[root@C001 ~ 10:31:20]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   18G  4.3G   14G   25% /
devtmpfs                 908M     0  908M    0% /dev
tmpfs                    914M     0  914M    0% /dev/shm
tmpfs                    914M  8.5M  905M    1% /run
tmpfs                    914M     0  914M    0% /sys/fs/cgroup
/dev/sda1                497M   96M  401M   20% /boot

1.3.2模拟下载

[root@C001 ~ 10:34:24]# wget http://192.168.42.100/02.%E7%B3%BB%E7%BB%9F%E9%95%9C%E5%83%8F/CentOS-7-x86_64-DVD-2207-02.iso
--2026-04-02 10:34:33--  http://192.168.42.100/02.%E7%B3%BB%E7%BB%9F%E9%95%9C%E5%83%8F/CentOS-7-x86_64-DVD-2207-02.iso
正在连接 192.168.42.100:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:4746903552 (4.4G) [application/octet-stream]
正在保存至: “CentOS-7-x86_64-DVD-2207-02.iso”

 0% [                                                              ] 5,442,614   2.32MB/s           

1.3.3查看硬盘整体速度

#首先安装依赖
[root@C001 ~ 10:34:35]# yum install sysstat -y

[root@C001 ~ 10:37:03]# sar -dp 1
Linux 3.10.0-123.el7.x86_64 (C001)      2026年04月02日  _x86_64_        (2 CPU)

10时37分08秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
10时37分09秒       sda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10时37分09秒 centos-swap      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10时37分09秒 centos-root      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

10时37分09秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
10时37分10秒       sda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10时37分10秒 centos-swap      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10时37分10秒 centos-root      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
.......

1.3.4清理文件

[root@centos7 ~ 10:43:53]# rm -f CentOS-7-x86_64-DVD-2207-02.iso*

1.4网络

#n是指定监控网络,1是一秒刷新一次,DEV是网卡接口
[root@C001 ~ 16:34:24]# sar -n DEV 1
Linux 3.10.0-123.el7.x86_64 (C001)      2026年04月02日  _x86_64_        (2 CPU)

16时58分37秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
16时58分38秒 eno16777736     15.00     21.00      1.40      2.87      0.00      0.00      0.00
16时58分38秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00

16时58分38秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
16时58分39秒 eno16777736     14.00     23.00      1.34      3.19      0.00      0.00      0.00
16时58分39秒        lo     20.00     20.00      4.34      4.34      0.00      0.00      0.00

16时58分39秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
16时58分40秒 eno16777736     38.00     55.00      3.77     17.77      0.00      0.00      0.00
16时58分40秒        lo     20.00     20.00      4.34      4.34      0.00      0.00      0.00

16时58分40秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
16时58分41秒 eno16777736     14.00     23.00      1.34      3.18      0.00      0.00      0.00
16时58分41秒        lo     20.00     20.00      4.34      4.34      0.00      0.00      0.00

1.5总结

  1. 实时监控核心指标:CPU(用户/系统态)、内存(缓存/swap)、磁盘I/O、网络流量,用top、vmstat等工具查看。
  2. 部署专业监控工具:集群/长期监控用Prometheus+Grafana、Zabbix或Nagios,实现集中收集和可视化。
  3. 设置告警阈值:针对CPU、磁盘等核心指标配置阈值,推送告警并避免告警风暴。
  4. 监控进程与服务:检查关键服务运行状态、进程数,排查异常退出原因。
  5. 日志管理分析:集中存储系统/应用日志,关注错误、登录异常等,必要时配置日志告警。
  6. 磁盘健康监控:除空间外,用smartctl检测坏块,定期执行fsck检查文件系统完整性。
  7. 网络与安全监控:监控端口、异常连接和防火墙规则,可疑流量用tcpdump分析。
  8. 性能基线分析:记录正常指标基线,指标偏离时及时排查。
  9. 自动化监控:编写脚本实现个性化需求检查,联动监控系统或触发告警。
  10. 监控安全:限制监控工具权限,加密数据传输,避免监控系统成为安全薄弱点。

二、systemctl 管理系统服务

pid为1的程序是systemd,也是系统第一个进程,负责操作系统整个资源的管理。系统中服务也由systemd管理。

2.1查看服务状态

[root@C001 ~ 11:24:44]# systemctl status sshd
sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
   Active: active (running) since 四 2026-04-02 16:46:06 CST; 5h 21min left
 Main PID: 1307 (sshd)
   CGroup: /system.slice/sshd.service
           └─1307 /usr/sbin/sshd -D
#运行记录
4月 02 16:46:06 C001 sshd[1307]: Server listening on :: port 22.
4月 02 16:46:41 C001 sshd[2137]: Accepted password for root from 192.168.242.1 port 50742 ssh2
4月 02 16:48:00 C001 sshd[2164]: Accepted password for root from 192.168.242.1 port 50870 ssh2
4月 02 16:50:56 C001 sshd[4873]: Accepted password for root from 192.168.242.1 port 51072 ssh2
4月 02 16:51:13 C001 sshd[5175]: Accepted password for root from 192.168.242.1 port 51085 ssh2
4月 02 08:57:18 C001 sshd[10464]: Accepted password for root from 192.168.242.1 port 51399 ssh2
4月 02 09:01:00 C001 sshd[13904]: Accepted password for root from 192.168.242.1 port 51812 ssh2
4月 02 09:23:24 C001 sshd[34609]: Accepted password for root from 192.168.242.1 port 52859 ssh2
4月 02 11:15:37 C001 sshd[7439]: Accepted password for root from 192.168.242.1 port 58899 ssh2
4月 02 11:16:47 C001 sshd[8552]: Accepted password for root from 192.168.242.1 port 58939 ssh2

重点关注:

  1. Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
    配置文件位置 /usr/lib/systemd/system/sshd.service
    第一个enable 代表开机自动启动
    第二个enable 暂不关注
  2. Active: active (running)

2.2停止服务

[root@C001 ~ 11:24:51]# systemctl stop sshd
[root@C001 ~ 11:27:48]# systemctl is-active sshd
inactive#说明服务未在运行

#查看sshd服务状态
[root@C001 ~ 11:28:04]# systemctl status sshd
sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
   Active: inactive (dead) since 四 2026-04-02 11:27:48 CST; 1min 23s ago
 Main PID: 1307 (code=exited, status=0/SUCCESS)
 #此时sshd服务为开机自启即enabled,但此时是停止状态即inactive(dead)

此时远程连接失效,例如重新在finalshell中重新开一个会话无法接入 服务器

在这里插入图片描述

2.3重新启动服务

[root@C001 ~ 11:34:01]# systemctl start sshd
[root@C001 ~ 11:37:14]# systemctl is-active sshd
active

此时外部连接可以接入

在这里插入图片描述

2.4禁止sshd服务开机启动

[root@C001 ~ 11:38:31]# systemctl disable sshd
rm '/etc/systemd/system/multi-user.target.wants/sshd.service'
[root@C001 ~ 11:40:14]# systemctl is-enabled sshd
disabled

重新启动虚拟机后shell连接不上

在这里插入图片描述

2.5设置sshd服务开机启动

在虚拟机中重新启动sshd服务

在这里插入图片描述

重启虚拟机,验证finalshell是否可以连接

在这里插入图片描述

2.6总结

2.6.1核心操作要点

  1. 查看服务状态:systemctl status sshd,重点关注Loaded(配置文件位置)和Active(运行状态)
  2. 停止服务:systemctl stop sshd,停止后远程连接失效
  3. 启动服务:systemctl start sshd,启动后恢复远程连接
  4. 禁止开机自启:systemctl disable sshd,重启虚拟机后服务不自动启动,远程无法连接
  5. 开启开机自启:systemctl enable sshd,重启虚拟机后服务自动启动,远程可正常连接

2.6.2关键结论

  1. enabled(开机自启)≠ active(正在运行),二者独立不关联
  2. 操作核心:启停服务用start/stop,控制自启用enable/disable,查看状态用status

三、unit配置文件

开发一个study服务

脚本说明:这是一个无限循环的脚本,每 5 秒会向 /var/log/study.log 文件中追加一行包含当前时间的日志,内容为 [时间]: I’M studying [ Linux ] 。

3.1写入study的shell脚本

[root@C001 ~ 13:51:41]# vim /usr/local/bin/study
#脚本运行时会自动创建/var/log/study.log
#!/bin/bash
# 第一行内容是脚本的 "解释器声明"(shebang),指定该脚本使用 /bin/bash 作为解释器执行。系统会根据这一行找到对应的 shell 程序来解析后续命令。

# 启动一个无限循环:while 是循环关键字,true 是一个永远为真的条件,因此这个循环会一直执行下去,直到被外部终止(如 Ctrl+C)。
while true

# 循环体的开始标记,do 和后面的 done 之间的内容是循环中重复执行的命令。
do
  
  # 执行 date 命令(获取当前系统时间),并通过 $(...) 捕获其输出,将结果赋值给变量 DATE。
  DATE=$(date)
  
  # echo 命令输出字符串,其中 $DATE 会被替换为变量的值
  # >> 是追加重定向符号,将输出内容追加到 /var/log/study.log 文件中
  # 最终输出内容类似 Fri Oct 31 10:00:00 CST 2025: I'M studying [ Linux ]。
  echo "$DATE: I'M studying [ Linux ]" >> /var/log/study.log
  
  # 让脚本暂停执行 5 秒(sleep 命令用于延迟,单位默认为秒),避免循环执行过快。
  sleep 5

# 循环体的结束标记,与前面的 while 和 do 配合,标志着一次循环的结束。
done

添加执行权限

[root@C001 ~ 13:52:52]# chmod +x /usr/bin/study

3.2创建study服务配置文件

[root@C001 ~ 13:28:12]# cp /usr/lib/systemd/system/sshd.service /etc/systemd/system/studyd.service

使用vim编辑器修改studyd

[root@C001 ~ 14:08:19]# vim /etc/systemd/system/studyd.service

[root@C001 ~ 14:11:15]# cat /etc/systemd/system/studyd.service 
[Unit]
Description=study server daemon

[Service]
ExecStart=/usr/local/bin/study

[Install]
WantedBy=multi-user.target

通知systemd读取unit变化

[root@C001 ~ 14:10:22]# systemctl daemon-reload

启用并启动服务

[root@C001 ~ 14:10:32]# systemctl start studyd
[root@C001 ~ 14:10:39]# systemctl enable studyd

查看服务状态

[root@C001 ~ 14:10:48]# systemctl status studyd
studyd.service - study server daemon
   Loaded: loaded (/etc/systemd/system/studyd.service; enabled)
   Active: active (running) since 四 2026-04-02 14:10:39 CST; 15s ago
 Main PID: 80125 (study)
   CGroup: /system.slice/studyd.service
           ├─80125 /bin/bash /usr/bin/study
           └─80378 sleep 5

4月 02 14:10:39 C001 systemd[1]: Started study server daemon.

3.3验证日志

#选项f表明实时跟踪
[root@C001 ~ 14:10:55]# tail -f /var/log/study.log
2026年 04月 02日 星期四 14:07:39 CST: I'M studying [ Linux ]
2026年 04月 02日 星期四 14:07:44 CST: I'M studying [ Linux ]
2026年 04月 02日 星期四 14:07:49 CST: I'M studying [ Linux ]
2026年 04月 02日 星期四 14:07:54 CST: I'M studying [ Linux ]
2026年 04月 02日 星期四 14:10:39 CST: I'M studying [ Linux ]
2026年 04月 02日 星期四 14:10:44 CST: I'M studying [ Linux ]
2026年 04月 02日 星期四 14:10:49 CST: I'M studying [ Linux ]
2026年 04月 02日 星期四 14:10:54 CST: I'M studying [ Linux ]
2026年 04月 02日 星期四 14:10:59 CST: I'M studying [ Linux ]
2026年 04月 02日 星期四 14:11:04 CST: I'M studying [ Linux ]
2026年 04月 02日 星期四 14:11:09 CST: I'M studying [ Linux ]
2026年 04月 02日 星期四 14:11:14 CST: I'M studying [ Linux ]

3.4总结

开发服务:

  1. 准备服务程序,放在/usr/local/bin/study

    • /usr/bin → 系统自带

    • /usr/local/bin你自己的,推荐放这里

  2. 准备服务配置文件 /etc/systemd/system/studyd.service (文件名 = 服务名,此时studyd就是服务名,程序后面的d,daemon,守护称呼)

  3. 通知systemd 变化 systemctl daemon-reload

  4. 激活服务

    systemctl enable studyd 
    systemctl start studyd
    

四、vim 编辑文件

  1. dd整行整行删除
  2. d‘n’d从光标开始的位置删除n行
  3. V选中,可以多行选中
  4. :set nu 显示行号
  5. :n1,n2d 删除n1~n2行
  6. /string 搜索并定位到特定字符串为止
  7. cw 替换一个单词(自动进入插入模式),输入替换词,按esc
  8. ZZ 保存退出
  9. u 撤销上一步操作;
  10. dgg 删除光标之前的所有行

五、OpenSSH服务管理

5.1sshd建立连接流程分析

5.1.1通过Windows命令提示符

抓包结果:

在这里插入图片描述

win提示符界面:

在这里插入图片描述

5.1.2使用finalshell终端

抓包结果:

在这里插入图片描述

5.1.3分析

ARP 阶段:虚拟机通过广播拿到宿主机的 MAC 地址。

三次握手阶段:客户端和服务端建立 TCP 连接通道。

SSH 交互阶段:双方在已建立的 TCP 通道上,进行 SSH 版本协商、密钥交换等认证流程。

5.2ssh工具配置文件

如果.ssh目录不存在,执行以下命令

[laoma@centos7 ~ 16:12:21]$ ssh localhost 
# 然后ctrl+c 停止即可

5.2.1准备配置文件

[he@C001 ~ 16:10:34]$ cp /etc/ssh/ssh_config .ssh/config
[he@C001 ~ 16:14:27]$ vim .ssh/config 

[he@C001 ~ 18:45:37]$ cat .ssh/config 
 Host *
#   ForwardAgent no
#   ForwardX11 no
#   RhostsRSAAuthentication no
#   RSAAuthentication yes
#   PasswordAuthentication yes
#   HostbasedAuthentication no
#   GSSAPIAuthentication no
#   GSSAPIDelegateCredentials no
#   GSSAPIKeyExchange no
#   GSSAPITrustDNS no
#   BatchMode no
#   CheckHostIP yes
#   AddressFamily any
#   ConnectTimeout 0
   StrictHostKeyChecking no#首次登录不要提示输入yes/no(不要对主机key校验)
   User root#新增User行指明默认登录用户

5.2.2验证

[he@C001 ~ 18:46:44]$ ssh 192.168.242.103
root@192.168.242.103's password: 
Last login: Thu Apr  2 17:26:07 2026 from 192.168.242.1

5.3ssh命令行传递密码工具sshpass

5.3.1安装依赖

[root@C001 ~ 15:47:51]# yum install sshpass -y

5.3.2验证

[he@C001 ~ 18:55:34]$ sshpass -p 123456 ssh root@192.168.242.103 id
uid=0(root) gid=0(root)=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

5.4ssh连接的三种方式

  1. ssh 用户名(ssh 主机IP)
  2. ssh 用户名@IP
  3. ssh 用户名@IP 命令

在这里插入图片描述

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐