Linux:Day12(下) 进程、任务计划
vmstat命令:
vmstat [options] [delay [ count]]
procs:
r:等待运行的进程的个数;
b:处于不可中断睡眠态的进程个数;(被阻塞的队列的长度);
memory:
swpd:交换内存的使用总量;
free:空闲物理内存总量;
buffer:用于buffer的内存总量;
cache:用于cache的内存总量;
swap:
si:数据进入swap中的数据速率(kb/s)
so:数据离开swap中的数据速率(kb/s)
io:
bi:从块设备读入数据到系统的速率(kb/s)
bo:保存数据至块设备的速率;
system:
in:interrupts,中断速率;每秒发生多少次中断
cs:context switch,进程切换速率;
cpu:
us:用户空间占据的比例
sy:内核空间占据的比例
id:空闲比例
wa:等待IO完成所消耗的时间比例
st:被虚拟化技术偷走的时间比例
选项:
-s:显示内存的统计数据
pmap命令:
pmap [ options ] pids...
-x:显示详细格式 的信息;
另外一种实现:
cat /proc/PID/maps
glances:
常用选项:
-b:以Byte为单位显示网卡数据速率;
-d:关闭磁盘I/O模块;
-f /path/to/somefile:设定输入文件位置;
-o { HTML | CSV }:输出格式;
-m:禁用mount模块;
-n:禁用网络模块;
-t #:延迟时间间隔;
-1:每个CPU的相关数据单独显示;
C/S模式下运行glances命令:
服务模式:
glances -s -B IPADDR
IPADDR:指明监听本机哪个地址
客户端模式:
glances -c IPADDR
IPADDR:要连入的服务器端地址
dstat命令:
dstat [-afv] [options..] [delay [count]]
-c:显示cpu相关信息;
-C #,#,....,total
-d:显示disk相关信息;
-D total,sda,sdb,...
-g:显示page相关统计数据;
-m:显示memory相关统计数据;
-n:显示network相关统计数据;
-p:显示process相关统计数据;
-r:显示io请求相关的统计数据;
-s:显示swapped相关的统计数据;
--tcp
--udp
--unix
--raw:裸套接字
--socket
--ipc
--top-cpu:显示最占用CPU的进程;
--top-io:显示最占用io的进程;
--top-mem:显示最占用内存的进程;
--top-lantency:显示延迟最大的进程;
kill命令:
向进程发送控制信息,以实现对进程管理
显示当前系统可用信息:
kill -l
man 7 signal
常用信号:
1) SIGHUP:无需关闭进程而让其重读配置文件;
2) SIGINT:中止正在运行的进程;相当于Ctrl + c;
9) SIGKILL:杀死正在运行的进程;
15) SIGTERM:终止正在运行的进程;
18) SIGCONT:手工调度进程继续运行;
19) SIGSTOP:让进程处理停止态;
指定信息的方法:
(1) 信号的数字标识:1,2,9
(2) 信号完整名称:SIGHUP
(3) 信号的简写名称:HUP
向进程发信号:
kill [ -SIGNAL ] PID...
终止“名称”之下的所有进程:
killall [ -SIGNAL ] Program
Linux的作业控制
前台作业:通过终端启动,且启动后一直占据终端;
后台作业:可以通过终端启动,但启动后即转入后台运行(释放终端);
如何让作业运行于后台?
(1)运行中的作业
Ctrl + z
(2)尚未启动的作业
COMMAND &
此类作业虽然被送往后台运行,但其依然与终端相关;如果希望送往后台后,剥离与终端的关系;
nohup COMMAND &
查看所有作业:
jobs
作业控制:
fg [[%]JOB_NUM]:把指定的后台作业调回前台;
bg [[%]JOB_NUM]:让送往后台的作业在后台继续运行;
kill [%JOB_NUM]:终止指定的作业;
进程优先级调整:
静态优先级:100-139
进程默认启动时的nice值为0,优先级为120;
nice命令:
nice [OPTION] [COMMAND [ARG]...]
nice,renice
renice命令:
renice [-n] priority pid...
查看:
ps axo pid,comm,ni
未涉及到的命令:sar,tsar,iostat,iftop
博客作业:进程管理工具top/htop/glances/dstat的使用;
Linux任务计划、周期生任务执行
未来的某时间点执行一次任务:at,batch
周期生运行某伤:cron
电子邮件服务:
smtp:simple mail transmission protocol,用于传送邮件;
pop3:Post Office Protocol
imap4:Internet Mail Access Protocol
mailx - send and receive Internet mail
MUA:Mail User Agent
mailx [-s "SUBJECT"] username[@hostname]
邮件正文的生成:
(1)直接给出,Ctrl+d
(2)输入重定向
(3)通过管道:
echo -e "How are you?\nHow old are you?" | mail
mail 收件
at命令:
at [option] TIME
TIME:
HH:MM [YYY-mm-dd]
nonn,midnight,teatime
tomorrow
now+#{minutes,hours,days,OR weeks}
常用选项:
-q QUEUE:
-l:列出指定队列中等待运行的作业;相当于atq
-d:删除指定的作业;相当于atrm
-c:具体的作业任务;
-f /path/from/somefile:从指定的文件中读取任务
注意:作业执行结果以邮件通知给相关用户;
batch命令:
让系统自行选择空闲时间去执行此处指定的任务;
周期性任务计划:cron
相关的程序包:
cronie:主程序包,提供了crond守护进程及相关辅助工具;
cronie-anacron:cronie的补充程序;用于监控cronie任务执行状况;如cronie中的任务在过去该运行的时间点未能正常运行,则anacron会随后启动一次此任务;
crontabs:包含CentOS提供系统维护任务;
确保crond守护处理运行状态:
CentOS 7:
ssytemctl status crond
...running...
CentOS 6:
service crond status
计划要周期性执行的任务提交给crond,由其来实现到点运行。
系统cron任务:系统维护作业
/etc/crontab
用户cron任务:
crontab命令
系统cron任务
例如:晚上9点10分运行echo命令:
10 21 * * * gentoo /bin/echo "Howdy!"
时间表示法:
(1)特定值:
给定时间点有效取值范围内的值;
(2)*
给定时间点上有效取值范围内的所有值;
表示“每....”
(3)离散取值:,
#,#,#,
(4)连续取值:-
#-#
(5)在指定时间范围上,定义步长;
/#:#即为步长
例如:每3小时echo命令;
0 */3 * * * gentoo /bin/echo "howdy!"
用户cron:
crontab命令定义,每个用户都有专用的cron任务文件:/var/spool/cron/USERNAME
crontab命令:
crontab [-u user] [-l | -r | -e] [-i]
-l:列出所有任务;
-e:编辑任务;
-r:移除所有任务;
-i:同-r一同使用,以交互式模式让用户有选择地移除指定任务;
-u user:仅root可运行,代为为指定用户管理cron任务;
注意:运行结果以邮件通知给相关用户;
(1)COMMAND > /dev/null;
(2)COMMAND &> /dev/null
对于cron任务来讲,%有特殊用途:如果在命令中要使用%,则需要转义;不过,如果把%放置于单引号中,也可以不用转义。
思考:
(1)如何在秒级别运行任务?
* * * * * for min in 0 1 2; do echo "hi"; sleep 20; done
(2)如何实现每7分钟运行一次任务?
sleep命令:
sleep NUMBER [SUFFIX]...
SUFFIX:
s:秒,默认
m:分
h:小时
d:天
练习:
1、每4小时备份一次/etc目录至/backup目录中,保存的文件名称格式为“etc-yyy-mm-dd-HH.tar.xz";
2、每周2,4,7备份/var/log/messages文件至/logs目录中,文件名形如”message-yymmdd”;
3、每两小时取出当前系统/proc/meminfo文件中以S或M开关的信息追加至/tmp/meminfo.txt文件中;
4、工作日时间内,每小时执行一次“ip addr show”命令;
Linux:Day12(下) 进程、任务计划的更多相关文章
- Linux系统管理10——进程和计划任务管理
Linux系统管理10——进程和计划任务管理 一.程序和进程的关系 1.程序 ·保存在硬盘.光盘等介质中的可执行代码和数据 ·静态保存的代码 2.进程 ·在CPU及内存中运行的程序代码 ·动态执行的代 ...
- Linux环境下进程的CPU占用率
阿里云服务器网站:https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=qqwovx6h 文字来源:http://www.s ...
- linux下进程权限分析
转自http://blog.chinaunix.net/uid-27105712-id-3349522.html 在linux下,关于文件权限,大部分人接触比较多,也比较熟悉了解.但是对进程权限一般知 ...
- Linux环境下如何生成core文件
Linux环境下进程发生异常而挂掉,通常很难查找原因,但是一般Linux内核给我们提供的核心文件,记录了进程在崩溃时候的信息.但是生成core文件需要设置开关,具体步骤如下: 1.查看生成core文件 ...
- Linux下性能监控、守护进程与计划任务管理
目录 一:监视系统进程(ps .top) 二:查看网络连接信息 (netstat) 三:文件进程.端口关联(lsof) 四:计划任务管理(at .crontab) at crontab 一:监视系统进 ...
- Linux系统——进程和计划任务管理
进程和计划任务管理 一.进程和程序的关系 进程:在CPU及内存中运行的程序代码:动态执行的代码:每个进程可以创建一个或多个进程 程序:保存在硬盘.光盘等介质中的可执行代码和数据:静态保存的代码 二.基 ...
- 关于Linux下进程的详解【进程查看与管理】
一.关于进程 进程: 已经启动的可执行程序的运行实力 进程的组成:一个进程包含内核中的一部分地址空间和一系列数据结构.其中地址空间是内核标记的一部分内存以供进程使用,而数据结构则用来纪录每个进程的具体 ...
- window 和 linux 环境下杀死tomcat进程——也可以解决其他端口被占用的问题
1.应用场景 在Windows或者linux操作系统中,我们在启动一个tomcat服务器时,经常会发现8080端口已经被占用的错误,而我们又不知道如何停止这个tomcat服务器. 2.window环境 ...
- linux 下进程通讯详解
linux 下进程通讯方法主要有以下六种: 1.管道 2.信号 3.共享内存 4.消息队列 5.信号量 6.socket
随机推荐
- 云原生实践之 RSocket 从入门到落地:Servlet vs RSocket
技术实践的作用在于:除了用于构建业务,也是为了验证某项技术或框架是否值得大规模推广. 本期开始,我们推出<RSocket 从入门到落地>系列文章,通过实例和对比来介绍RSocket.主要围 ...
- 痞子衡嵌入式:飞思卡尔i.MX RT系列MCU启动那些事(3)- Serial Downloader模式(sdphost/MfgTool)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RT系列MCU的Serial Downloader模式. 在上一篇文章 Boot配置(BOOT Pin, eFUSE) ...
- 痞子衡嵌入式:ARM Cortex-M内核那些事(4)- 性能指标
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是ARM Cortex-M性能指标. 1.处理器的性能指标 用于评价CPU的性能指标非常多,不同的性能侧重点下的测试标准可能得出的指标值不 ...
- JDK动态代理浅析
原文同步发表至个人博客[夜月归途] 原文链接:http://www.guitu18.com/se/java/2018-06-29/17.html 作者:夜月归途 出处:http://www.guitu ...
- 【转载】C#将图片转换为二进制流调用
在C#中可以使用MemoryStream类.BinaryFormatter类等来操作图片,将图片读取到二进制数据流中,最终转成二进制数据流进行调用,详细的实现如下方法所示. private byte[ ...
- windows server 2012/2016 设置多用户远程桌面(转载)
方案一: 该方案只能满足两个人同时远程. 方案二: https://blog.csdn.net/flyingshuai/article/details/77869279
- 如何使用Dubbo 2.7.0和Spring boot实现FAT测试(Feature Acceptance Test)
在一个调用链非常长的功能中,如果想修改其中的一个特性,并进行测试,而又不影响该环境的其他用户使用现有功能.特性,例如: 1. A.B.C.D之间通过Dubbo实现远程调用 2. 这些模块可能有一个或者 ...
- Laravel5.5 邮件驱动使用 SMTP 驱动实现邮件发送
laravel5.5 邮件驱动 Laravel 支持多种邮件驱动,包括 smtp.Mailgun.Maildrill.Amazon SES.mail 和 sendmail.Mailgun . Mail ...
- vue安装element-ui和px2rem的细节
1.按需引入element-ui vue脚手架搭建完成之后,可以到element-ui官网进行npm 安装: npm i element-ui -S 如果是完整引入可以按照官网一步一步做即可完成:这里 ...
- 环境设置——pyCharm环境下导入MySQLdb遇到的一系列问题
本文转自http://blog.sina.com.cn/s/blog_135031dae0102yc8l.html 安装好pyCharm后想要import MySQL,结果发现了一系列问题,像推到了塔 ...