第12章 Linux系统管理
1. 进程管理
1.1 进程查看
(1)进程简介
进程是正在执行的一个程序或命令(如ls命令也是一个进程),每个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。
(2)进程管理的作用
①判断服务器健康状态
②查看系统中所有进程
③杀死进程
(3)查看系统中所有的进程
#ps aux //使用Unix操作系统的BSD格式,其中a表示所有前台,x表示后台进程,u表示显示创建进程的用户。
#ps -le //使用linux标准命令格式,其中l表示详细信息,e表示所有进程

①USER:该进程是由哪个用户产生的。
②PID:进程的ID号
③%CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源
④&MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源
⑤VSZ:该进程占用虚拟内存的大小,单位KB
⑥RSS:该进程占用实际物理内存的大小,单位KB
⑦TTY:该进程是在哪个终端运行的。其中的tty1-tty7代表本地控制台终端,tty1-tty67是本地的字符界面终端,tty7是图形终端。pts/0-255代表虚拟终端。
⑧STAT:进程状态。常见的状态有:R—运行;S-睡眠;T—停止状态;s-包含子进程;+—位于后台。
⑨START,TIME:进程启动时间和占用CPU的运算时间。
⑩COMMAND:产生此进程的命令名。
(4)查看系统的健康状态:#top [选项] //类似于Windows的任务管理器
①其中选项:“-d 秒数” 可以指定top命令每隔几秒更新。默认是3秒
②在top命令的交互模式中,可以执行的命令
|
命令 |
作用 |
|
?或h |
显示交互模式的帮助 |
|
P |
以CPU使用率排序,默认就是此项 |
|
M |
以内存的使用排序 |
|
N |
以PID排序 |
|
q |
退出top |
③top显示的信息

