Linux——进程管理(crontab实例傻瓜教程)

进程管理

  • 【前言】
  • 一、查看进程信息
    • 1.1 查看静态的进程统计信息——ps
      • 僵厂进程:
    • 1.2 查看静态的进程统计信息——ps -elf
    • 2.3 查看动态的进程排名信息——top
      • top命令
      • top各行解释
    • 2.4 根据特定条件查看进程信息——pgrep
    • 2.4 以树形结构列出进程信息——pstree
  • 二、进程的启动与控制
    • 2.1 启动进程
      • 2.1.1 手工启动
      • 2.1.2 进程的前后台调度(Ctrl + Z 组合键、 jobs命令和fg命令)
      • 2.1.3 终止进程的运行
  • 三、计划任务管理
    • 3.1 使用at命令 :一次性计划任务
    • 3.2 使用crontab命令,设置周期性计划任务
  • 【总结】

【前言】

程序:
(比如公司)

  • 保存在硬盘、光盘等介质可执行代码
  • 静态保存的代码(二进制)

进程:
(比如部门)

  • 在CPU及内存中运行的过程
  • 动态的代码(有生命周期和状态)
  • 有父、子进程

线程(比如员工)与进程:

  • 资源分配与调度
  • 进程是资源调配的基本单位
  • 线程是程序执行的最小单位

一、查看进程信息

1.1 查看静态的进程统计信息——ps

ps -aux(参数)
参数 说明
-u 列出进程的用户
-a 显示终端上的所有进程
-x 所有的终端进程
Linux——进程管理(crontab实例傻瓜教程)_第1张图片
名称 描述
USER 启动该进程的用户账号名称
PID 进程的ID,当前系统中是唯一的
%CPU 占用的CPU百分比
%MEM 占用内存的百分比
VSZ 该进程使用的虚拟内存量(KB)
RSS 该进程占用的物理内存量(KB)
TTY 启动进程的终端名。不是从终端启动的进程则显示为?
STAT 该进程的状态。(见表格下详解)
START 该进程被触发启动时间
TIME 该进程实际使用CPU运行的时间
COMMAND 进程的启动命令

STAT:
D:不可被唤醒的休眠状态;
R:正在运行状态;
S:处于休眠状态,可被唤醒;
T:停止状态,可能是在后台暂停或进程处于跟踪调试状态;
Z:僵厂进程,进程己经中止,但是部分程序还在内存当中 ,但其父进程无法正常中止它

僵厂进程:

僵尸进程是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程。如果父进程先退出 ,子进程被init接管,子进程退出后init会回收其占用的相关资源

1.2 查看静态的进程统计信息——ps -elf

ps -elf(参数)
参数 说明
-e 系统内所有进程
-l 长格式显示
-f 完整的格式显示
Linux——进程管理(crontab实例傻瓜教程)_第2张图片
Linux——进程管理(crontab实例傻瓜教程)_第3张图片
名称 描述
F 内核分配给进程的系统标记
s 进程的状态
UID 启动这些进程的用户
PID 进程的进程ID,每个进程都有一个唯一的PID
PPID 父进程的进程号(如果该进程是由另—个进程启动的)
C 进程生命周期中的CPU利用率
PRI 进程的优先级(越大的数字代表越低的优先级)
NI 谦让度值用来参与决定优先级
ADDR 进程的内存地址
sz 假如进程被换出,所需交换空间的大致大小
WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
STIME 进程启动时的系统时间
TTY 进程启动时的终端设备
TIME 运行进程需要的累计CPU时间
CMD 进程的启动命令

2.3 查看动态的进程排名信息——top

[root@Kiro]# top

Linux——进程管理(crontab实例傻瓜教程)_第4张图片
Linux——进程管理(crontab实例傻瓜教程)_第5张图片

top命令

命令 说明
P键 根据CPU使用百分比大小进行排序
M键 根据驻留内存大小进行排序
N键 根据启动时间进行排序
c键 切换显示命令名称和完整命令行
h键 可以获得top程序的在线帮助信息
k键 根据提示输入指定进程的PID号并按Enter键终止对应的进程
q键 退出top程序
数字1键 显示CPU个数和状态

top各行解释

Linux——进程管理(crontab实例傻瓜教程)_第6张图片
第一行:任务队列信息

信息 说明
12:45:44 系统时间
up 3:55 系统已运行时长
3 users 当前登录用户数
load average: 0.08, 0.04, 0.05 系统负载,即单位时间内系统处理的任务数,后面三个数值分别为8分钟、4分钟、5分钟前到现在的平均值

第二行:进程信息

信息 说明
Tasks 总进程数
running 正在运行的进程数
sleeping 休眠的进程数
stopped 中止的进程数
zombie 僵死的进程数

第三行:CPU的信息

信息 说明
us 用户占用
sy 内核占用
ni 优先级调度占用
id 空闲CPU,要了解空闲的 CPU 的百分比,主要看 %id 部分
wa I/O 等待占用
hi 硬件中断占用
si 软件中断占用
st 虚拟化占用

第四行:内存的信息

信息 说明
total 总内存空间
free 空闲内存
used 已用内存
buff/cache 物理内存和交换内存的缓冲区总和

第五行:交换空间的信息

信息 说明
total 总交换空间
free 空闲交换空间
used 已用交换空间
avail Mem 可用物理空间

2.4 根据特定条件查看进程信息——pgrep


[root@Kiro opt]# pgrep -l -U kiro
18505 gnome-keyring-d
18510 gnome-session-b
18519 dbus-launch
18520 dbus-daemon

