网络与进程管理相关命令使用

网络管理之netstat命令

netstat

    -print network connections,routing tables,interface statistics,masquerade connections and multicast memberships

    netstat [-t|–tcp][-u|–udp][-w|–raw][-l|–listening][-a|–all][-n|–numeric][-e|–extend][-p|–program]

    -t:tcp协议相关

    -u:udp协议相关

    -w:raw socket相关

    -l:处于监听状态

    -a:所有状态

    -n:以数字显示ip和端口

    -e:扩展模式

    -p:显示相关进程及pid

blob.png

配置linux网络属性:ip

ip

    -show/manipulate routing,devices,policy routing and tunnels

    ip [options] object {command |help}

            object:{link|addr|route}

ip link 

    -network device configuration

        set dev iface

            可设置属性:

                up down:启用或禁用设备接口

                

        show [dev iface]:指定接口


ip addr {add|del} IFADDR dev String

    [label LABEL]:添加地址时指明网卡别名

    [scope {global|link|host}]:指明作用域

    [broadcast ADDRESS]:指明广播地址


ip address show 

    -look at protocol addresses

    [dev device] 

    [label LABEL]

    [primary and secondary]

blob.png

ip route 

    -routing table management

    ip route add target via GW dev IFACE src SOURCE_IP

        target:指明该条路由记录是指向主机IP还是一个网段

        GW:指明网关地址

       IFACE:指明设备接口


ss:ss命令是netstat命令的升级版,在centos7 上推荐使用ss命令来取代netstat命令

    netstat是通过遍历proc来获取socket信息,ss使用netlink与内核tcp_diag模块通信获取socket信息

    ss [option]…[filter]

    -t:tcp协议相关

    -u:udp协议相关

    -w:裸套接字相关

    -x:unix sock相关

    -l:listen状态的连接

    -a:所有

    -n:数字格式

    -p:相关的程序及pid

    -e:扩展的信息

    -m:内存用量

    -o:计时器信息

    filter:=[state TCP-STATE][EXPRESSION]

            LISTEN:监听

            ESTABLESHED:以建立的连接

            FIN_WAIT_1

            FIN_WAIT_2

            SYN_SENT

            SYN_RECV

            CLOSED

                              ‘(dport= :ssh or sport= :ssh)’

blob.png


网络配置文件:

    a.IP MASK GW DNS相关配置文件

        /etc/sysconfig/network-scripts/ifcfg-IFACE

    b.路由相关配置文件

        /etc/sysconfig/network-scripts/route-IFACE

            DEVICE:此配置文件应用到的设备

            HWADDR:对应的设备MAC地址

            BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp,none,static,bootp

            NM_CONTROLLED:NetworkManager的简写,此网卡是否接受NM控制

            ONBOOT:是否在系统引导时是否激活此设备

            TYPE:接口类型,常见的有Ethernet,Bridge

            UUID:设备的唯一标识

            IPADDR:指明IP地址

            NETMASK:子网掩码

            GATEWAY:默认网关

            DNS1:第一个DNS服务器地址

            USERCTL:是否普通用户可以空盒子此设备

            PEERDNS:如果booton设置为dhcp,是否允许dhcp server分配的DNS服务器指向信息直接覆盖至/etc/resolv.conf文件中

            

本地解析器

    centos6 hostname

    centos7 hostnamectl 实时生效

    blob.png

    在centos6中存放主机名的文件是 /etc/sysconfig/network

    在centos7中存放主机名的文件时 /etc/hostname

        blob.png


dns名字解析

    /etc/resolv.conf

    /etc/nsswitch.conf 此文件优先级高于/etc/resolv.conf

    

网络配置文件:

    /etc/sysconfig/network-scirpts/route-IFACE

    1) target via gw

    2)  ADDRESS#=

        NAEMASK#=

        GATEWAY#=


网卡名称:

    网络接口识别并命名相关的udev配置文件

    /etc/udev/rules.d/70-persistent-net.rules

    卸载网卡驱动

        modprode -r e1000

    装载网卡

        modprobe e1000


