(十三)Linux系统管理
第一节 进程管理
1.进程简介
进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。Linux中的命令也是进程。
2.进程管理的作用
1)判断服务器健康状态
2)查看系统中所有进程
3)杀死进程
3.查看系统中的所有进程
ps aux 查看系统中所有进程,使用BSD操作系统格式
ps -le 查看系统中所有进程,使用Linux标准命令格式
显示结果中各个字段的含义
USER:该进程是由哪个用户产生的
PID:进程的ID号
%CPU:该进程占用的CPU资源的百分比,占用越高,进程越耗费资源
%MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源
VSZ:该进程占用虚拟内存的大小,单位KB
RSS:该进程占用实际物理内存的大小,单位KB
TTY:该进程是在哪个终端中运行的,其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面,tty7是图形界面。pts/0-256代表虚拟终端。
STAT:进程状态。常见的状态有:R:运行,S:睡眠,T:停止状态,s:包含子进程,+:位于后台
START:该进程的启动时间
TIME:该进程占用CPU的运算时间,注意不是系统时间
COMMAND:产生此进程的命令名
4.查看系统健康状态
top [选项]
选项
-d 秒数 指定top命令每隔几秒更新,默认是3秒
在top命令的交互模式当中可以执行的命令
?或h 显示交互模式的帮助
P 以CPU使用率排序,默认是此选项
M 以内存的使用率排序
N 以PID排序
q 推出top
第一行为任务队列信息
12:26:46 系统当前时间
up 1 day,13:32 系统的运行时间,本机已经运行1天13小时32分钟
2 users 当前登录了两个用户
load average 系统在之前1分钟,5分钟,15分钟的平均负载。一般认为小于1时,负载较小。如果大于1,系统已经超出负荷。
第二行为进程信息
Tasks: 95 total 系统中的进程总数
1 running 正在运行的进程数
94 sleeping 睡眠的进程
0 stopped 正在停止的进程
0 zombie 僵尸进程,如果不是0,需要手工检查僵尸进程
第三行为CPU信息
Cpu(s): 0.1%us 用户模式占用的CPU百分比
0.1%sy 系统模式占用的CPU百分比
0.0%ni 改变过优先级的用户进程占用的CPU百分比
99.7%id 空闲CPU的CPU百分比
0.1%wa 等待输入/输出的进程占用的CPU百分比
0.0%hi 硬中断请求服务占用的CPU百分比
0.1%si 软中断请求服务占用的CPU百分比
0.0%st st(Steal time)虚拟时间百分比,就是当有虚拟机时,虚拟CPU等待实际CPU的时间的百分比
第四行为物理内存信息
Mem: 625344k total 物理内存信息的总量,单位KB
571504K used 已经使用的物理内存数量
53840K free 空闲的物理内存数量,我们使用的是虚拟机,总共只分配了628M内存,所以只有53MB的空闲内存了
65800K buffers 作为缓冲的内存数量
第五行为交换分区(swap)信息
Swap: 524280k total 交换分区(虚拟内存)的总大小
0K used 已经使用的交互分区的大小
524280k free 空闲交换分区的大小
409280k cached 作为缓存的交互分区的大小
5.查看进程树
pstree [选项]
选项
-p: 显示进程的PID
-u: 显示进程的所属用户
6.kill命令
kill -l 查看可用的进程信号
实例命令
kill -1 22354 重启进程
kill -9 22368 强制杀死进程
7.killall命令
killall [选项] [信号] 进程名 按照进程名杀死进程
选项
-i: 交互式,询问是否要杀死某个进程
-I: 忽略进程名的大小写
8.pkill命令
pkill [选项] [信号] 进程名 按照进程名终止进程
选项
-t 终端号: 按照终端号踢出用户
按照终端号踢出用户
w 使用w命令查询本机已经登录的用户
pkill -t -9 pts/1 强制杀死从pts/1虚拟终端登陆的进程
第二节 工作管理
1.把进程放入后台
1) tar -zcf etc.tar.gz /etc &
2) top 在top命令执行的过程中,按下ctrl+z快捷键
注意:前一种方法将进程放入后台运行,而后一种方法将进程放入后台暂停
2.查看后台的工作
jobs [-l]
选项
-l 显示工作的PID
注意:"+"号代表最近一个放入后台的工作,也是工作恢复时,默认恢复的工作。"-"号代表倒数第二个放入后台的工作
3.将后台暂停的工作恢复到前台执行
fg %工作号
参数
%工作号 %号可以省略,但是注意工作号和PID的区别
4.把后台暂停的工作恢复到后台执行
bg %工作号
注意:后台恢复执行的命令比如top,vim等命令是不能和前台交互的,否则不能恢复到后台执行
第三节 系统资源查看
1.vmstat命令监控系统资源
vmstat [刷新延时 刷新次数]
例如:vmstat 1 3 监听3次每次隔1秒
主要显示以下一些字段:
procs 进程数
memory 内存使用
swap 交换分区使用
io 硬盘输入输出使用
system 系统资源的使用
cpu CPU资源的使用
2.dmesg开机时内核检测信息
dmesg
dmesg | grep CPU
3.free命令查看内存使用状态
free [-b|-k|-m|-g]
选项
-b 以字节为单位显示
-k 以KB为单位显示,默认是KB为单位显示
-m 以MB为单位显示
-g 以GB为单位显示
缓存和缓冲的区别
简单来说缓存(cache)是用来加速数据从硬盘中"读取"的,而缓冲(buffer)是用来加速数据"写入"硬盘的。这两部分的内存只能由内核直接调用,而不能被其他进程或程序调用
4.查看CPU信息
cat /proc/cpuinfo
每次开机都会进行CPU的检测并写入/proc/cpuinfo这个文件中
5.uptime命令
uptime 显示系统的启动时间和平均负载,也就是top命令的第一行,w命令也可以看到这个数据
6.查看系统与内核相关信息
uname [选项]
选项
-a 查看系统所有相关信息
-r 查看内核版本
-s 查看内核名称
7.判断当前系统的位数
file /bin/ls
原理:使用file命令查看系统外部命令的文件类型
8.查询当前Linux系统的发行版本
lsb_release -a
9.列出进程打开或使用的文件信息
lsof [选项] 列出进程调用或打开的文件的信息
选项
-c 字符串 只列出以字符串开头的进程打开的文件
-u 用户名 只列出某个用户的进程打开的文件
-p pid 列出某个PID进程打开的文件
第四节 系统定时任务
1.crond服务管理与访问控制
service crond restart
chkconfig crond on
2.用户的crontab设置
crontab [选项]
选项
-e 编辑crontab定时任务
-l 查询crontab任务
-r 删除当前用户所有的crontab任务
crontab -e 进入crontab编辑界面,会打开vim编辑你的工作
* * * * * 执行的任务
项目 含义 范围
第一个 "*" 一天当中的第几分钟 0-59
第二个"*" 一天当中的第几小时 0-23
第三个"*" 一个月当中的第几天 1-31
第四个"*" 一年当中的第几月 1-12
第五个"*" 一周当中的星期几 0-7(0和7都代表星期日)
特殊符号 含义
* 代表任何时间,比如第一个"*"就代表一小时中每分钟都执行一次的意思
, 代表不连续的时间,比如"0 8,12,16 * * * 命令"就代表在每天的8点0分,12点0分,16点0 分都执行一次命令
- 代表连续的时间范围,比如"0 5 * * 1-6 命令"就代表在周一到周六的凌晨5点0分执行命令
*/n 代表每隔多久执行一次,比如"*/10 * * * * 命令",代表每隔10分钟就执行一边命令
例子如下:
45 22 * * * 命令 在22点45分执行命令
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分都会执行命令
注意:星期几和几号最好不要同时出现,因为他们定义的都是天,非常容易让管理员混乱。定时任务能识别的最小范围是分钟,即每满一分钟就执行一次
举例
*/5 * * * * /bin/echo "111">>/tmp/test
5 5 * * 2 /sbin/shutdown -r now
0 5 1,10,15 * * /root/sh/autobak.sh
注意:在定时任务中的脚本里写日期时"%"前要加转义符"\"