系统进程管理

ps 查看系统进程命令

启动进程的方式:
    系统启动过程中自动启动:与终端无关的进程;
    用户通过终端启动:与终端相关的进程;

选项:    
    a:所有与终端相关的进程;
    x:所有与终端无关的进程;
    u:以用户为中心阻止进程状态信息显示;
常用组合之一:aux
[root@centous1 zuoye]# ps auxUSER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.1  19364  1536 ?        Ss   16:50   0:01 /sbin/init
root          2  0.0  0.0      0     0 ?        S    16:50   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    16:50   0:00 [migration/0]
root          4  0.0  0.0      0     0 ?        S    16:50   0:00 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S    16:50   0:00 [stopper/0]
root          6  0.0  0.0      0     0 ?        S    16:50   0:00 [watchdog/0]
root          7  0.0  0.0      0     0 ?        S    16:50   0:00 [migration/1]
root          8  0.0  0.0      0     0 ?        S    16:50   0:00 [stopper/1]


VSZ:虚拟内存集;
RSS:Resident Size(常驻内存);
STAT:
    R:running
    S:interruptale sleeping(可中断睡眠)
    D:uninterruptable sleeping(不可中断睡眠)
    T:Stopped
    Z:zombie(僵尸进程)
    
    +:前台进程
    l:多线程进程
    N:低优先级进程
    <:高优先级进程
    s:session leader(进程的最开头进程)
    
    -e:显示所有进程
    -f:显示完整格式的进程信息
    
    常用组合之二 -ef:
    
    -F:显示完整格式的进程信息;
        C:cpu utilization(cpu占用率)
        PSR:运行在哪颗CPU之上
    -H:以层级结构显示进程的相关信息;
    
    常用组合之三:-eFH

pgrep,pkill,top命令:

根据进程名或其他属性来查询进程或发送信号

pgrep -t terminel : 与指定的终端相关进程
    -l:显示程序名    -a:显示完整格式的进程名;    -p pid:显示此进程的子进程    也可以直接加字符串,查看包含字符串的进程
    
pidof命令:
    根据进程名,取其pid
    
top命令:
    -display linux process
[root@centous1 zuoye]# toptop - 22:02:39 up  5:12(运行时长),  1 user,  load average(平均负载): 0.07, 0.06, 0.01(队列的长度不要超过CPU个数)
Tasks(任务): 129 total,   1 running, 128 sleeping,   0 stopped,   0 zombie(僵死)
Cpu(s):  0.0%us(用户空间进程占据的百分比),  0.1%sy(内核占用),  0.0%ni(用于nice调整), 99.8%id(空闲),  0.0%wa(等待IO),  0.0%hi(硬件中断),  0.1%si(软件终中断),  0.0%st(被虚拟化偷走的)
Mem:   1004348k total,   192132k used,   812216k free,    21320k buffers
Swap:   204796k total,        0k used,   204796k free,    85156k cached
uptime命令:显示系统时间、运行时长及平均负载;
    过去一分钟、五分钟和十五分钟的平均负载;
    等待运行的进程队列的长度;

htop命令;

选项:
    -d num:指定延迟时间间隔;    -u UserName:仅显示指定用户的进程    -s COLUME: 以指定字段进行排序;子命令:
l:显示选定的进程打开的文件列表
s:跟踪选定的进程系统调用;
t:以层级关系显示各进程状态;
a:将选定的进程绑定至某指定的CPU核心;

vmstat查看虚拟内存的使用情况;

vmstat 2:以2秒为间隔,不断刷新
vmstat 2 3 : 以2秒为间隔,刷新三次

procs:
    r:等待运行的进程的个数;CPU上等待运行的任务的队列长度
    b:处于不可中断睡眠态的进程个数;被阻塞的任务队列的长度;
    swpd:交换内存使用总量;
    buffer:用于buffer的内存总量;
    cache: 用于cache的内存总量;
    
swap
    si:数据进入swap中的数据速率(kb/s)
    so:数据离开swap的速率(kb/s)
io
    bi:从块设备读入数据到系统的速度(kb/s)
    bo:保存数据至块设备的速率(kb/s)
system
    in:interrupts,中断速率;
    cs:context switch,上下文切换的速率;

