Linux进程查看及管理(2)

 Linux进程查看及管理的工具:pstree, ps, pidof, pgrep, top, htop, glances, pmap, vmstat, dstat, kill, pkill, job, bg, fg, nohup

 vunt]] mstat命令:

vmstat [options] [delay [co

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

st

 选项:

-s: 显示内存的统计数据 

pmap命令:

pmap – report memory map of a process

 pmap [options] pid […]

-x: 显示详细格式的信息;

例一:显示进程一的详细信息

[root@localhost proc]# pmap 1 

另外一种实现:

# cat /proc/PID/maps

例一:显示进程一的详细信息

[root@localhost proc]# cat /proc/1/maps

glances命令:

 glances [-bdehmnrsvyz1] [-B bind] [-c server] [-C conffile] [-p port] [-P password] [–password] [-t refresh] [-f file] [-o output]

 内建命令:

  a  Sort processes automatically     l  Show/hide logs

  c  Sort processes by CPU%           b  Bytes or bits for network I/O

  m  Sort processes by MEM%           w  Delete warning logs

  p  Sort processes by name           x  Delete warning and critical logs

  i  Sort processes by I/O rate       1  Global CPU or per-CPU stats

  d  Show/hide disk I/O stats         h  Show/hide this help screen

  f  Show/hide file system stats      t  View network I/O as combination

  n  Show/hide network stats          u  View cumulative network I/O

  s  Show/hide sensors stats          q  Quit (Esc and Ctrl-C also work)

  y  Show/hide hddtemp stats

常用选项:

-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

例一:监听本机地址,端口号

[root@localhost ~]# glances -s -B 192.168.21.137
Glances server is running on 192.168.21.137:61209

IPADDR: 指明监听于本机哪个地址

客户端模式:

glances -c IPADDR

例一:指名监听服务器端的地址

[root@localhost ~]# glances -c 119.75.217.109

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: 显示延迟最大的进程;

例一:查看CPU 那颗CPU

[root@localhost ~]# dstat -C 1,2
You did not select any stats, using -cdngy by default.
Module dstat_cpu24 failed to load. (No counter objects to monitor)
-dsk/total- -net/total- ---paging-- ---system--
 read  writ| recv  send|  in   out | int   csw
5949B 1480B|   0     0 |   0     0 |  32    53
   0     0 |  60B  698B|   0     0 |  27    39
   0     0 |  60B  266B|   0     0 |  28    44
   0     0 |  60B  266B|   0     0 |  31    40 ^C

例二:查看最占用cpu的进程

[root@localhost ~]# dstat --top-mem 

kill命令:

 向进程发送控制信号,以实现对进程管理 

显示当前系统可用信号:

# kill -l

# man 7 signal

例一:能使用的系统信号

[root@localhost ~]# kill -l
 1) SIGHUP  2) SIGINT  3) SIGQUIT  4) SIGILL  5) SIGTRAP
 6) SIGABRT  7) SIGBUS  8) SIGFPE  9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ

常用信号:

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…

例一:终止2200 进程

[root@localhost ~]# kill 15 2200 

终止“名称”之下的所有进程:

killall [-SIGNAL] Program

例一:终止http所有进程

[root@localhost ~]# killall -15 httpd 

Linux的作业控制

 前台作业:通过终端启动,且启动后一直占据终端;

后台作业:可以通过终端启动,但启动后即转入后台运行(释放终端);

 如何让作业运行于后台?

(1) 运行中的作业

Ctrl+z

例一:运行Ctril+z 后的运行结果 把这个进程送到后台,然后按fg命令返回

[root@localhost ~]# vim /etc/fstab
[15]+  Stopped                 vim /etc/fstab

 (2) 尚未启动的作业

# COMMAND & 

此类作业虽然被送往后台运行,但其依然与终端相关;如果希望送往后台后,剥离与终端的关系:

# nohup COMMAND & 

查看所有作业:

# jobs 

作业控制:

# fg [[%]JOB_NUM]:把指定的后台作业调回前台;

# bg [[%]JOB_NUM]:让送往后台的作业在后台继续运行;

# kill [%JOB_NUM]:终止指定的作业; 

进程优先级调整:

静态优先级:100-139 

进程默认启动时的nice值为0,优先级为120; 

nice命令:

nice [OPTION] [COMMAND [ARG]…]

例一:把htop命令调整为5优先级

  4152 htop              5
  4153 ps                0
[root@localhost ~]# nice -n 5 htop 

renice命令:

renice [-n] priority pid…

例一:更改正在运行中的进程优先级 指定进程号

[root@localhost ~]# renice -n 2 4230
4230 (process ID) old priority 5, new priority 2

 查看:

ps axo pid,comm,ni

 Linux任务计划、周期性任务执行

 未来的某时间点执行一次任务:at, batch

周期性运行某任务: cron

 电子邮件服务:

smtp: simple mail transmission protocol, 用于传送邮件;

pop3: Post Office Protocol

imap4Internet Mail Access Protocol

 mailx – send and receive Internet mail

 MUAMail User Agent

 mailx [-s ‘SUBJECT’] username[@hostname]

邮件正文的生成:

(1) 直接给出,Ctrl+d;

(2) 输入重定向;

[root@localhost ~]# mail -s "hi" gentoo@localhost < mail.txt

(3) 通过管道;

