網絡與進程管理相關命令使用

網絡管理之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.www58058.com/44225

(0)
Stupid_LStupid_L
上一篇 2016-09-07
下一篇 2016-09-07

相關推薦

  • sed基本用法

    Stream EDitor, 行編輯器  sed是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space), 接著用sed命令處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。然后讀入下行,執行下一個循環。如果沒有使諸如‘D’的特殊命令, 那會在兩個循環之間清空模式空間,但不會…

    Linux干貨 2017-08-20
  • 7-28-文件管理

    1.stat命令和時間戳 詳解 背景:                在Linux中,沒有文件創建時間的概念。只有文件的訪問時間、修改時間、狀態改變時間。也就是說不能知道   &n…

    Linux干貨 2016-08-02
  • 邏輯卷實戰演練

    1、創建一個至少有兩個PV組成的大小為20G的名為testvg的VG;要求PE大小為16MB, 而后在卷組中創建大小為5G的邏輯卷testlv;掛載至/users目錄 2、新建用戶archlinux,要求其家目錄為/users/archlinux,而后su切換至archlinux用戶,復制/etc/pam.d目錄至自己的家目錄 3、擴展testlv…

    Linux干貨 2016-09-01
  • openssl關于CA證書的創建

    1、用openssl實現證書申請 先在/etc/pki/CA/目錄下創建一個index.txt的文件,作為ca證書的數據庫 在相同目錄下創建一個serial的序列號文件,并寫入01 生成ca的簽名證書用到的私鑰文件 注意:私鑰的權限時600,文件名必須是cakey.pem 生成自簽證書 這樣私有CA建立完成 申請認證: 在申請的機器上生成私鑰 生成申請文件 …

    Linux干貨 2016-09-23
  • 創建CA 和申請證書

    創建CA 和申請證書1生成私有CA的私鑰:(umask 066;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)注:CA的私鑰文件必須放在/etc/pki/CA/private/cakey.pem 這個路徑里2創建序列號 ,數據庫文件touch  /etc/pki/CA/index.tx…

    Linux干貨 2017-07-17
  • 8月5號 練習+作業

    1,找出ifconfig 命令結果中本機的所有IPv4 地址 [root@localhost ~]# ifconfig |tr -cs '[:digit:].' '\n' |sort -t. -k3 |tail&nbsp…

    Linux干貨 2016-08-07
欧美性久久久久