您当前的位置: 首页 >  linux
  • 2浏览

    0关注

    214博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Linux(4):进程命令(ps)+仪表盘(top)+管道(grep)+定时任务(crontab)

不愿透露姓名の网友 发布时间:2019-09-02 21:39:01 ,浏览量:2

文章目录
  • 一、概念介绍
  • 二、查看进程
    • (1)ps命令
    • (2)top命令(仪表盘)
  • 三、杀死进程和管道
    • 1.管道命令用于连接多个命令
    • 2.进程筛选:
    • 3.杀死进程的两种方法
  • 四、计划任务:计划任务是系统服务
    • (1)突发任务
    • (2)定时性任务 crontab:
  • 五、后台运行

一、概念介绍

1、进程:就是一次程序的执行,进程拥有获取内存和释放内存的能力

2、僵尸进程:线程没有释放内存能力,当进程执行费结束,线程没有结束,还在占用内存,导致当前进程卡在后台

二、查看进程 (1)ps命令

1.作用:查看进程 当前用户终端正在执行的进程 在这里插入图片描述 2.常用参数

参数作用-a显示所有用户的所有进程-u以用户的格式输出 按照进程启动时间进行排序-x显示所有的进程-e显示所进程包括没有终端的进程-f显示进程详细信息 树状格式来显示

注:我们常使用 ps -aux

3.参数介绍 在这里插入图片描述

参数符号作用user进程的名字pid进程的唯一标识符 如果要杀死进程一般使用pid%cpucpu使用率%MEM内存的使用率vsz虚拟内存的大小RSS驻留中页的数量TTY终端?未知的终端STAT进程的状态 **①S 当进程处于休眠状态 ②R 运行状态 ③T 停止状态 ④X 死掉的进程 ⑤Z 僵尸进程 ⑥> 优先级 **START启动的时间Time运行时间COMMAND进程执行的命令 (2)top命令(仪表盘)

1.作用:每隔3秒自动刷新一次,动态的跟踪系统资源的使用情况, 使用q退出仪表盘 2.参数介绍: 在这里插入图片描述

  • top -20:40:20 当前时间
  • up 系统运行时间
  • 3 user 当前用户数
  • load average: 系统的负载
  • 0.08 0.07 0.12 五分 10分钟 15分钟
  • tasks: 任务数量
  • runing 正在运行的进程数量
  • sleeping 休眠的进程数
  • stopped 停止的进程
  • zombie 僵死的进程

3.如何使用python取统计每个用户的进程数

  • os.system() 调用系统命令
  • popen() 调用系统命令 将结果存入文件对象
import os
#获取所有的进程信息
import os
#print(os.system('ps -aux'))
fobj = os.popen('ps -aux')  # 将结果存入文件对象
count = {}
with fobj as f:
    for i in fobj:
        #print(i.split(' '))
        if i.split(' ')[0] in count:
            count[i.split(' ')[0]] += 1
        else:
            count[i.split(' ')[0]] = 1

if 'USER' in count:
    del count['USER']

print(count)

在这里插入图片描述

三、杀死进程和管道 1.管道命令用于连接多个命令
命令1 | 命令2| 命令3 | ...

管道符 将前面的命令输出的结构 传给后面的命令作为参数取使用

2.进程筛选:
grep 筛选
3.杀死进程的两种方法

①知道进程号(可以使用ps查询进程)

   kill -9 进程id号
   
   例如查询进程的某个python进程,使用管道筛选
   ps -aux | grep python

② 如果不知道pid好可以使用pkill

**pkill -9 进程名** 
四、计划任务:计划任务是系统服务 (1)突发任务

1.定义:突发性任务at: 临时性的任务 只执行一次

2.制定突发任务步骤

 第一步.启动服务
    systemctl start atd
 
 第二步.制定突发任务时间(两种写法)
      
    ①指定距离现在多久后执行任务
    	at now+10min
  
    ②指定某一天执行突发任务 
    	at 14:10 2019-9-3   
 第三步.输完时间后回车,然后写任务
 		at now+10min
 		at> mkdir haha
第四步.回车保存任务(Ctrl+d)
	回车
	Ctrl+d

在这里插入图片描述

1. ctrl+d 保存 2. ctrl+c 撤销 3. at -l 查看所有的突发任务 4. atrm 任务id 删除指定的突发任务 在这里插入图片描述

——————————————————————————

(2)定时性任务 crontab:

1.前提:启动服务和必须管理员编辑

  • 启动服务 crond
  • crontab 只能是root用户去编辑 在这里插入图片描述 -u 指定用户 -e 编辑定时任务 -l 列出所有的定时任务 -r 删除定时任务

2.制定定时任务启动步骤

①crontab -uroot -e 回车后

②分钟 小时   日  月 周   任务
  *    *    *  *  *    命令
  
  ③退出保存
  :wq

3.关于任务里的符号意义

符号意义*任意数字/频率-数字的范围,离散数字分钟0-59小时0-23日1-31月1-12周0-7 0,7代表周日

, 4.练习

每月的1-12,每周的1-7 每日的0-23,每小时的 第一分钟执行 命令
 1 * * * *  mkdir /zhy/demo
 
每一分钟执行一次   
  * * * * * mkdir /zhy/demo
  
每月的每周的每天的晚上9点30分执行任务
30 21 * * * 命令

每月的1号,10号,22号每天的 4点45分执行命令
45 4 1,10,22 * * 命令

每天的18点到23点的 整点 和半点 执行任务
0,30 18-23 * * * 命令

每一小时执行一次命令
* */1 * * * 命令

每天六点钟执行命令
0 6 * * * 命令

每天凌晨六点四十
40 6 * * * 命令

每周一到每周5的11:41 开始 每隔10分钟执行一次
41-59/10   11   *   *   1-5   命令

每天的10:30开始 间隔2个小时执行一次
30  10-23/2  *  *  *   命令

每周一到每周5的两点 执行命令
0   2   *   *   1-5  命令

每周一到周五的8:00和9:00 执行
0   8,9   *   *   1-5  命令

每周一到每周五9:25 到11:35之间间隔10分钟,13:00到15:00
25,35,45,55   9   *   *   1-5  命令
5-55/10    10    *    *   1-5   命令
5-35/10    11    *    *   1-5   命令

每周一到周五 8:30,8:50,9:30,10:10,10:30,11:00
11:30,14:00,14:30 
30,50  8  *  *  1-5  命令
30  9  *  *  1-5  命令
10,30  10  *  *  1-5  命令
0,30  11,14  *  *  1-5  命令

5.报错信息提示 /var/spool/mail 邮件的路径 当定时任务中的脚本报错,会将错误信息以邮件的形式发给用户

五、后台运行
格式: 命令 【属性】【参数】 & 

如果有输出需要做重定向输出

命令 【属性】【参数】> 文件  & 

& 后台运行
重定向输出 >
echo 输出 

nohup
nohup 命令 & 

jobs 查看当前终端正在运行的后台程序 如果关闭了终端就看不到了 可以使用 ps命令去查看

关注
打赏
1657102503
查看更多评论
立即登录/注册

微信扫码登录

0.0358s