一、 进程管理1. 什么是进程
进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的运行空间,并占有一定的系统资源。
2. 进程管理的作用
判断服务器健康状态
查看系统中所有进程
杀死进程
3. 进程的查看ps命令
ps aux 查看系统中所有进程,使用 操作系统格式
ps -le 查看系统中所有进程,使用 标准命令格式
选项
a:显示一个终端的所有进程,除了会话引线
u:显示进程的归属用户及内存使用情况
x:显示没有控制终端的进程
-l:长格式显示,显示更加详细的信息
-e:显示所有进程,和 作用一致
pstree [选项] 查看进程树
选项
-p:显示进程的
-u:显示进程的所属用户
STAT:进程状态。常见的状态有:
R:运行
S:睡眠
T:停止状态
s:包含子进程
+:位于后台
4. 进程的查看top命令
top [选项] 查看系统健康状态
选项
-d:秒数:指定 命令每隔几秒更新。默认是3秒
-b:使用批处理模式输出。一般和 选项合用
-n:次数:指定 命令执行的次数
在top命令的交互模式中可以执行的命令:
?或h:显示交互模式的帮助
P:以 使用率排序,默认就是此项
M:以 的使用率排序
N:以 排序
q:退出
使用top查看所有进程
5. 杀死进程
kill命令 杀死单一进程
:查看可用的进程信号
:重启进程
:强制杀死进程
killall命令
:按照进程名杀死进程
选项:
-i:交互式,询问是否要杀死某个进程
-I:忽略进程名的大小写
pkill命令
:按照进程名终止进程
选项:
-t:终端号:按照终端号剔除用户 //踢掉用户 pkill -9 -t pts/?
6. 进程优先级
Linux 操作系统是一个多用户,多任务的操作系统,Linux 系统中同时运行着非常多的进程。但 CPU 在同一时钟周期内只能运算一个指令。进程优先级决定了每个进程处理的先后顺序。
注意:系统优先级:只有NI可以改,priority由两个值PRI,NI相加
:使用前必须先停止进程
:可以修正在运行的进程
nice命令
:可以给新执行的命令直接赋 值,但不能修改已经存在的进程的 值
选项:
-n NI值:给命令赋予 值
例如:
nice -n -5 service httpd start
renice命令
:修改已经存在进程的 值的命令
例如:
renice -10 2125
修改NI值时有几个注意事项
NI 的值的范围是
普通用户调整 NI 的值的范围是 ,而且只能调整自己的进程
普通用户只能调高 NI值,不能降低
root 用户才能设定进程 NI 值为负值,而且可以调整任何用户的进程
PRI(最终值) = PRI(原始值)+ NI
用户只能修改 NI 值,不能直接修改时 PRI
数字越小,优先级越高
二、工作管理
工作管理指的是在单个登录终端中(也就是登录的 shell 界面中)同时管理多个工作的行为
注意事项:
当前的登录终端,只能管理当前终端的工作,而不能管理其他登录终端的工作
放入后台的命令必须可以持续运行一段时间,这样我们才能捕捉和操作这个工作
放入后台执行的命令不能和前台用户有交互或需要前台输入,否则放入后台只能暂停,而不能执行
1. 把进程放入后台
#在命令后加入 ,把命令放在后台执行
按下 快捷键,放在后台暂停
2. 查看后台的工作
选项:
-l:显示工作的 PID
注意:
代表最近一个放入后台的工作,也是工作回复时,默认恢复的工作
代表倒数第二个放入后台的工作
3. 将后台暂停的工作恢复到前台执行
#恢复前台运行
#恢复后台运行(不能有交互)
4. 后台命令脱离终端执行
把命令放入后台,只能在当前登录终端执行。一旦退出或关闭终端,后台程序就会停止
后台命令脱离登录终端执行的方法:
把需要后台执行的命令加入 /etc/rc.local文件
使用系统定时任务,让系统在指定的时间执行某个后台命令
使用 nohup命令(常用) nohup 命令 &
三、系统资源查看1. vmstat 命令监控系统资源
例如:
vmstat 1 3
2. dmsg 开机时内核检测信息
3. free 命令查看内存使用状态
选项:
-b:以字节为单位显示
-k:以KB为单位显示,默认就是以KB为单位显示
-m:以MB为单位显示
-g:以GB为单位显示
4. 查看 cpu 信息
5. uptime 命令
#显示系统的启动时间和平均负载,也就是top命令的第一行。w命令也可以看到这个数据
6. 查看系统与内核相关信息
选项:
-a:查看系统所有相关信息;
-r:查看内核版本;
-s:查看内核名称。
7. 列出进程打开或使用的文件信息
#列出进程调用或打开的文件信息
选项:
-c 字符串:只列出以字符串开头的进程打开的文件
-u 用户名:只列出某个用户的进程打开的文件
-p pid:列出某个PID进程打开的文件
缓冲和缓存的区别缓存(cache ) 是用来加速数据从硬盘中读取的缓冲(buffer)是用来加速数据写入硬盘的
查看当前Linux系统的发现版本
判断当前系统的位数
四、系统定时任务1. at 一次执行确定 安装
# 服务是否安装
# 服务的启动
的访问控制
如果系统中有/etc/at.allow文件,那么只有写入/etc/at.allow文件(白名单)中的用户可以使用at命令(/etc/at.deny文件会被忽略)
如果系统中没有/etc/at.allow文件,只有/etc/at.deny文件,那么写入/etc/at.deny文件(黑名单)中的用户不能使用at命令(注意:对root用户不起作用)
如果系统中这两个文件都不存在,那么只有root用户可以使用at命令
命令
m:当at工作完成后,无论是否命令有输出,都用email通知执行at命令的用户
c 工作号:显示该at工作的实际内容
时间:
HH:MM
HH:MM YYYY-MM-DD
HH:MM[ampm] [month][date]
HH:MM +[minuteshoursdaysweeks]
例子
在两分钟之后执行hello.sh脚本
其他 管理命令
#查询当前服务器上的 工作
#删除指定的 任务
2. crontab 循环定时crond 服务管理与访问控制
用户的 crontab 设置
选项:
-e:编辑crontab定时任务
-l:查询crontab任务
-r:删除当前用户所有的crontab任务
常用命令
#查看root用户的crontab任务
#删除root用户所有的定时任务
#添加crontab任务
crontab 注意事项
六个选项不能为空
crontab定时任务最小有效时间为分钟,最大为月
日期和星期最好不要同时出现
执行任务写绝对路径
访问控制
如果系统中有/etc/cron.allow文件(白名单),那么只有在此名单下的用户可以使用cron命令;
如果系统中没有/etc/cron.allow文件,只有/etc/cron.deny文件(黑名单),那么在此名单下的用户不能使用cron命令【对root不起作用】
如果系统这两个文件都不存在,那么只有root用户可以使用cron命令
crontab格式:
第一个*:一小时当中的第几分钟,范围0-59
第二个*:一天当中的第几小时,范围0-23
第三个*:一个月当中的第几天,范围1-31
第四个*:一年当中的第几月,范围1-12
第五个*:一周当中的星期几,范围0-7(0和7都代表星期日)
crontab 举例:
45 22 * * * 命令:在22点45分执行命令
0 17 * * 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号,以及每周一的0点0分都执行命令
3. 执行系统的定时任务的方法:
第一种:手工执行定时任务(crontab -e,默认当前用户)第二种:系统定时任务
把需要定时执行的脚本复制到/etc/cron.目录中的任意一个
修改/etc/crontab配置文件(必须指定用户)
Reference:IMOOC-Linux系统管理
领取专属 10元无门槛券
私享最新 技术干货