Linux中进程和计划任务管理(2)

一.进程命令

1.lsof

lsof 命令,“list opened files”的缩写,直译过来,就是列举系统中已经被打开的文件。通过 lsof 命令,我们就可以根据文件找到对应的进程信息,也可以根据进程信息找到进程打开的文件。

格式:lsof  [选项]

选项功能
-c 字符串只列出以字符串开头的进程打开的文件。
+d 目录名列出某个目录中所有被进程调用的文件。
-u 用户名只列出某个用户的进程打开的文件。
-p pid列出某个 PID 进程打开的文件。
-i : 端口号查看哪些进程打开了这个端口

示例:

(1)lsof  -i  :80查看哪些进程打开了80端口

(2)lsof  -p  pid  列出某个 PID 进程打开的文件。

实验:

1.模拟删除大文件

删除大文件不释放空间即有用户在使用该文件

(1)向/boot/bigfile 中输入0,写满空间

(2)使用vim打开该文件

删除方法一:

(3)使用rm  -rf  命令删除该文件,我们可以看到空间并没有被释放

(4)通过使用lsof  |grep  delete命令查询到已删除文件/boot/bigfile

(5)使用kill pid 命令将其杀掉,空间得到释放

“删除”方法二:

使用“echo ”  “  > 文件名”(向该文件里输入空格,覆盖该文件)

2.误删文件可以找回(前提是有人在使用该文件)

模拟/data/test.txt文件找回

(1)打开使用该文件

(2)使用rm  -rf 命令删除该文件

(3)使用lsof  |grep  deleted  找到删除的/data/test.txt

(4)切换到该文件进程号,找到fd文件,切换到fd下以长格式显示所有文件,能够查找到已删除的文件/data/test.txt,并将其传送到/data下取名test.txt

2.监控系统资源  虚拟  资源vmstat

如果你想动态的了解一下系统资源的使用状况,以及查看当前系统中到底是哪个环节最占用系统资源,就可以使用 vmstat 命令。

vmstat命令,是 Virtual Meomory Statistics(虚拟内存统计)的缩写,可用来监控 CPU 使用、进程状态、内存使用、虚拟内存使用、硬盘输入/输出状态等信息。

字段含义:

字段含义
procs进程信息字段: -r:等待运行的进程数,数量越大,系统越繁忙。 -b:不可被唤醒的进程数量,数量越大,系统越繁忙。
memory内存信息字段: -swpd:虚拟内存的使用情况,单位为 KB。 -free:空闲的内存容量,单位为 KB。-buff:缓冲的内存容量,单位为 KB。-cache:缓存的内存容量,单位为 KB。
swap交换分区信息字段: -si:从磁盘中交换到内存中数据的数量,单位为 KB。 -so:从内存中交换到磁盘中数据的数量,单位为 KB。这两个数越大,表明数据需要经常在磁盘和内存之间进行交换,系统性能越差。
io磁盘读/写信息字段: -bi:从块设备中读入的数据的总量,单位是块。 -bo:写到块设备的数据的总量,单位是块。这两个数越大,代表系统的 I/O 越繁忙。
system系统信息字段: -in:每秒被中断的进程次数。 -cs:每秒进行的事件切换次数。这两个数越大,代表系统与接口设备的通信越繁忙。
cpuCPU信息字段: -us:非内核进程消耗 CPU 运算时间的百分比。 -sy:内核进程消耗 CPU 运算时间的百分比。 -id:空闲 CPU 的百分比。 -wa:等待 I/O 所消耗的 CPU 百分比。 -st:被虚拟机所盗用的 CPU 百分比

3.iostat

iostat 可以提供更丰富的IO性能状态数据(此工具由sysstat包提供)

常用选项:
-c 只显示CPU行
-d 显示设备〈磁盘)使用状态
-k 以千字节为为单位显示输出
-t 在输出中包括时间戳
-x 在输出中包括扩展的磁盘指标

示例:

(1)iostat 显示

(2)只显示CPU行

(3)显示设备〈磁盘)使用状态

(4)iostat 1 -d /dev/sda,只看sda硬盘,每秒刷新一次

4.内存

free  显示当前系统内存使用情况

常用选项

-h:人性化显示内存使用情况

-m:以m单位查看

示例:

人性化显示内存使用情况

实验:清除缓存

使用“echo  3  >  /proc/sys/vm/drop_caches” 清除缓存

5.uptime   系统运行了多长时间

6.mpstat     显示CPU相关统计