Centos7 网络属性配置

    rhel6之前,网络接口使用连续号码命名在;eth0,eth1等,当增加或删除网卡时,网卡会发生改变

    rehl7使用基于硬件,设备拓扑和设置类型命名

    1)网卡命名机制

        systemd对网络设备的命名方法

        a)如果firmware或bios为主板上继承的设备提供的索引信息可用,且可预测则根据索引进行命名,如eno1

        b)如果fireware或bios为pci-e扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,如ens1

        c)如果硬件接口的物理位置信息可用,则根据此信息进行命名,如enp2s0

        d)如果用户显示启动,也可以根据mac地址进行命名

        e)以上均不可用时,则使用传统命名机制

    

    2)网卡设备的命名过程

        a)/usr/lib/udev/rules.d/60-net.rules

        b) /usr/lib/udev/rules.d/71-biosdevname.rules

        c) /usr/lib/udev/rules.d/75-net-description.rules

    

    3) 采用传统命名方式

        a)编辑/etc/default/grub配置文件

            GRUB_COMLINE_LINUC=“net.ifnames=0 rhgb quiet”

            或者修改/etc/grub2/grub.cfg

        b) 为grub2生成其配置文件

            grub2-mkconfig -o /etc/grub2.cfg

        c) 重启系统


nmcli命令

    NetworkManager command line tool网络管理命令行工具,它是centos中推行取代ifconfig的命令你个

    nmcli [option] object {command||help}

        device  -show and manage network interfaces

        nmcli device help

        connection  -start,stop,and manager network connections

        nmcli connection help


    修改IP地址等属性

    nmcli connection modify IFACE [+|-]setting.property value 


    修改配置文件执行生效

    systemctl restart network

    nmcli connection reload

    

    nmcli connection down eth0

    nmcli connection up eht0


使用nmcli进行网络配置

设备即网络接口,连接时对网络接口的配置,一个网络接口可有多个连接配置,但同时只有一个连接配置生效

创建一个新连接static,指定静态地址,不自动连接

nmcli connection add type Ethernet con-name static ifname eth0 autoconnection no ip4 172.16.x.10/24  gw4 172.16.x.254


网络组Network Teaming

网络组:是讲过个网卡聚合在一起的方法,从而实现冗错和提供吞吐量

        网络组不同于旧版的bonding计数,提供了更好的性能和扩展性

        网络组由内科驱动和teamd守护进程实现

        多种方式ruuner:broadcast roundrobin activebackup loadbalance lacp


1.nmcli connection add type team con-name team0 ifname team0 config '{"runner":{"name":"activebackup"}}'

会在/etc/sysonfig/network-scripts/下生成一个ifcfg-team0的文件

nmcli connection modify team0 ipv4.addresses 10.1.40.121/16

nmcli connection modify team0 ipv4.method manual

blob.png

2.创建port接口

  nmcli connection add type team-slave con-name team0-eno1 ifname eno16777736 master team0

  nmcli connection add type team-slave con-name team0-eno3 ifname eno33554984 master team0

blob.png

3.启动网络组

    nmcli connection reload

blob.png


4.尝试down掉其中一个网卡看其数据包是否能正常接收

    使用teamdctl team0 state可以查看到详细的信息

blob.png

blob.png

blob.png

blob.png


Linux进程及作业管理

    内核的功能:进程管理.文件系统,网络功能,内存管理,驱动程序,安全功能

    Process:运行中的程序的一个副本,是被载入内存的一个指令集合

        进程ID(process ID,PID)号码被用来标记各个进程

        UID,GID和SELINUX语境决定对文件系统的存取和访问权限

        通常从执行进程的用户来继承

存在生命周期

    Linux内核存储进程信息的固定格式:task struct

多个任务的task struct组件的链表:task list

进程创建:

    init 初始化进程

父子关系:

进程:都由其父进程创建

fork(),clone()                      

    进程优先级:

0-139:系统优先级

   1-99:实时优先级

   100-139:静态优先级

数字越小,优先级越高

nice值:-20,1

Big O:时间复杂度,用时和规模的关系

   o(1),o(logn),o(n),o(n^2),o(2^n)

blob.png

    进程内存:

page frame:页框,用于存储页面数据,存储page 4K

        LRU:least recently used 近期最少使用算法,释放内存

MMU:Memory Management Unit负责转换线性和物理地址

        IPC:Inter Process Communiation

同一主机上:

   Signal

   Shm:shared memory

   Semerphor

     不同主机上

   rpc:remote procecure call 远程库调用

   socket:

linux内核:抢占式多任务

进程类型:

   守护进程:daemon,在系统引导过程中启动的进程,与终端无关

   用户进程:跟终端相关,通过终端启动的进程

        注意:也可把在前台启动的进程送往后台,以守护模式运行

