Linux 系统管理(四)

06——进程和计划任务管理

1>程序和进程的关系

1、程序

保存在硬盘、光盘等介质中的可执行代码和数据
静态保存的代码

2、进程

在CPU及内存中运行的程序代码
动态执行的代码
父、子进程:每一个进程可以创建一个或多个进程

2>静态查看进程统计信息 ps命令

1、pa aux 命令
作用:以简单列表的形式显示出进程信息
a:显示当前终端下的所有进程信息,包括其他用户的进程
u:使用以用户为主的格式输出进程信息
x:显示当前用户在所有终端下的进程信息
2、ps -elf 命令
作用:以长格式显示系统中的进程信息,并且包含更丰富的内容
-e:显示系统内的所有进程信息
-l:以长(long)格式显示进程信息
-f:使用完整(full)的格式显示进程信息
3、直接使用 ps 命令,将只显示当前用户回话中打开的进程

在这里插入图片描述

4、查看某个进程的详细信息
ps aux | grep "进程名称"
ps -elf  | grep "进程名称"

3>动态查看进程统计信息 top命令

1、作用

top命令将会在当前终端以全屏交互式的界面显示进程排名,及时跟踪包括CPU、内存等系统资源占用情况,默认情况下三秒刷新一次,默认以CPU占有率排序。

2、常用选项
-d:指定刷新的间隔时间,单位秒
-b:以批量处理模式操作,一般与-n同时使用
-n:指定循环显示的次数
-u:指定用户名
-p:指定进程号

注意:当CPU占有率过高时,不应再直接执行top命令查看,可以将信息存入一个文件内查看,以免CPU占有率过高导致崩溃。

3、常用交互命令

P:根据CPU使用百分百大小进行排序(默认进入时即为此排序)
M:根据驻留内存大小进行排序
T:根据累积时间进行排序
k:终止一个进程
q:退出程序
r:重新安排一个进程的优先级别

在这里插入图片描述

解释:
PID:进程号
USER:进程所有者的用户名
PR:优先级
NI:nice值。负值表示高优先级,正值表示低优先级
VIRT:进程使用的虚拟内存总量,单位kb
RES:进程使用的、未被换出的物理内存大小,单位kb
SHR:共享内存大小,单位kb
S:进程状态
%CPU:上次更新到现在的CPU时间占用百分比
%MEM:进程使用的物理内存百分比
TIME+:进程使用的CPU时间总计,单位1/100秒
COMMAND:命令

4>查看进程信息

1、pgrep 命令
作用:根据特定条件查询PID信息
常用选项:
-l:显示进程名
-U:显示特定用户
-t:显示终端

在这里插入图片描述

2、pstree 命令
作用:以树形结构列出进程信息
常用选项:
-a:显示完整信息
-u:列出队友用户名
-p:列出队友PID号

5>进程的启动方式

1、手工启动:
  1. 前台启动:用户输入 命令,直接执行程序
  2. 后台启动:在命令行尾加入 “&”符号
  3. 进程的前后台调度
    Ctrl+z 将当前进程挂起,即调入后台并停止执行
    jobs 命令 查看处于后台的任务列表,加-l 同时显示PID号
    fg命令 将后台进程恢复到前台运行,可指定任务程序号
    bg 命令 将后台暂停的进程调至后台运行
  4. 终止进程的运行
    1)Ctrl+z 中断正在执行的命令
    2)kill、 killall 命令
    kill 用于终止指定PID号的进程
    killall 用于终止指定名称的所有进程
    -9 选项用于强制终止
    3)pkill 命令
    作用:根据特定条件终止相应的进程
    常用选项:
    -U:根据进程所属的用户名终止相应进程
    -t:根据进程所在的终端终止相应进程
2、调度启动:
  1. 使用at命令,设置一次性任务计划
    1)服务脚本:/etc/init.d/atd
    2)设置格式:at [HH:MM] [yyyy-mm-dd] 设置当天的任务计划可不加日期
    3)基本操作:
    Ctrl+D 保存退出
    atq 查询现有的一次性任务计划
    atrm[任务序号] 删除第几项任务
例1:设置在今天18::40自动执行:统计该时间点系统中由root用户运行的进程数量,并将该数值保存到/tmp/pa.root文件中。
at 18:40
at> pgrep -U root | wc -l >/tmp/ps.root
at><EOT>
例2:设置在2019年4月14日晚上22::00自动关机
at 22:00 2019-4-14
at>init 0
at><EOT>
例3:设置7天后晚上22::00自动关机
at 22:00 +7 days
at>init 0
at><EOT>
例4:设置明天晚上22::00重启httpd服务
at 22:00 tomorrow
at> /etc/init.d/httpd restart
at><EOT>
  1. 使用crontab 命令,设置周期性计划任务
    1)脚本名称:/etc/init.d/crond
    2)主要配置文件:
    全局配置文件:/etc/crontab
    在这里插入图片描述
    系统默认的设置是:/etc/cron.*/
    用户定义的设置是:/var/spool/cron/用户名
    3)管理cron计划任务
    编辑:crontab -e [-u 用户名]
    查看:crontab -l [-u 用户名]
    删除:crontab -r [-u 用户名]
    注意: -u只有root用户可用
    4)crontab任务配置的格式
    在这里插入图片描述
    5)时间数值的特殊表示方法
    星号 * 表示该范围内的任意时间
    逗号, 表示间隔的多个不连续的时间点
    短横 - 表示一个连续的时间范围
    斜杠 / 指定间隔的时间频率
例:每天早上7:50自动开启sshd,22:50关闭
每隔5天清空一次FTP 服务器公共目录/var/ftp/pub
每周六7:30重启httpd服务
每周一、三、五的17:50打包备份/etc/httpd 目录
crontab -e
50  7   *    *  *  /etc/init.d/sshd start
50  22  *    *  *  /etc/init.d/sshd stop
0   0   */5  *  *  /bin/rm -rf /var/ftp/pub/*
30  7   *    *  6  /etc/init.d/httpd restart
30  17  *    *  1,3,5  /bin/tar jcf httpdconf.tar.bz2 /etc/httpd/
注意:命令建议使用绝对路径

猜你喜欢

转载自blog.csdn.net/weixin_44649906/article/details/89234001