7.dstat       系统资源统计

二.进程管理

1.手动启动

(1)前台启动:用户输入命令,直接执行程序

(2)后台启动:在命令行尾加入“&”符号

让作业运行于后台

(1)运行中的作业: Ctrl+z 放到后台 但是会停止作业

(2)尚未启动的作业: COMMAND &

第一种把命令放入后台的方法是在命令后面加入 空格 &。使用这种方法放入后台的命令,在后台处于执行状态。

注意,放入后台执行的命令不能与前台有交互,否则这个命令是不能在后台执行的

命令说明

 &

将前台命令放入后台执行

jobs

查看后台任务列表 ,会显示序号

ctrl   +z

将前台运行命令放入后台挂起

bg  序号

继续运行后台命令

fg  序号

将后台程序调回前台

示例:

(1)使用“&”命令将“dd  if=/dev/zero  of=/data/bigfile”放到后台运行,并使用jobs查看

(2)将后台程序调回前台

(3)先将前台运行中命令放入后台挂起,再继续运行后台命令

实验:并行执行任务

(1)ping 127.0.0.1&ping 127.0.0.2&ping 127.0.0.3&

(2)编辑脚本运行ping程序

前台运行:速度很慢,效率低

vim  /data/ping88

后台运行:速度快,效率高

在编辑时加上{ },并在{ }后加上“&”命令,将ping命令放入后台执行

2.结束进程

kill  命令

kill 从字面来看,就是用来杀死进程的命令,但事实上,这个或多或少带有一定的误导性。从本质上讲,kill 命令只是用来向进程发送一个信号,至于这个信号是什么,是用户指定的。

也就是说,kill 命令的执行原理是这样的,kill 命令会向操作系统内核发送一个信号(多是终止信号)和目标进程的 PID,然后系统内核根据收到的信号类型,对指定进程进行相应的操作。

kill  [信号]  PID 
kill 命令是按照 PID 来确定进程的,所以 kill 命令只能识别 PID,而不能识别进程名。Linux 定义了几十种不同类型的信号,读者可以使用 kill -l 命令查看所有信号及其编号

常用的信号

信号编号信号名含义
0EXIT程序退出时收到该信息。
1HUP挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化。
2INT表示结束进程,但并不是强制性的,常用的 "Ctrl+C" 组合键发出就是一个 kill -2 的信号。
3QUIT退出。
9KILL杀死进程,即强制结束进程。
15TERM正常结束进程,是 kill 命令的默认信号。
18CONT继续运行
19STOP后台休眠

kill -l   查看所有信号及其编号

killall命令

killall 也是用于关闭进程的一个命令,但和 kill 不同的是,killall 命令不再依靠 PID 来杀死单个进程,而是通过程序的进程名来杀死一类进程,也正是由于这一点,该命令常与 ps、pstree 等命令配合使用

格式:killall  [选项]  [信号]  进程名

三.计划任务

1.at一次性计划任务

at 工具

  1. 由 at 包提供

  2. 依赖与atd服务,需要启动才能实现at任务

  3. at队列存放在/var/spool/at目录中,ubuntu存放在/var/spool/cron/atjobs目录下

  4. 执行任务时PATH变量的值和当前定义任务的用户身份一致

at 命令的访问控制是依靠 /etc/at.allow(白名单)和 /etc/at.deny(黑名单)这两个文件来实现的,具体规则如下:

  • 如果系统中有 /etc/at.allow 文件,那么只有写入 /etc/at.allow 文件(白名单)中的用户可以使用 at 命令,其他用户不能使用 at 命令(注意,/etc/at.allow 文件的优先级更高,也就是说,如果同一个用户既写入 /etc/at.allow 文件,又写入 /etc/at.deny 文件,那么这个用户是可以使用 at 命令的)。

  • 如果系统中没有 /etc/at.allow 文件,只有 /etc/at.deny 文件,那么写入 /etc/at.deny 文件(黑名单)中的用户不能使用 at 命令,其他用户可以使用 at 命令。不过这个文件对 root 用户不生效。

  • 如果系统中这两个文件都不存在,那么只有 root 用户可以使用 at 命令。

系统中默认只有 /etc/at.deny 文件,而且这个文件是空的,因此,系统中所有的用户都可以使用 at 命令。不过,如果我们打算控制用户的 at 命令权限,那么只需把用户写入 /etc/at.deny 文件即可

示例:

2.crontab周期任务