|
行数 |
内容 |
说明 |
|
第1行 任务队列信息 |
12:02:46 |
系统当前时间 |
|
up 45 min |
系统的运行时间,本机己经运行了45分钟 |
|
|
1 users |
当前登录了1个用户 |
|
|
Load average: 0.03,0.04,0.05 |
系统在之前1分钟、5分钟、15分钟的平均负载。一般认为小于1,表示负载较小。如果大于1,系统己经超出负荷。 |
|
|
第2行 (进程信息) |
Tasks: 84 total |
系统中的进程总数 |
|
1 running |
正在运行的进程数 |
|
|
83 sleeping |
睡眠的进程 |
|
|
0 stopped |
正在停止的进程 |
|
|
0 zombie |
僵尸进程。如果不是0,需要手工检查僵尸进程 |
|
|
第3行 CPU信息 |
Cpus(s):0.0%us |
用户模式占用的CPU百分比 |
|
0.0%sy |
系统模式占用的CPU百分比 |
|
|
0.0%ni |
改变过优先级的用户进程占用的CPU百分比 |
|
|
99.7%id |
空闲的CPU百分比 |
|
|
0.0%wa |
等待输入/输出的进程占用CPU百分比 |
|
|
0.0%hi |
硬中断请求服务占用的CPU百分比 |
|
|
0.3%si |
软中断请求服务占用的CPU百分比 |
|
|
0.0%st |
st(Steal time)虚拟时间百分比。就是当有虚拟机时,虚拟CPU等待实际CPU的时间百分比 |
|
|
第4行 物理内存信息 |
Mem:103034k total |
物理内存的总量,单位KB |
|
128148k used |
己经使用的物理内存数量 |
|
|
902196k free |
空闲的物理内存数量 |
|
|
13680k buffers |
作为缓冲的内存数量 |
|
|
第5行 交换分区(swap)信息 |
Swap:1023996k total |
交换分区(虚拟内存)的总大小 |
|
0k used |
己经使用的交换分区的大小 |
|
|
1023996k free |
空闲交换分区的大小 |
|
|
37772k cached |
作为缓存的交换分区的大小 |
(5)查看进程树:#pstree [选项] //其中选项:-p显示进程的PID,-u显示进程所属的用户。
1.2 终止进程
(1)kill 命令
①查看可用的进程信息:#kill –l
|
信号代号 |
信号名称 |
说明 |
|
1 |
SIGUP |
该信号让进程立即关闭,然后重新读取配置文件之后重启。 |
|
2 |
SIGINT |
程序终止信号,用于终止前台进程。相当于输出ctrl+c快捷键 |
|
8 |
SIGFPE |
在发生致命的算术运算错误时发出。不仅包括浮点运算错误,还包括溢出及除0等其它所有的算术错误。 |
|
9 |
SIGKILL |
用来立即结束程序运行。本信号不能被阻塞、处理和忽略。一般用于强制终止进程。 |
|
14 |
SIGALARM |
时钟定时信号,计算的是实际的时间或时钟时间。alarm函数使用该信号 |
|
15 |
SIGTERM |
正常结束进程的信号,kill命令的默认信号。有时如果进程己经发生问题,这个信号是无法正常终止进程的,这时才可以尝试SIGKILL信号,也就是信号9. |
|
18 |
SIGCONT |
该信号可以让暂停的进程恢复执行,本信号不能被阻断 |
|
19 |
SIGSTOP |
该信号可以暂停前台进程,相当于输入ctrl+z快捷键。本信号不能被阻断。 |
②终止进程:#kill -信号代码 进程号
(2)killall命令:#killall [选项] [信号] 进程名 //按进程名杀死进程
其中选项:-i表示交互式,询问是否要杀死某个进程。-I:忽略进程名的大小写。如,#killall -9i httpd,表示强制杀死httpd进程。
(3)pkill命令:#pkill [选项] [信号] 进程名 //按进程名终止进程。其中选项“-t 终端号”:按照终端号踢出用户。
①#w //使用w命令查询本机己经登录的用户
②#pkill -t -9 pts/1 //强制杀死从pts/1虚拟终端登录的进程。
2. 工作管理
(1)把进程放入后台:(后台进程相当于Windows下最小化的窗口)
①方法1:#tar –zcf etc.tar.gz /etc & //其中的&表示将进程放入后台,相当于Windows中的窗口最小化。注意,这种方式放入后台的,进程仍在执行
②方法2:如,#top //在top命令执行的过程中,按下ctrl+z快捷键。注意,这种方式放入后台的,进程会被暂停执行。
(2)查看后台的工作:#jobs [-l] //其中的-l显示工作的PID。
①输出结果,如:[1]+ 1742 停止 (信号) top
②注意,其中的[1]为工作号,表示放入后台的先后顺序,“+”号代表最后一个放入后台的工作,也是工作恢复时,默认恢复的工作。“-”号代表倒数第2个放入后台的工作。
(3)恢复后台暂停的工作
①恢复到前台执行:
#fg %工作号 //其中的%号可以省略,但要注意工作号和PID的区别。
②恢复到后台执行
#bg %工作号 //注意,后台恢复执行的命令,是不能和前台有交互的。否则不能恢复到后台执行。
3. 系统资源查看
|
查看内容 |
命令及说明 |
|
监控系统资源 |
#vmstat [刷新延时 刷新次数] //如#vmstat 1 3 |
|
开机时内核检测信息 |
#dmesg 或 #dmesg | grep CPU |
|
查看内存使用状态 |
#free [-b|-k|-m|-g] //以字节,KB、MB、GB为单位。默认以KB为单位。 |
|
查看CPU信息 |
#cat /proc/cpuinfo |
|
查看系统的启动时间和平均负载 |
#uptime, 也就是top命令的第1行。w命令也可以看到这个数据 |
|
查看系统与内核相关信息 |
#uname [选项] //其中选项-a用于查看系统所有西相关信息;-r查看内核版本;-s查看内核名称 |
|
判断当前系统的位数 |
#file /bin/ls |
|
查询当前Linux系统的发行版本 |
#lsb_release -a |
|
列出进程打开或使用的文件信息 |
#lsof [选项] //其中选项“-c 字符串”:只列出以字符串开头的进程打开的文件;“-u 用户名”:只列出某个用户的进程打开的文件;“-p pid”列出某个PID进程打开的文件。 |
4. 系统定时任务
(1)crond服务管理与访问控制
①#service crond restart //启动
②#chkconfig crond on //自启动
(2)用户的crontab设置:
①命令:#crontab [选项] //其中“-e”:编辑crontab定时任务;“-l”查询crontab任务。“-r”删除当前用户所有的crontab任务。
#crontab -e 进入编辑,增加形如:“* * * * * command”的任务