参数 说明
-l 显示进程名
-U 指定特定用户
-t 指定终端

Linux——进程管理(crontab实例傻瓜教程)_第7张图片
Linux——进程管理(crontab实例傻瓜教程)_第8张图片

2.4 以树形结构列出进程信息——pstree

pstree命令可以查看当前系统的进程树,包括个各进程对应的PID号、用户名、完整命令等信息

选项 意义
-A 各进程树之间的连接以ASCII字符来连接
-u 各进程树之间的连接以Unicode字符来连接,在某些终端界面下可能会有错误
-p 同时列出每个进程的PID
-u 同时列出每个进程的所属账号名称

Linux——进程管理(crontab实例傻瓜教程)_第9张图片
不用加-u 因为已经指定用户信息了
Linux——进程管理(crontab实例傻瓜教程)_第10张图片

二、进程的启动与控制

2.1 启动进程

2.1.1 手工启动

  • 前台启动:用户输入命令,直接执行程序
  • 后台启动:在命令行尾加入“&”符号
    输出信息中包括后台任务序号、PID号

进程启动后会直接放入后台,而不占用前台的命令操作界面,方便用户进行其他操作:

Linux——进程管理(crontab实例傻瓜教程)_第11张图片

2.1.2 进程的前后台调度(Ctrl + Z 组合键、 jobs命令和fg命令)

  • Ctrl + Z 组合键: 将当前进程挂起,即调入后台并停止执行
  • jobs命令: 查看处于后台的任务列表

[-l]选项显示PID号

  • fg命令: 将后台进程恢复到前台运行,可指定任务序列号
[root@localhost ~]# jobs
[1]- Stopped    cp /dev/cdrom mycd.iso
[2]+ Stopped    top
[root@localhost ~]# fg 1

2.1.3 终止进程的运行

  • Ctrl+C组合键

中断正在执行的命令

Linux——进程管理(crontab实例傻瓜教程)_第12张图片

  • kill、killall命令

kill用于终止指定PID号的进程 (杀死组进程时只能啥本身)
killall用于终止指定名称相关的所有进程 (杀死组进程时能杀死全部)
-9选项用于强制终止
Linux——进程管理(crontab实例傻瓜教程)_第13张图片

  • pkill命令
-U 根据进程所属的用户名终止相应进程
-t 根据进程所在的终端终止相应进程

根据特定条件终止相应的进程 常用命令选项
Linux——进程管理(crontab实例傻瓜教程)_第14张图片

三、计划任务管理

3.1 使用at命令 :一次性计划任务

服务脚本名称:/etc/init.d/atd

设置格式
at [HH:MM] [yyyy-mm-dd] #不带年月日为今天执行
atq #查看未执行的一次性计划任务
atrm 4 #删除第4条任务

eg:在当天的23:00关闭电脑
Linux——进程管理(crontab实例傻瓜教程)_第15张图片
Linux——进程管理(crontab实例傻瓜教程)_第16张图片

3.2 使用crontab命令,设置周期性计划任务

crontab命令:

  • 按照预选设置的时间周期(分钟,小时,天)重复执行用户命令操作
  • 执行周期计划任务
  • 服务脚本名称:/etc/init.b/crond

全局默认文件

位于文件:/etc/crontab


系统默认设置
位于目录:/etc/cron.*


用户定义的位置
位于文件:/var/spool/cron/用户
Linux——进程管理(crontab实例傻瓜教程)_第17张图片
crontab命令管理用户计划任务:

编辑计划任务
crontab -e  [-u 用户名]      ## -u缺省时默认是针对当前用户,只有超级用户才可以用-u

查看计划任务
crontab -l  [-u 用户名]     

删除计划任务
crontab -r  [-u 用户名]
  • 时间数值的特殊表示方法
特殊字符 说明
*(星号) 代表任何时刻都接受的意思
,(逗号) 代表分隔时段的意思
-(减号) 代表一段时间范围内
/n(斜杠) n代表数字,代表每隔n单位间隔的意思
代表意义 分钟 小时 日期 月份 命令
数字范围 0~59 0~23 1~31 1~12 0~7 需要执行的命令

实例:

  • 30 8 * * 1,3,5 每周一,三,五的8点30
  • 0 8-18/2 * * * 8点到18点之间每2小时

crontab 计划任务的配置格式

时间周期设置 任务内容配置
命令一定要用绝对路径 例如:ls命令一定要用/usr/bin/ls ,可以which查看绝对路径

在这里插入图片描述
Linux——进程管理(crontab实例傻瓜教程)_第18张图片
Linux——进程管理(crontab实例傻瓜教程)_第19张图片

【总结】

crontab案例

  • 每天晚上凌晨2点30分进行数据备份,把web源目录 /var/www/html/ 备份到/home/backup目录下,并且压缩备份
    在这里插入图片描述

  • 请每周1、3、5、7去查找/opt/spingcould目录下的所有.log文件,并且删除3天以外的文件。
    在这里插入图片描述

  • 每天18 : 00至23 : 00之间每隔30 查看系统(messages)日志中是否有error报错,并且输出到 error.txt
    在这里插入图片描述

  • 每天早上7:50自动开启sshd服务,22:50关闭sshd服务
    在这里插入图片描述

  • 每隔5天清空一次FTP服务器公共目录“/var/ftp/pub”中的数据在这里插入图片描述

  • 每月1、10、22日的4 : 45需要重启服务器系统
    在这里插入图片描述

你可能感兴趣的:(Lunix,linux,运维,网络)