echo -e “How are you?\nHow old are you?” | mail 

mailx

 at命令:

 at [option] TIME

 TIME:

HH:MM [YYYY-mm-dd]

noon, midnight, teatime

tomorrow

now+#{minutes,hours,days, OR weeks}

例一:指定3分钟以后执行命令

[root@localhost ~]# at now+3minutes 

常用选项:

-q QUEUE:

-l: 列出指定队列中等待运行的作业;相当于atq

-d: 删除指定的作业;相当于atrm

-c: 查看具体作业任务;

-f /path/from/somefile:从指定的文件中读取任务;

例一:查看具体作业任务

[root@localhost ~]# at -c 3

例二:指定文件读取任务

[root@localhost ~]# vim at.task
You have new mail in /var/spool/mail/root
[root@localhost ~]# at -f at.task now+10minutes
job 4 at Sat May 27 11:10:00 2017

注意:作业的执行结果以邮件通知给相关用户;

 batch命令:

让系统自行选择空闲时间去执行此处指定的任务;

 周期性任务计划:cron

相关的程序包:

cronie: 主程序包,提供了crond守护进程及相关辅助工具;

cronie-anacroncronie的补充程序;用于监控cronie任务执行状况;如cronie中的任务在过去该运行的时间点未能正常运行,则anacron会随后启动一次此任务;

crontabs:包含CentOS提供系统维护任务;

 确保crond守护处于运行状态:

CentOS 7:

systemctl status crond

…running…

CentOS 6:

service crond status

 计划要周期性执行的任务提交给crond,由其来实现到点运行。

系统cron任务:系统维护作业

/etc/crontab

用户cron任务:

crontab命令

 系统cron任务

# Example of job definition:

# .—————- minute (0 – 59)

# |  .————- hour (0 – 23)

# |  |  .———- day of month (1 – 31)

# |  |  |  .——- month (1 – 12) OR jan,feb,mar,apr …

# |  |  |  |  .—- day of week (0 – 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# |  |  |  |  |

# *  *  *  *  * user-name  command to be executed

 例如:晚上910分运行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任务;

例一:列出所有任务

[gentoo@localhost root]$ crontab -l
*/3 * * * * /bin/echo"helo"
[gentoo@localhost root]$

 注意:运行结果以邮件通知给相关用户;

(1) COMMAND > /dev/null

(2) COMMAND &> /dev/null

 对于cron任务来讲,%有特殊用途;如果在命令中要使用%,则需要转义;不过,如果把%放置于单引号中,也可以不用转义;

sleep命令:

sleep NUMBER[SUFFIX]… 

SUFFIX:

s: , 默认

m:

h: 小时

d:  

原创文章,作者:kang,如若转载,请注明出处:http://www.178linux.com/77037

(0)
kangkang
上一篇 2015-09-27 16:01
下一篇 2015-10-01 22:04

相关推荐

  • 五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)

    BSD开源协议(original BSD license、FreeBSD license、Original BSD license) BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。 但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码…

    Linux干货 2017-01-30
  • Linux高级磁盘管理-RAID管理

    在冯诺依曼体系机构中,输入输出要存储的外部磁盘I/O能力实在太低,尤其是企业面对高并发的访问量,在系统内部需要大量调度磁盘的上的网页文件资源,这些都会产生大量的I/O,一个磁盘的I/O能力不管如何提升毕竟是有线的,尤其是机械硬盘;同时为了保障业务的连续性,磁盘故障时必须提供冗余能力,面对这样的实际需求环境,RAID技术产生了,通过组织磁盘阵列方式提供I/O,…

    Linux干货 2016-09-06
  • 马哥教育网络班21期+第13周课程练习

    1、建立samba共享,共享目录为/data,要求:(描述完整的过程) 1)共享名为shared,工作组为magedu; 2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名; 3)添加samba用户gentoo,centos和u…

    Linux干货 2016-10-24
  • shell脚本编程之变量

    一、创建shell脚本文件   创建shell脚本时,必须在第一行指定要使用的shell。格式为:   #!/bin/bash   通常在shell脚本中,#代表注释行,即不被执行的行,而第一行“#!”则是表示用哪个shell来执行脚本。   实例:   让我们来执行一下这个脚本:   上面的结果显…

    Linux干货 2016-02-14
  • 软链接和硬链接详解

    软连接和硬链接图解 硬链接 符号链接 软链接和硬链接详解 软链接和硬链接详解 Linux下的链接文件有点类似于Windows的快捷方式,但又不完全一样。链接文件有两种:一种是硬链接,另一种是符号链接(又称软链接)。 UNIX文件系统提供了一种将不同文件链接至同一个文件的机制,我们称这种机制为链接。它可以使得单个程序对同一文件使用不同的名字。这样的好处是文件系…

    Linux干货 2016-09-06
  • 【招聘福利】深圳/系统运维工程师/薪资弹性,可面谈

    深圳市鑫顺诺科技有限公司 有意向的学员,请联系magedu-小助手QQ:1522609717 职位职能: 系统运维工程师岗位职责:1、公司日常机房网络和办公室网络管理调优、日常办公电脑维护。2、管理、维护网站服务器运行状态,处理系统运行故障;3、负责服务器集群的操作系统安装、升级、定制、部署与维护工作;4、负责服务器集群的系统监控和自动化脚本的设计与部署;5…

    Linux干货 2015-11-06