进程管理的作用:
1).判断服务器健康状态(最重要)
2).查看系统中所有进程
3).杀死进程
# 查看系统中所有进程,使用BSD操作系统格式,使用没"-"
ps aux
# 查看系统中所有进程,使用Linux标准命令格式
ps -le
- a: 显示一个终端所有进程,除了会话引线
- u: 显示进程的归属用户及内存的使用情况
- x: 显示没有控制终端的进程
- -l: 长格式的显示。显示更加详细的信息
- -e: 显示所有进程。和-A作用一致
USER: 该进程由哪个用户产生的
PID:进程id,注意/sbin/init 的PID永远是1,是其它进程的父进程。
%CPU: 该进程占用CPU资源的百分比,占用越高,进程越耗费资源;
%MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源
VSZ:该进程占用虚拟内存的大小,单位为KB
RSS:该进程占用实际物理内存的大小 ,单位为KB
TTY:该进程是在哪个终端中运行的。其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形终端。pts/0-255 代表虚拟终端。
STAT:进程状态。常见的状态有:
-R: 运行 -S:睡眠
-T:停止状态
-s: 包含子进程
-+:位于后台
START:该进程的启动时间
TIME:该进程占用CPU的运算时间,注意不是系统时间
COMMAND: 产生此进程的命令名。
(2)pstree:查看进程树
-p: 显示进程的PID
-u: 显示进程的所属用户
(3)top [选项]
-d 秒数:指定top命令每隔几秒更新。默认是3秒
-b :使用批处理模式输出。一般和"-n"选项合用
-n 次数:指定top命令执行的次数。一般和"-b"选项使用
在top命令的交互模式当中可以执行的命令:
->?或h: 显示交互模式的帮助
->P:以CPU使用率排序,默认就是此项
->M:以内存的使用率排序
->N:以PID排序
->q:推出top
前五行是最重要的,用于判断系统的稳定性
后面进程的排序默认是根据进程占CPU率的大小来排序的。修改排序方式可以在交互模式当中输入执行命令,如P
第一行信息为任务队列信息
第二行为进程信息
第三行为CPU信息
关注的是:空闲CPU的CPU百分比,不能低于20%.
第四行为物理内存信息
第五行为交换分区(swap)信息
对上面几个比较重要的点解释
# 重启进程
kill -1 进程PID
# 强制杀死进程
kill -9 进程PID
# 按照进程名杀死进程
(5)killall [选项] [信号] 进程名
-i:交互式,询问是否要杀死某个进程
-I:忽略进程名的大小写(大写的i)
# 按照进程终止进程
(6)pkill [选项] [信号] 进程名
-t 终端号:按照终端号提出用户
如:pkill -9 -t pts/1
通过ps -le | more 可以看到
PRI代表Priority,NI代表Nice。这两个值都是优先级,数字越小代表进程优先级越高
(3)nice: nice命令可以给新执行的命令直接赋予NI值,但是不能修改已经存在进程的NI值
-n NI值:给命令赋予NI值
如nice -n -4 service httpd start
(4)renice命令:修改已经存在进程的NI值的
renice [优先级] PID
如:renice -10 2125
-----------------------------------------------------------------------------------------------------------------------------------
工作管理:指是在单个登陆终端中(也就是登录的shell界面中)同时管理多个工作的行为。
(5)jobs: 查看系统当中有多少个程序在后台中运行的命令。(window是最小化)如Linux复制一个很多文件,复制信息会一直页面,这时候需要把这个放到后台去(这个命令不能与前台有交互,不然会停止这个进程)。
1、把命令放入后台,
# 方法1: 把命令放入后台,并在后台执行!(在后面加&)
tar -zcf etc.tar.gz /etc &
# 方法2:按下ctrl+z快捷键,放在后台暂停!(ctrl+c是终止)
比较特殊的是top和vim,不管用方法一还是二,用jobs查看,这个进程在后台都是停止的。
2.查看后台的工作
(5)jobs [-l]
-l: 显示工作的PID
注:"+"号代表最后一个放入后台的工作,也是工作恢复时,默认恢复的工作。"-"号代表倒数第二个放入后台的工作
3.将后台暂停的工作恢复到前台执行
(6)fg %工作号
-%工作号:%号可以省略,但是注意工作号和PID的区别
changwen@ubuntu:~$ jobs
[1]+ Stopped top
changwen@ubuntu:~$ fg %1
4.将后台暂停的工作恢复到后台执行
(7)bg %工作号
注:后台恢复执行的命令,是不能和前台有交互的,否则不能恢复到后台执行
nohup [命令] & :即使终端关了,服务也不会停止
-----------------------------------------------------------------------------------------------------------------------------
1.(8)vmstat 命令监控系统资源
vmstat [刷新延时 刷新次数]
缓存和缓冲的区别
缓存(cache)是用来加速数据从硬盘中"读取"的
缓冲(buffer)是用来加速数据"写入"硬盘的
2.dmesg: 开机时内核自检信息。
# 可用来判断服务器硬件状态
dmesg | grep CPU
3.(9)free命令查看内存使用状态
free [-b|-k|-m|-g]
-b: 以字节为单位
-k: 以KB为单位显示,默认就是以KB
-m: 以MB为单位显示
-g: 以GB为单位显示
4.查看CPU信息
cat /proc/cpuinfo
5.uptime命令
uptime: 显示系统的启动时间和平均负载,也就是top命令的第一行。
w命令也可以看到这个数据
6.查看系统与内核相关信息
uname [选项]
-a: 查看系统所有相关信息
-r: 查看内核版本
-s: 查看内核名称
# 判断当前系统的位数
file /bin/ls
# 查询当前Linux系统的发行版本
lsb_release -a
7.列出进程打开或使用的文件信息
# 列出进程调用或打开的文件的信息
lsof [选项]
-c 字符串:只列出以字符串开关的进程打开的文件
-u 用户名:只列出某个用户的进程打开的文件
-p pid:列出某个PID进程打开的文件
----------------------------------------------------------------------------------------------------------
1.确定at安装
# at服务是否安装
chkconfig --list | grep atd
然后
service atd status
# at 服务的启动
service atd restart
例子,先创建一个只输出"hello"的hello.sh:
#在两分钟之后执行hello.sh脚本
at now +2 minutes
at> /home/changwen/hello.sh >> /home/changwen/hello.log
可以看到两分钟后会有hello.sh里多一条数据
(10)atq: 查询当前服务器上的at工作
(11)atrm [工作号]: 删除指定的at任务
1.crond 服务管理与访问控制
# 先查看服务是否存在
chkconfig --list | grep cron
# 看状态
service crond status
service crond restart
chkconfig crond on
2.用户的crontab 设置
crontab [选项]
-e: 编辑crontab 定时任务
-l: 查询crontab 任务
-r: 删除当前用户所有的crontab 任务
普通用户添加的任务不能超过自己权限的任务
# 进入crontab编辑界面。会打开vim编辑你的工作
crontab -e
格式:*****执行任务
# 1小时10分执行一次,2小时10执行一次......
10 **** /root/sh/apache_check.sh
# 第隔10分钟执行一次
*/10 **** /root/sh/apache_check.sh