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

网络管理之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)
上一篇 2016-09-07 12:32
下一篇 2016-09-07 13:55

相关推荐

  • Python 课堂笔记

    第二天

    Linux干货 2018-03-21
  • keepalived+nginx

    keepalived可以认为是VRRP协议在Linux上的实现,主要有三个模块,分别是core、check和vrrp。core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式。vrrp模块是来实现VRRP协议的。本文基于如下的拓扑图: 配置keepalived+nginx的方…

    Linux干货 2016-11-04
  • haproxy代理服务

    HAProxy: LB Cluster:         四层:   lvs, nginx(stream),haproxy(mode tcp)         七层:   http: nginx(http, ngx_http_upstrea…

    Linux干货 2017-05-17
  • 程序包管理:rpm、yum以及(make)源代码编译安装

    程序包管理:rpm、yum以及(make)源代码编译安装 在Linux上安装程序一般都有三种方法:源代码编译安装,rpm包安装和rpm包的前端安装yum, (rpm,和yum程序包管理器是针对CentOS6平台的) 程序包管理方式都大同小异:  源代码–>目标二进制格式(二进制程序、库文件、配置文件、帮助文件)–&gt…

    Linux干货 2017-01-10
  • N25第二周作业

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。     其常用的有: touch、stat、rm、cp、mv、install touch 命令    命令格式: touch [OPTION]… File… 命令参数: -a&n…

    Linux干货 2016-12-12
  • vim学习

    vim学习 认识与介绍   vim是一款linux下查看编辑文本文件的一款文本编辑器。一般用来查看修改配置文件、日志文件等文本类文件。 打开文件   vim [OPTIONS] [FILE …]     +#: 打开文件后,直接让文件处于第#行     +/…

    Linux干货 2016-10-09