Linux 入门总结(十四) —— Linux 系统管理
进程管理
进程查看
1、进程简介
进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。
注意:命令也是一个进程,因为命令其实是一个功能,但是命令的进程存留的时间超级短,可能很难看到。要运行一个程序至少产生一个进程。
2、进程管理的作用
判断服务器健康状态
查看系统中所有进程
杀死进程
注意:进程管理最主要的工作是判断服务器的健康状态,而不是杀死进程,就算是不需要的进程也应该尝试正确终止,而不是杀死进程,杀进程是无法正常终止才采用的方式。
3、查看系统中所有进程
1 | # 方式一:使用 BSD 操作系统格式 |
第一种采用的是 Unix 格式,注意选项前面并没有「-」。aux:a 表示查看所有前台进程,x 表示查看所有后台进程,u 显示进程是由哪个用户产生的。-le:l 显示进程详细信息,e 显示系统所有进程。
绝大多数的系统进程的 TTY 显示的都是 「?」,证明这个进程不是由终端调用的,而是由内核直接产生的。按住 Alt + F1~F6 能够切换 6 个本地字符终端,如果按装了图形界面可以使用 Ctrl + Alt + F7 切换到图形终端。
4、查看系统健康状态
1 | 格式: |
相当于 Windows 的任务管理器,默认以 cpu 的占用率进行排序。该命令最主要的是看头 5 行。
top 命令显示
主要看上图中的三个指标:Tasks 的 load average、Cpu 的 id、Mem 的 free。
(1) 第一行信息为任务队列信息
内容 | 说明 |
---|---|
17:01:55 | 系统当前时间 |
up 10 days, 6:02 | 系统的运行时间,本机已经运行 10 天 6 小时 2 分钟 |
1 users | 当前登陆了一个用户 |
load average: 0.00, 0.01, 0.05 | 系统在之前 1 分钟,5 分钟,15 分钟的平均负载。一般认为小于 1 时,负载较小;如果大于 1,系统已经超出负荷。 |
(2) 第二行为进程信息
内容 | 说明 |
---|---|
Tasks: 119 total | 系统中的进程总数 |
1 running | 正在运行的进程数 |
118 sleeping | 睡眠的进程 |
0 stopped | 正在停止的进程 |
0 zombie | 僵尸进程。如果不是 0,需要手工检查僵尸进程 |
僵尸进程指:这个进程正在终止,但是还没有终止完全。
(3) 第三行为 CPU 信息
内容 | 说明 |
---|---|
%Cpu(s): 0.0 us | 用户模式占用的 CPU 百分比 |
0.0 sy | 系统模式占用的 CPU 百分比 |
0.0 ni | 改变过优先级的用户进程占用的 CPU 百分比 |
100.0 id | 空闲 CPU 的 CPU 百分比 |
0.0 wa | 等待输入/输出的进程的占用 CPU 百分比 |
0.0 hi | 硬中断请求服务占用的 CPU 百分比 |
0.0 si | 软中断请求服务占用的 CPU 百分比 |
0.0 st | st(steal time)虚拟时间百分比。就是当有虚拟机时,虚拟 CPU 等待实际 CPU 的时间百分比 |
(4) 第四行为物理内存信息
内容 | 说明 |
---|---|
KiB Mem : 1012400 total | 物理内存的总量,单位 KB |
279524 free | 空闲的物理内存数量 |
196900 used | 已经使用的物理内存数量 |
535976 buff/cache | 作为缓冲/缓存的内存数量 |
(5) 第五行为交换分区(swap)信息
内容 | 说明 |
---|---|
KiB Swap: 1888252 total | 交换分区(虚拟内存)的总大小 |
1888252 free | 空闲交换分区的大小 |
0 used | 已经使用的交换分区的大小 |
574856 avail Mem | 作为缓存的交换分区的大小 |
注意:top 命令以及 Windows 的任务管理器,本身是非常耗费资源的,看一看就行,没事不要总打开。top 命令本身比较消耗资源。
5、查看进程树
1 | 格式: |
终止进程
1、kill 命令
1 | # 查看可用的进程信号 |
最常用的进程信号:1(重启)、9(强制终止)、15(正常终止,默认为此项)
2、killall 命令
1 | 格式: |
3、pkill 命令
1 | 格式: |
pkill 和 killall 其实非常类似,都是根据进程名杀死进程,区别就是 pkill 支持 -t 选项,即根据终端号踢出用户。
工作管理
1、把进程放入后台
1 | # 方式一:使用 & ,& 表示放入后台继续运行 |
2、查看后台的工作
1 | 格式: |
注:[数字]表示工作号,表示第几个放入的。「+」号代表最近一个放入后台的工作,也是工作恢复时,默认恢复的工作。「-」号代表倒数第二个放入后台的工作。在不指定工作号的情况下,默认第一个恢复「+」,其次「-」。
3、将后台暂停的工作恢复到前台执行
1 | 格式: |
4、把后台暂停的工作恢复到后台执行
1 | bg %工作号 |
注:后台恢复执行的命令,是不能和前台有交互的,否则不能恢复到后台执行。
系统资源查看
1、vmstat 命令监控系统资源
1 | 格式: |
2、dmesg 开机时内核检测信息,dmesg 是一个重要的信息查看命令,可以通过它判断系统的硬件信息,如:查看 CPU 的信息 dmesg | grep CPU
。
3、free 命令查看内存使用状态
1 | 格式: |
4、缓存和缓冲的区别
简单来说缓存(cache)是用来加速数据从硬盘中「读取」的,而缓冲(buffer)是用来加速数据「写入」硬盘的。
由于内存的运行速度比硬盘快,而且快的多。缓冲是为了避免频繁的对硬盘进行写操作,是将要写入的内容积累到一定数量然后一次性写入硬盘。
5、查看 CPU 信息:cat /proc/cpuinfo
。注意 /proc 目录是内存的挂载点,一旦断电这个目录里面的内容就会消失,即每次开机都系统都会检测 cpu 并写入该文件。
6、uptime 命令:显示系统的启动时间和平均负载,也就是 top 命令的第一行。w 命令也可以看到这个数据。
7、查看系统与内核相关的信息
1 | 格式: |
8、判断当前系统的位数:file /bin/ls
file 命令是查看文件类型的命令,只要使用 file 命令查询一个系统的外部命令的文件类型,注意不能是 Shell 的内部命令,会附带的显示操作系统位数。
9、查询当前 Linux 系统的发行版本:lsb_release -a
10、列出进程打开或使用的文件信息
1 | 格式: |
系统定时任务
1、crond 服务管理与访问控制(cron 计划任务,d 表示 deamon 守护进程)
1 | # crond 启动命令 |
2、用户的 crontab 设置
1 | 格式: |
执行命令 crontab -e
进入 crontab 编辑界面。会打开 vim 编辑你的工作。格式:* * * * * 执行的任务
,注意:在 crontab 中 % 是有特殊含义的,为了能够格式化日期,必须加转义符,否则定义的时间是无法正确执行 date=$(date +\%y\%m\%d)
。
crontab 编辑格式中五个「*」的含义:
项目 | 含义 | 范围 |
---|---|---|
第一个 * | 一小时当中的第几个分钟 | 0-59 |
第二个 * | 一天当中的第几个小时 | 0-24 |
第三个 * | 一个月当中的第几个天 | 1-31 |
第四个 * | 一年当中的第几个月 | 1-12 |
第五个 * | 一周当中的第几天 | 0-7(0 和 7 都代表星期日) |
crond 定时任务特殊符号解释:
特殊符号 | 含义 |
---|---|
* | 代表任何时间。比如第一个 * 就表示一小时中每分钟都执行一次的意思 |
, | 代表不连续的时间。比如 0 8,12,16 * * * 命令 ,就代表在每天的 8 点 0 分,12 点 0 分, 16 点 0 分都执行一次命令 |
- | 代表连续的时间范围。比如 0 5 * * 1-6 命令 ,代表在周一到周六的凌晨 5 点 0 分执行命令 |
*/n | 代表每隔多久执行一次。比如 */10 * * * * 命令 ,代表每隔 10 分钟就执行一遍命令 |
crond 定时任务示例解释:
时间 | 含义 |
---|---|
45 22 * * * 命令 |
在每天的 22 点 45 分执行命令 |
0 17 * * 1 命令 |
在每周 1 的 17 点 0 分执行命令 |
0 5 1,15 * * 命令 |
在每个月的 1 号和 15 号 5 点 0 分执行命令 |
40 4 * * 1-5 命令 |
每周 1 到周 5 的 4 点 40 分执行命令 |
*/10 4 * * * 命令 |
每天 4 点,每隔 10 分钟执行一次命令 |
0 0 1,15 * 1 命令 |
每月 1 号和 15 号,每周 1 的 0 点 0 分都会执行命令。注意:星期几和几号最好不要同时出现,因为他们定义的都是天。非常容易让管理员混乱 |
如果写的是「*」代表任意时间,如果写的是具体的值,代表指定的时间。
v1.5.2