进程状态

   运行态:running

   就绪态:ready

   睡眠态:

可中断:interruptable

不可中断:uninterruptable

   停止态:暂停于内存中,但不会被调度,除非手动启动,stopped

   僵死态:zombie

blob.png

进程的分类:

CPU-Bound

IO-Bound

《linux内核设计与实现》

《深入理解linux内核》

Linux系统上的进程查看及管理工具:

    pstree ps pidof pgrep htop glances pmap svmstat dstat kill pkill job bg fg nohup nice renice killadd…

    Centos 5: sysV init

    Centos 6: upstart

    Centos 7: system

         /sbin/init

    pstree:

       display a tree of process

    /proc/:内核中的状态信息

       内核参数:

           可设置其值从而调整内核运行特性的参数

       状态变量:其用于输出内核中统计信息或状态下信息,仅用于查看

       参数:模拟成文件系统类型

    进程:

       /proc/:pid 

blob.png

    ps:

        present a snapshot of the current process

       ps [options]:

       选项有三种风格

            1 unix 带-

            2 BSD 不带-

            3 GNU long options

        启动进程的方式:

           系统启动进程中自动启动:与终端无关的进程

           用户通过终端启动:与终端相关的进程

        选项:

           a:所有与终端相关的进程

           x:所有与终端无关的进程

           u:以用户为中心组织进程状态信息显示

           常用组合:aux

           VSZ:虚拟内存集

           RSS:Resident Size 常驻内存集

       STAT:

            R:running

            S: interruptable sleeping

            D: uninterruptable sleeping

            T: stopped

            Z: zomble

       +:前台进程

       |:多线程进程

       N:低优先级进程

       <: 高优先级进程

       s:session leader

       -e:显示所有进程

       -f:完整格式的进程信息

       常用组合之二:-ef

       -F:显示完整格式的进程信息

         C:cpu utilization

       PSR:运行于哪颗CPU上

       -H:以层级结构显示进程的相关信息

       常用组合之三:-eFH

       常用组合之四:-eo axo

               o field1,field2…:自定义要显示的字段

        常用field:pid prl psr pcpu stat comm tty ppid

        ni:nice值;

        pri:priority优先级

        rtprio:real time priority 实时优先级

blob.png


pgrep pkill

   look up or signal processes based on name and other attributes

   pgrep [option]pattern

    -u uid: effective user

    -U uid:read user

    -t TERMINAL:与指定的终端相关的进程

    -l:显示进程名

    -a:显示完整格式的进程名

    -P pid:显示是此进程的子进程

pidof

根据进程名,获取其pid

top

   display linux processes

   排序

    P  以占据cpu百分比排序

    M  内存百分比

    T  累计占用cpu时间排序

   首部信息:

        uptime信息  l命令

        tasks及cpu信息 t命令

        内存信息   m命令

        退出命令:q

        刷新时间间隔  s

        终止指定的进程 k

    选项:

        -d# 指定刷新时间

        -b  批次方式显示

        -n# 显示多少批次

    blob.png        栏位信息简介:

            us:用户信息

            sy:内核空间

            ni:调整nice时间

            id:空闲

            wa:等待IO时间

            hi:硬中断

            si:软中断

            st:虚拟机偷走时间


uptime:显示系统时间 运行时长及平均负载

    过去1分钟 5分钟和15分钟

    等到运行的进程队列的长度

    blob.png

    

    内存工具:

        vmstat:虚拟内存信息

            vmstat [options][delay[count]]

     blob.png   

        procs:

            r:等待运行的进程的个数,和核心数无关

            b:处于不可中断睡眠态的进程个数(被阻塞的队列长度)

        memory:

            swpd:交换内存的使用总量

            free:空闲物理内存总量

            buffer:用于buffer的内存总量

            cache:用于cache的内存总量

        swap:

            si:从磁盘交换进内存的数据速率(kb/s)

            so:从内存交换至磁盘的数据速率(kb/s)

        io:

            bo:从块设备读入数据到系统中的速率(kb/s)

            bi:从系统中将数据保存到块设备的速率

        system:

            in:interrupts,中断速率

            cs:context switch 进程切换速率

        cpu:

            us;运行非系统内核程序花费的时间

            sy:运行系统内核所用的时间

      id:time spent idle

            wa:时间花费在等待io上

            st:虚拟设备偷走的时间

    

    pmap:进程的内存映射

        cat /proc/PID/maps

    blob.png


    dstat:系统资源统计

        dstat [-afv][options…][delay[count]]

            -c:显示cpu相关情况

            -d:显示disk相关信息

            -g:显示page相关统计信息

            -m:显示memory相关统计数据

            -n:显示network相关统计信息

            -p:显示process相关统计信息

            -r:显示IO请求相关统计信息

            -s:显示swapped相关统计信息

    blob.png    


    kill命令:

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

        显示当前系统可用的信号 kill -l

        常用信号:man 7 signal

        1)SIGHUP:无需关闭进程而让其重新读取配置文件

        2)SIGINT:终止正在运行的进程

        9)SIGKILL:杀死正在运行的进程

        15)SIGTERM:终止正在运行的进程

        18)SIGCONT

        19)SIGSTOP

