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

网络管理之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
下一篇 2016-09-07

相关推荐

  • CentOS7内核编译

    一.centos7内核编译(支持ntfs文件系统) 1.下载内核源代码内核文件(https://www.kernel.org/) 2.解压缩源代码文件到指定目录 tar xvf linux-4.8.10.tar.xz -C /usr/src 3.创建软链接解压后的文件 cd /usr/src ln -s linux-4.8.10/ linux 4.复制当前系…

    Linux干货 2016-11-28
  • IO重定向

    I/O(IN Out)重定向(本来位置被改到别处位置):            指的改变默认输入输出的位置    程序:数据+指令  IO          可用于输入的设备:文件     &nbsp…

    Linux干货 2017-04-03
  • 设计模式 ( 十二 ) 职责链模式(Chain of Responsibility)(对象行为

    1.概述        你去政府部门求人办事过吗?有时候你会遇到过官员踢球推责,你的问题在我这里能解决就解决,不能解决就推卸给另外个一个部门(对象)。至于到底谁来解决这个问题呢?政府部门就是为了可以避免屁民的请求与官员之间耦合在一起,让多个(部门)对象都有可能接收请求,将这些(部门)对象连接成一条链,并且沿着这条链传递…

    Linux干货 2015-07-15
  • 用户组和权限管理相关作业

    1创建testuser uid 1234,主组:bin,辅助组:root,ftp,shell:/bin/csh home:/testdir/testuser     [root@ali ~]# useradd -u 1234 -g bin -G root,ftp -s /bin/csh -d /testdir/test…

    Linux干货 2016-08-02
  • grub的启动加密及删除恢复

    一、实验1:设置grub口令 1、生成一个加密运算为"nd5"的密码 2、设置grub口令 3、测试grub是否已加密 4、在虚拟机的下图的图形界面中,直接敲"Esc"或者"e"键 5、在图形的框下,提示只能敲"p"键,原因是因为grub加密的原因 6、直接敲"p&qu…

    Linux干货 2016-10-04
  • screen和ehco命令常用选项

    screen的用法 screen 是个外部命令,用之前需要安装。      安装方式之一:yum 源 安装      yum install -y screen screen 是基于VT100/ANSI的仿真终端屏幕管理器    …

    Linux干货 2016-07-26