系统进程管理

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的发行版及哲学思想

    Linux是一套免费使用和自由传播的类Unix系统,是一个基于Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的工具软件、应用程序和网络协议。它支持32位和64位硬件,是一个性能稳定的多用户网络操作系统。严格来讲,Linux这个词本身只表示Linux内核,联合GNU 组织里的各种强大的应用软件而组成的操作系统。 从Linux的诞生至今,…

    Linux干货 2016-10-30
  • N22-第三周博客作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 sort -u 在输出结果中去除重复行 2、取出最后登录到当前系统的用户的相关信息。 3、取出当前系统上被用户当作其默认shell的最多的那个shell。 uniq -c 在输出行前面加上每行在输入文件中出现的次数。 sort -rn : -n  …

    Linux干货 2016-08-29
  • SSH会话劫持实现端口转发

    在进行渗透测试时,我们有时候会碰到搭建的测试环境、产品服务器、DMZ或者其他类似的机器群的情况,这时我们完全可以把它们看作跳板。这些系统被设计成对外交互的接口,这时候我们考虑对其他域里的用户进行SSH会话劫持是个不错的选择。 那么如果你拥有了某一个跳板的控制权限,想要通过另一个域的用户对远程域进行访问会怎么办呢?当然,这时候你是没有密码、密钥的,你不能抛弃二…

    系统运维 2015-03-23
  • Linux的用户,组及文件权限管理

    Linux用户与组的创建,删除,属性修改,文件权限管理

    Linux干货 2018-02-24
  • N25第二周

      1,Linux上的文件管理命令都有哪些,其常用的使用方法及其相关示例演示。        文件查看类命令:cat, tac, head, tail, more, less           分屏…

    Linux干货 2016-12-12
  • linux 系统启动流程

    假设以个人架设的linux主机为例:当你按下电源键之后,计算机硬件会主动读取BIOS来加载硬件信息及进行硬件系统的自我测试,之后系统会主动读取系统第一个可启动的设备,此时就可以读入引导装载程序了。 引导程序可以指定使用哪个内核文件来启动,并实际加载内核到内存中解压缩与执行,此时内核就能够开始在内存内活动,并检测所有硬件信息,与加载适当的驱动程序来使这部主机开…

    Linux干货 2016-09-12