dstat命令:

常用选项:
    
    -c 显示CPU相关信息;    -d 显示磁盘的相关信息        -D sda,sdb...    -g:显示page的相关的速率数据;    -m:Memory的相关统计数据;    -n:Lnterface的相关统计数据;    -p:显示process的相关统计数据;    -r:显示io请求的相关统计数据;    -s:显示swapped的相关统计数据;

glances命令

内部选项;
常用选项:
    -b:以Byte为单位显示网上数据速率;    -d:关闭磁盘I/O模块    -m:关闭mount模块;    -n:关闭network模块;    -t #:刷新时间间隔;    -1 :每个CPU的相关数据单独显示;    -o{HTML|CSV}:输出格式;    -f /PATH/TO/SOMEDIR :设定输出文件的位置C/S模式下运行glances命令:
    服务模式:
        glances -s -B IPADDR
        
        IPADDR:本机的某地址,用于监听;
    客户端模式:
        glances -c IPADDR
        ipADDR :是远程服务器地址;

kill命令:

常用命令:    1)SIGHUP:无须关闭进程而让其重读配置文件;    2)SIGINT:终止正在进行的进程,相当于ctrl+c    9)SIGKILL:杀死运行中的进程    15)SIGTERM:终止运行中的进程;
    killall 可以把一个进程的全部进程关掉;

Liunx系统作业控制:

job:

前台作业(foregroud):通过终端启动,且启动后会一直占据终端

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

如何让作业运行于后台?

(1)运行中的作业

curl+z
注意:送往后台后,作业转为停止态

(2)尚未启动的作业

#COMMAND &
注意:此类作业虽然被送往后台,但其依然与终端相关(意思是如果终端终止,那么从终端开启的后台也会终止);如果希望把送往后台的作业剥离与终端的关系:#nohup COMMEND &(转为与终端无关的模式)

作业前边有加减号的显示,“+”的意思就是可以用fg命令后便不用接参数直接调回来。“—” 不如“+”优先级高

查看所有作业:

#jobs

可实现作业控制的常用命令:

#fg[[%]JOB_number]:把指定的作业调回前台%可以省略

#bg[[%]JOB_number]:让送往后台的作业在后台继续运行 %可以省略

#kill[%JOB_number]:终止指定的作业%不能省略,因为省略了就成了进程ID号了不是作业号。

调整进程优先级: 可通过nice值调整的优先级范围:100-139 进程启动时,其nice值默认为0,其优先级是120;

nice命令; 以指定的nice值启动并运行命令 nice[option][command]参数… -n 指定nice值 注意:仅管理员可调低nice值

renice命令(调整已经启动的进程):

renlice -n -3 进程ID

查询进程优先级 ps axo pid,comm,ni,priority | grep htop

本地电子邮件服务:

smtp:slmple mail transmission protocol 只能接收邮件
pop3:post Office procotol 用来接收邮件
imap4:Internet mail access procotol 用来接收邮件

mail命令:

mailx [-s 'SUBJECT'] username [@hostname](hostname如果是本地则不用写)
邮件正文的生成:
(1)交互式输入:单独成行表示正文结束;curl+d提交即可;
(2)通过输入重定向
(3)通过管道;

at命令

at [option]...TIME
    
    TIME:
        HH:MM:SS [YYY-mm-dd]
        noon(中午十二点),midnight(半夜十二点),teatime(下午茶时间下午四点)

常用选项:
    -l:查看任务队列    -f /PATH/FROM/SOMEFEIL:从指定文件中读取任务,不用交互式输入了    -d:删除(加上任务号)    -c:查看指定作业的具体内容    -q QUEUE:指明队列;

注意:作业执行结果是以邮件发送给提交作业用户;

向crond提交作业的方式不同于at,他需要使用专用的配置文件,此文件有固定格式,不建议直接使用文件编辑器来编辑此文件;要使用crontab命令;

cron任务分为两类:
    系统cron任务:主要用于实现系统自身的维护;用户cron任务:
    命令:crontab命令

系统cron的配置格式: SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root

(1)每一行定义一个周期性任务:    * * * * * :定义周期性时间
    user-name:运行任务的用户身份
    command to be executed:任务