blob.png

    指定信号的方法:

        信号的数字标识 1,2,9

        信号完整名称:SIGHUP

        信号的简写名称:HUP




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

(0)
Stupid_LStupid_L
上一篇 2016-09-07 12:32
下一篇 2016-09-07 13:55

相关推荐

  • N25第十周博客作业

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情)        (1)post:加电自检                主要是bios完成,检查主机各个组件是否完好,能否达到运行要求;    &…

    Linux干货 2017-03-10
  • Tomcat详解

    Tomcat详解 1、tomcat安装 tomcat的组件:<Server> <Service> <connector/> <connector/> <Engine> <Host /> <Host> <Context/> … </Host> &lt…

    2017-04-27
  • N28-第三周

    1. 列出當前系統上所有已經登入的用戶的用戶名,注意:同一個用戶登入多次,則只顯示一次即可。
    2. 取出最後登入到當前系統的用戶的相關信息。
    3. 取出當前系統上被用戶當做其默認shell的最多的那個shell。
    4. 將/etc/passwd中的第三個字段數值最大的後10個用戶的信息全部改為大寫後保存至/tmp/maxusers.txt文件中。
    5. 取出當前主機的IP地址,提示:對ifconfig命令的結果進行切分。
    6. 列出/etc目錄下所有以.conf結尾的文件的文件名,並將其名字轉換為大寫後保存至/tmp/etc.conf文件中。
    7. 顯示/var目錄下一級子目錄或文件的總各數。
    8. 取出/etc/group文件中第三個字段數值最小的10個組的名字。
    9. 將/etc/fstab和/etc/issue文件的內容合併為同一個內容後保存至/tmp/etc.test文件中。
    10. 請總結描述用戶和組管理類命令的使用方法並完成以下練習:
    (1) 創建組distro,其GID為2016。
    (2) 創建用戶mandriva,其ID號為1005,基本組為distro。
    (3) 創建用戶mageia,其ID號為1100,家目錄為/home/linux。
    (4) 給用戶mageia添加密碼,密碼為mageedu。
    (5) 刪除mandriva,但保留其家目錄。
    (6) 創建用戶slackware,其ID號為2002,基本組為distro,附加組peguin。
    (7) 修改slackware的默認shell為/bin/tcsh。
    (8) 為用戶slackware新增附加組admins。

    2017-12-19
  • 一切皆文件

    Linux Linux内一切皆文件;表现之一:硬件设备也通过文件表示 物理终端:/dev/console 虚拟终端: /dev/tty#[1,6] 串行终端:/dev/ttyS# 伪终端: /dev/pts/# 注意:在启动设备之后,在其上关联一个用户接口程序,即可实现与用户交互,交互式程序有两类:GUI(图形化界面)和CLI(命令行界面)。 查看终端设备:…

    Linux干货 2017-04-01
  • Linux中的文件管理命令及shell特性

    Linux中的文件管理命令 一、linux中的目录管理命令:mkdir和rmdir mkdir命令:创建目录 – SYNOPSIS         mkdir [OPTION]… DIRECTORY…     -…

    Linux干货 2016-09-27
  • 第九周

    统计可登录shell与不能登陆shell的个数 2. 写一个脚本 3.写一个脚本    4、写一个脚本,完成如下功能 脚本能够接受一个参数。 (1) 如果参数1为quit,则显示退出脚本,并执行正常退出。 (2) 如果参数1为yes,则显示继续执行脚本。 (3) 否则,参数1为其它任意值,均执行非正常退出。    5、…

    Linux干货 2016-12-26