Linux系统管理与监控完全指南


Linux系统管理与监控完全指南

基础介绍

系统管理(System Administration)

系统管理是指维护和管理计算机系统的过程,确保系统稳定、高效、安全地运行。它包括用户管理、软件安装、资源监控、备份恢复等多个方面。在Linux系统中,系统管理员(System Administrator)通常负责执行这些任务。

系统监控(System Monitoring)

系统监控是实时或定期收集和分析系统资源使用情况(如CPU、内存、磁盘I/O、网络流量)和系统状态(如进程状态、服务可用性)的过程。通过监控,管理员可以及时发现潜在问题,优化系统性能,保障系统稳定运行。

1
2
3
4
5
6
7
8
9
10
11
12
+---------------------+    +---------------------+    +---------------------+
| 用户 (Users) | | 应用 (Applications) | | 硬件 (Hardware) |
+---------+-----------+ +---------+-----------+ +---------+-----------+
| | | | | |
| | 系统调用 (System Calls) | | | |
+---------v-----------+ +---------v-----------+ +---------v-----------+
| 内核 (Kernel) | | 内核 (Kernel) | | 内核 (Kernel) |
+---------+-----------+ +---------+-----------+ +---------+-----------+
| | | | | |
| 系统管理 <-------------------> 系统监控 |
| | | | | |
+---------------------+ +---------------------+ +---------------------+

在Linux系统中的作用

系统管理和监控是Linux系统稳定运行的基石:

  • 稳定性:通过监控关键资源和服务,及时发现并解决问题,防止系统崩溃。
  • 性能优化:分析系统瓶颈,优化资源配置,提高系统响应速度。
  • 安全性:监控系统日志,检测异常行为,防范安全威胁。
  • 资源规划:根据资源使用情况,合理规划硬件和软件资源,降低成本。

常用命令

系统信息查询

命令 参数 说明 风险 频率
uname -a 显示所有系统信息(内核版本、主机名等) ★★★☆
hostnamectl 显示或设置系统主机名 ★★☆☆
lsb_release -a 显示发行版信息 (需要安装 lsb-release 包) ★★☆☆
uptime 显示系统运行时间、用户数和平均负载 ★★★☆
who 显示当前登录用户 ★★☆☆
last 显示用户登录历史 ★★☆☆
dmesg 显示内核启动信息和硬件检测信息 ★☆☆☆

资源监控

命令 参数 说明 风险 频率
top 实时显示系统资源占用情况(CPU、内存、进程等) ★★★★
htop top 的增强版,更友好的界面 (需要安装 htop 包) ★★★☆
vmstat 1 定时显示虚拟内存、进程、CPU活动等统计信息 (每1秒刷新一次) ★★☆☆
iostat 1 定时显示磁盘I/O统计信息 (每1秒刷新一次) ★★☆☆
df -h 显示磁盘空间使用情况(以人类可读的格式) ★★★☆
du -sh /path 显示指定目录的总大小(以人类可读的格式) ★★★☆
free -m 显示内存使用情况(以MB为单位) ★★★☆
netstat -tulnp 显示网络连接、监听端口和进程信息 ★★☆☆
ss -tulnp netstat 的替代品,更快速更强大 ★★☆☆
ping 测试网络连通性 ★★★☆
traceroute 追踪数据包在网络中的路径 ★☆☆☆

⚠️ 高危操作警告:直接修改配置文件可能导致系统不稳定,请谨慎操作并备份。

进程管理

命令 参数 说明 风险 频率
ps aux 显示所有进程的详细信息 ★★★☆
top 实时显示进程资源占用情况 ★★★★
kill -9 PID 强制杀死指定PID的进程 (PID为进程ID) ⚠️ ★★☆☆
pkill name 根据进程名杀死进程 ⚠️ ★★☆☆
nice -n value command 调整进程的优先级 (value: -20 (最高) 到 19 (最低)) ⚠️ ★☆☆☆
renice priority PID 重新调整正在运行的进程的优先级 ⚠️ ★☆☆☆
bg 将暂停的进程放到后台运行 ★☆☆☆
fg 将后台运行的进程放到前台运行 ★☆☆☆
jobs 显示当前会话中后台运行的进程 ★☆☆☆

日志管理

命令 参数 说明 风险 频率
journalctl 查看 systemd 日志 ★★★☆
tail -f /path/to/logfile 实时追踪日志文件 ★★★☆
head /path/to/logfile 查看日志文件头部 ★★☆☆
cat /path/to/logfile 查看整个日志文件 ★★☆☆
grep pattern /path/to/logfile 在日志文件中搜索指定模式 ★★★☆

示例代码

示例1:使用 top 命令监控系统资源

1
top

这个命令会打开一个交互式的界面,实时显示系统的CPU使用率、内存使用情况、进程列表等信息。 top 命令默认每三秒刷新一次,可以在命令运行时通过按键进行交互,例如:

  • P: 按CPU使用率排序
  • M: 按内存使用率排序
  • q: 退出 top

预期输出示例:

1
2
3
4
5
6
7
8
9
top - 10:30:00 up 1 day, 12:34,  1 user,  load average: 0.05, 0.10, 0.08
Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.2 us, 0.3 sy, 0.0 ni, 98.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 3945408 total, 123456 free, 1234567 used, 2587385 buff/cache
KiB Swap: 2097152 total, 2097152 free, 0 used. 2345678 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1234 user 20 0 1234567 12345 12345 S 0.0 0.3 0:00.10 process1
5678 user 20 0 2345678 23456 23456 S 0.0 0.6 0:01.23 process2

示例2:使用 df -h 命令查看磁盘空间使用情况

1
df -h

这条命令会以人类可读的格式(例如:K, M, G)显示文件系统的磁盘空间使用情况。

预期输出示例:

1
2
3
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1 20G 10G 9.5G 52% /
/dev/sdb1 100G 60G 37G 62% /data

示例3:使用 journalctl 命令查看系统日志

1
journalctl -xe

这条命令会显示 systemd 日志,-xe 参数会显示详细的错误信息,方便排查问题。

预期输出示例:

1
2
3
4
5
-- Logs begin at Mon 2023-10-26 10:00:00 UTC, end at Mon 2023-10-26 10:30:00 UTC. --
Oct 26 10:15:00 systemd[1]: Started Some Service.
...
Oct 26 10:20:00 SomeService[1234]: Error: Something went wrong
...

示例4:使用 netstat -tulnp 命令查看监听端口

1
netstat -tulnp
  • -t: 显示TCP连接
  • -u: 显示UDP连接
  • -l: 显示监听状态的连接
  • -n: 以数字形式显示地址和端口号,而不是尝试查找主机名和服务名
  • -p: 显示进程ID和进程名

这条命令可以用来查找哪些进程在监听特定的端口。

预期输出示例:

1
2
3
4
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1234/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 5678/sendmail
udp 0 0 0.0.0.0:68 0.0.0.0:* 9012/dhclient

Metadata

  • Tags: Linux, 系统管理, 系统监控, 性能优化, 进程管理, 日志管理, 命令行
  • Categories: 系统管理, 运维

文章作者: 达朵
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 达朵 !
  目录