|
项目 |
含义 |
范围 |
|
第1个“*” |
1小时当中的第几分钟 |
0-59 |
|
第2个“*” |
1天当中的第几个小时 |
0-23 |
|
第3个“*” |
1个月当中的第几天 |
1-31 |
|
第4个“*” |
一年当中的第几个月 |
1-12 |
|
第5个“*” |
一周当中的星期几 |
0-7(0和7都代表星期日) |
②任务设置
|
时间 |
含义 |
特殊符号及含义 |
|
45 22 * * * 命令 |
在22点45分执行命令 |
①“*”:代表任何时间。比如第1个“*”表示1小时中的每分钟都会执行一次的意思。 ②“,”代表不连续时间。比如“0 8,12,16 * * * 命令”就代表每天的8点0分,12点0分,16点0分都执行一次命令。 ③“-”代表连续的时间范围。比如“0 5 * * 1-6 命令” 代表在周一至周六凌晨5点执行命令 ④“*/n”代表每隔多久执行一次。比如“*/10 * * * * 命令”代表每隔10分钟就执行一次命令。 |
|
0 17 * * 1 命令 |
在每周1的17点0分执行命令 |
|
|
0 5 1,15 * * 命令 |
每月1号和15号的5点0分执行命令 |
|
|
40 4 * * 1-5 命令 |
每周一至周五的4点40分执行命令 |
|
|
*/10 4 * * * 命令 |
每天凌晨4点,每隔10分钟执行一次命令 |
|
|
0 0 1,15 * 1 命令 |
每月1号和15号或每周1的0点0分都会执行命令。注意:星期几和几号最好不要同时出现。因为他们定义的都是天,非常容易搞混 。 |
(3)应用举例
# crontab -e
*/ * * * * /bin/echo "aa" >> /tmp/test //每5分钟执行 * * /sbin/shutdown -r now //每周2凌晨5点5分执行 ,, * * /root/sh/autobak.sh //每月1、10、15号5点执行
第12章 Linux系统管理的更多相关文章
- 第二十七章 Linux系统管理之定时任务
一.定时任务概述 1.含义:设定某个日期或时间周期性执行指令. 2.crond # 守护进程 分钟级别 rond是Linux系统中用来定期执行命令或脚本的一种服务软件,一般情况下,我们安装完CentO ...
- 第12章 Linux配置定时任务详解
12.1 配置定时任务 首先需弄清的概念: (1).crond是一个daemon类程序,路径为/usr/sbin/crond.默认会以后台方式启动,service或systemd方式启动crond默认 ...
- Linux基础学习(13)--Linux系统管理
第十三章——Linux系统管理 一.进程管理 1.进程查看: (1)进程简介:进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源. (2)进程管理的 ...
- Linux就这个范儿 第12章 一个网络一个世界
Linux就这个范儿 第12章 一个网络一个世界 与Linux有缘相识还得从一项开发任务说起.十八年前,我在Nucleus OS上开发无线网桥AP,需要加入STP生成树协议(SpanningTree ...
- 【菜鸟学习Linux】-第三章- Linux环境搭建-使用VMware9安装Ubuntu 12.04系统
上一步,我们安装了VMware9虚拟机,现在我们就是用它来安装Ubuntu12.04系统,至于Ubuntu是什么,我就不废话了,大家google一下,比我讲的清楚,好了,开始干活! Ubuntu官网下 ...
- 【转载】Linux小白福利:《超容易的Linux系统管理入门书》(三)在虚拟机上安装Linux
本篇是Linux小白最佳实践第3篇,目的就是让白菜们自己动手安装个Linux玩玩.如果你是Linux小白,请务必亲自动手来安装.不想安装多个操作系统的,虚拟机是最佳选择,一台电脑上可以用虚拟机安装7. ...
- CentOS 7.4 初次手记:第一章 Linux守护进程(daemon)
第一节 init & sysvinit 6 I sysvinit 运行顺序... 6 II Sysvinit和系统关闭... 7 III Sysvinit 的小结... 7 IV 运行级别.. ...
- Linux系统管理远程登录工具PUTTY
PuTTY 简介 PuTTY是一个Telnet.SSH.rlogin.纯TCP以及串行接口连线软件.较早的版本仅支持Windows平台,在最近的版本中开始支持各类Unix平台,并打算移植 ...
- 【转载】茶叶蛋干货!《超容易的Linux系统管理入门书》(连载十)进行动态主机配置DHCP
使用动态主机配置协议DHCP(Dynamic Host Configuration Protocol)则可以避免网络参数变化后一些繁琐的配置,客户端可以从DHCP服务端检索相关信息并完成相关网络配置, ...
随机推荐
- 为你的Web程序加个启动画面
.Net开发者一定熟悉下面这个画面: 这就是宇宙第一IDE Visual Studio的启动画面,学名叫Splash Screen(或者Splash Window).同样,Javar们一定对Eclip ...
- PHP赋值运算
1. 赋值运算:= ,意思是右边表达式的值赋给左边的运算数. $int1=10; $int1=$int1-6; //$int1=4 echo $int1,"<br>"; ...
- Go结构体实现类似成员函数机制
Go语言结构体成员能否是函数,从而实现类似类的成员函数的机制呢?答案是肯定的. package main import "fmt" type stru struct { testf ...
- input type='file'上传控件假样式
采用bootstrap框架样式 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> &l ...
- SQL-日期函数
GETDATE() :取得当前日期时间 DATEADD (datepart , number, date ),计算增加以后的日期.参数date为待计算的日期:参数number为增量:参数datepar ...
- MongoDB常用操作--集合1
1.创建集合有两种方式,显示创建和隐式创建 显示创建可以使用命令 db.createCollection("集合名称") 隐式创建可以使用命令 db.集合名称.insert({}) ...
- CentOS 7 安装出现 /dev/root does not exits 导致无法安装的问题
本人在官网下的是这个 CentOS-7-x86_64-DVD-1611.iso ,然后用UltraISO 9.6制作的U盘启动盘,不过在安装的时候出现了这个错误, 然后也是搜了好久,试了一下,下面这个 ...
- Unity C#最佳实践(上)
本文为<effective c#>的读书笔记,此书类似于大名鼎鼎的<effective c++>,是入门后提高水平的进阶读物,此书提出了50个改进c#代码的原则,但是由于主要针 ...
- js格式化日期
/** *对日期进行格式化, * @param date 要格式化的日期 * @param format 进行格式化的模式字符串 * 支持的模式字母有: * y:年, * M:年中的月份(1-12), ...
- Openstack Periodic Task
Openstack Periodic Task 周期性任务在各个模块的manager.py(computer,scheduler,cell,network)中添加. 添加方法:在模块manager类实 ...