选项功能
-u user用来设定某个用户的 crontab 服务,例如 "-u demo" 表示设备 demo 用户的 crontab 服务,此选项一般有 root 用户来运行。
-e编辑某个用户的 crontab 文件内容。如果不指定用户,则表示编辑当前用户的 crontab 文件。
-l显示某用户的 crontab 文件内容,如果不指定用户,则表示显示当前用户的 crontab 文件内容。
-r从 /var/spool/cron 删除某用户的 crontab 文件,如果不指定用户,则默认删除当前用户的 crontab 文件。
-i在删除用户的 crontab 文件时,给确认提示。

crontab  -e #进入 crontab 编辑界面

 编辑界面中“*  *  *  *  *” 的含义

项目含义范围
第一个"*"一小时当中的第几分钟(minute)0~59
第二个"*"一天当中的第几小时(hour)0~23
第三个"*"一个月当中的第几天(day)1~31
第四个"*"一年当中的第几个月(month)1~12
第五个"*"一周当中的星期几(week)0~7(0和7都代表星期日)

在时间表示中,还有一些特殊符号

特殊符号含义
*(星号)代表任何时间。比如第一个"*"就代表一小时种每分钟都执行一次的意思。
,(逗号)代表不连续的时间。比如"0 8,12,16***命令"就代表在每天的 8 点 0 分、12 点 0 分、16 点 0 分都执行一次命令。
-(中杠)代表连续的时间范围。比如"0 5 ** 1-6命令",代表在周一到周六的凌晨 5 点 0 分执行命令。
/(正斜线)代表每隔多久执行一次。比如"*/10命令",代表每隔 10 分钟就执行一次命令。

示例

(1)周一到周五每天17:00执行一次“cp -a”命令

(2)每3天执行一次“cp -a”命令

(3)每周一周三周五的8:30执行一次“cp -a”命令

(4)每周一周五8点到16点之间每隔两小时执行一次“cp  -a”命令

在书写 crontab 定时任务时,需要注意以下几个事项:

(1)6 个选项都不能为空,必须填写。如果不确定,则使用“*”代表任意时间。

(2)crontab 定时任务的最小有效时间是分钟,最大有效时间是月。像 2018 年某时执行、3 点 30 分 30 秒这样的时间都不能被识别。

(3)在定义时间时,日期和星期最好不要在一条定时任务中出现,因为它们都以天为单位,非常容易让管理员混淆。

(4)在定时任务中,不管是直接写命令,还是在脚本中写命令,最好都使用绝对路径。有时使用相对路径的命令会报错。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/568114.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Jackson 2.x 系列【31】Spring Boot 集成之字典翻译

有道无术,术尚可求,有术无道,止于术。 本系列Jackson 版本 2.17.0 本系列Spring Boot 版本 3.2.4 源码地址:https://gitee.com/pearl-organization/study-jaskson-demo 文章目录 1. 场景描述2. 案例演示2.1 修改枚举2.2 定义注解…

【python】Python学生信息管理系统(源码+报告+本地存储)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

游戏黑灰产识别和溯源取证

参考:游戏黑灰产识别和溯源取证 1. 游戏中的黑灰产 1. 黑灰产简介 黑色产业:从事具有违法性活动且以此来牟取利润的产业; 灰色产业:不明显触犯法律和违背道德,游走于法律和道德边缘,以打擦边球的方式为“…

电磁仿真--基本操作-CST-(2)

目录 1. 回顾基操 2. 操作流程 2.1 创建工程 2.2 修改单位 2.3 创建 Shape 2.4 使用拉伸 Extrude 2.5 修改形状 Modify Locally 2.6 导入材料 2.7 材料解释 2.8 材料分配 2.9 查看已分配的材料 2.10 设置频率、背景和边界 2.11 选择 Edge,设置端口 2.…

深度解读半导体测试解决方案,4月25日精彩直播即将来袭!

半导体测试需求日益复杂、量产测试要求不断提升,行业工程师应该如何应对上述难题,提升测试的质量与效率,真正做到紧跟技术前沿,掌握创新应用,有效优化测试过程并降低测试成本? 针对上述痛点,加速…

Linux进阶篇:Centos7安装与配置mysql(rpm安装方式)

Linux服务搭建篇:Centos7安装与配置mysql(rpm安装方式) MySQL是一个开源的关系型数据库管理系统,由瑞典MySQL AB公司开发,现在属于Oracle公司。MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面&am…