(2)此处的环境变量不同于用户登录后获得的环境,因此,建议命令使用绝对路径,或者自定义变量;
(3)执行结果邮件发送给MAILTO指定的用户

用户cron的配置格式: /var/spool/cron/USERNAME

SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root

(1)每行定义一个cron任务,共6个子弹;

(2)此处的环境变量不同于用户登录后的环境,因此,建议命令使用绝对路径,或者自定义PATH环境变量;

(3)邮件发送给当前用户;

时间表示法:

(1)特定值;
    给定时间点有效取值范围内的值;
    注意:day of week和day of mouth不同时使用
(2)给定时间点上有效取值范围的所有值;
*代表的含义:分钟、小时、天、月、星期几
示例:
(1)3 * * * *:每小时执行一次;每小时的第三分钟;
(2)3 4 * * 5:每周执行一次;每周5的4点3分;
(3)5 6 7 * *:每月执行一次;每月的7号6点5分;
(4)7 8 9 10 *:每年执行一次;每年的10月9号8点7分;
(5)9 8 * *3,7:每周三和周日8点9分
(6)0 8,20 * * 3,7:没周三和周日的8点和20点
(7)0 9-18 * * 1-5:周一到周五的9-18点
(8)*/5 * * * *:每5分钟执行一次任务(指定时间点不能被步长整除时,其意义将不复存在最小时间单位为“分钟”,想完成“秒”级人物,的需要利用脚本实现);

crontab命令:
    
    crontab -e:编辑任务;
    crontab -l:列出所有任务
    crontab -r:删除所有任务;即删除 /var/spool/cron/USERNAME文件
    crontab -u username:可以给别的用户定义定时任务
注意:运行结果以邮件通知给用户;如果拒绝接收邮件:
(1)COMMAND > /dev/null

注意:定义COMMEND时,如果命令需要用到%,需要对其转义;但放置于单引号中的%不用转义;

思考:某任务在指定的时间因关机未能执行,下次开机会不会执行?
不会
如果期望时间因故未能按时执行,下次开机后无论是否到了响应时间点都要执行一次,可用anacron实现;

traceroute 目标IP :可以显示从源主机到目标主机所经过的网关;

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

(0)
forestforest
上一篇 2016-09-06
下一篇 2016-09-06

相关推荐

  • linux安全机制与加密工具使用

    一、加密需要和安全机制 1.不加密流量的易受攻击性 密码/数据嗅探 数据操作 验证操作 相当于邮寄明信片 2.不安全的传统协议 telnet、FTP、POP3等等;不安全密码http、sendmail、NFS等等;不安全信息Ldap、NIS、rsh等等;不安全验证 3.NIST定义的安全属性:美国国家标准与技术研究院 1) 保密性:  &…

    Linux干货 2016-09-25
  • lvs–各类型的原理及实现—(原理篇)

    前言:    LVS即是linux虚拟服务器,是一个虚拟的服务器集群系统,目的是使用集群技术和linux操作系统实现一个高性能、高可用的服务器。采用IP负载均衡技术和基于内容请求分发技术,将请求负载均衡地转移到不同的服务器上执行,从而将一组服务器构成一个高性能、高可用的虚拟服务器。此篇的内容只包含两种较为常用的LVS技术,分别是LVS-N…

    Linux干货 2016-10-27
  • Linux基础知识之WMware Tools的安装

    该博文以CentOS6.8_x86_64系统为基础,tty终端登录CentOS6.8系统,以root身份登录系统。 为什么要安装WMware Tools?                    VMware Tools是VMware虚拟机中自带的一种增强工具,…

    Linux干货 2016-07-29
  • N25第四周总结(raid)

    raid详解 大纲:    1、什么是raid      2、如何实现raid      3、为什么要使用raid      4、raid使用方法详解      5、mdadm(软raid)使用   …

    Linux干货 2016-12-22
  • python使用paramiko 模块建立ssh通讯

    一 paramiko简介 下文是我从别人博客那里copy下来的: paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。 由于使用的是python这样的能够跨平台运行的语言,所以所有python支持的平台,如Linux, Solaris, BSD, MacOSX, Windows…

    Linux干货 2017-03-07