232 基于matlab的MIMO雷达模型下一种子空间谱估计方法

基于matlab的MIMO雷达模型下一种子空间谱估计方法,采用过估计的方法,避免了信源数估计的问题,对数据协方差矩阵进行变换,构造信号子空间投影矩阵和噪声子空间投影矩阵,不需要像经典的MUSIC一样对其进行特征分解&#x…

【网络编程】Java网络编程中的基本概念及实现UDP、TCP客户端服务器程序(万字博文)

系列文章目录 【网络通信基础】网络中的常见基本概念 【网络编程】Java网络编程中的基本概念及实现UDP、TCP客户端服务器程序(万字博文) 【网络原理】UDP协议的报文结构 及 校验和字段的错误检测机制(CRC算法、MD5算法) 目录 …

SpringCloud系列(12)--服务提供者(Service Provider)集群搭建

前言:在上一章节中我们成功把微服务注册进了Eureka集群,但这还不够,虽然注册服务中心Eureka已经是服务配置了,但服务提供者目前只有一个,如果服务提供者宕机了或者流量过大,都会影响到用户即服务使用者的使…

线上相亲竟然有三大好处,你认同吗?

当今社会高速的经济增长和急剧的社会变迁,使人们的生活水平极大提高,社会生活环境发生重大变化,人们的态度与观念也随之改变。这导致代际现象日益突出。以“80后”和“90后”为代表的青年群体成为社会新事物和新潮流的代言者,也自…

Jmeter04:关联

1 Jmeter组件:关联 概括:2个请求之间不是独立的,一个请求响应的结果是作为另一个请求提交的数据,存在数据交互 1.1 是什么? 就是一个请求的结果是另一个请求提交的数据,二者不再是独立 1.2 为什么&#x…

Nacos原理简单介绍

注册中心原理 官网:Nacos 注册中心的设计原理 | Nacos nacos注册中心采用了 :pull (客户端的轮询)和push (服务端主动push)策略 客户端启动时会将当前服务的信息包含ip、端口号、服务名、集群名等信息封装…

Valentina Studio Pro 13.10激活 专业的数据库管理软件

Valentina Studio Pro 支持连接所有主要数据库,可以帮助用户轻松创建、管理、查询和浏览Valentina DB、MySQL、MariaDB、PostgreSQL和SQLite数据库。 Valentina Studio Pro for Mac 13.10激活版下载 Valentina Studio Pro 是一款可以在 Mac 电脑上使用的数据库管理工…

水牛社靠谱吗,水牛社可以当做副业来做吗?

水牛社这个平台是否靠谱,能否作为副业的选择,一直是网友们热议的话题。实际上,水牛社是一个集合了众多网上赚钱活动任务和提供资源项目教程的综合性平台,它并非只局限于某一特定的项目,而是展现出多样化的特点。随着网…

Acrobat Pro DC 2021:强大的PDF编辑软件

Acrobat Pro DC 2021是Adobe公司推出的一款全面而强大的PDF编辑软件,凭借其卓越的性能和丰富的功能,成为了PDF编辑领域的领军者。 Acrobat Pro DC 2021中文激活版下载 这款软件具备全面的PDF编辑功能,包括文本编辑、图片处理、页面组织等&…

计算机组成原理—数据的表示和运算

二进制:2进1 八进制里的1位对应二进制里的三位 重点:转换为10进制

基于表面法线法的二维人脸图构建三维人脸模型matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ............................................................................for j 1 : …

QA测试开发工程师面试题满分问答21: 单元测试、集成测试、系统测试的侧重点是什么?

单元测试、集成测试和系统测试是软件测试中的不同层次和阶段,每个阶段侧重于不同的测试目标和范围。以下是它们的侧重点的简要说明: 单元测试: 单元测试是针对软件中最小的可测试单元(通常是函数、方法或模块)进行的测…

修改element-ui中el-calendar(日历)的样式

效果图如下&#xff1a; <template><div class"dashboard-container"><el-card style"width: 350px; height: auto; border-radius: 8px"><div class"custom-style"><p class"new-data">{{ newDate }}&…

机器学习(XgBoost)预测顶和底

之前的文章中&#xff0c;我们对中证1000指数进行了顶和底的标注。这一篇我们将利用这份标注数据&#xff0c;实现机器学习预测顶和底&#xff0c;并探讨一些机器学习的原理。 我们选取的特征非常简单–上影线和WR&#xff08;William’s R&#xff09;的一个变种。选取这两个…