網絡配置與進程管理

一、網絡配置

1、ifconfig命令

 ifconfig [IFACE]
     顯示所有啟動的網絡接口信息,包括網卡別名;指明網絡接口時,顯示指定網絡接口信息
 ifconfig -a
     顯示所有網絡接口的信息,包括未啟動的網卡接口。
 ifconfig IFACE [up|down]
     啟動或關閉網絡接口
 ifconfi IFACE [-]promisc
     啟用混雜模式
 ifconfig IFACE IP/mask [up]
 ifconfig IFACE IP netmask MASK
     臨時配置網絡接口,立即生效
    注意:立即生效,但不會永久有效

    ifup/ifdown IFACE
        啟用或禁用網絡接口

2、route命令
    route -n
          查看路由表    
    route add [-net|-host] target [netmask Nm] [gwGw] [[dev] If]
        添加路由條目
    route del [-net|-host] target [gwGw] [netmask Nm] [[dev] If]
        刪除路由條目
    route del default
           刪除默認路由
       route add default gw target
        添加默認路由

 注:配置動態路由
        通過守護進程獲取動態路由
        安裝quagga包,支持多種格式的RIP、OSPF和BGP
        命令vtysh配置

練習:
   route add -host 192.168.1.3 gw 172.16.0.1 dev eth0
   route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0
   route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
   route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
   route add default gw 172.16.0.1
   route del -host 192.168.1.3
   route del -net 192.168.0.0 netmask 255.255.255.0
 
3、netstat命令
(1)顯示網絡連接
    netstat        
      -t: tcp協議相關
      -u: udp協議相關
      -w: raw socket相關
      -l: 處于監聽狀態
      -a: 所有狀態
      -n: 以數字顯示IP和端口;
      -e:擴展格式
      -p: 顯示相關進程及PID

   常用組合:
       -tan, -uan, -tnl, -unl

(2)顯示路由表
    netstat
      -r: 顯示內核路由表
      -n: 數字格式,不解析成主機名

(3)顯示接口統計數據:
    netstat
       -i
       -I IFACE

4、ip命令
   ip {link|addr|route}
(1)ip link
         set dev IFACE {up|down}:激活或禁用指定接口
         show [dev IFACE]:顯示指定接口信息,沒有指定時顯示所有啟動接口

(2) ip addr
       ip addr {add|del} IFADDR dev STRING
        [label LABEL]:添加地址時指明網卡別名
        [scope {global|link|host}]:指明作用域
            global: 全局可用,默認;
            link: 僅鏈接可用;
            host: 本機可用;
        [broadcast ADDRESS]:指明廣播地址

     ip addr show -look at protocol addresses
        [dev DEVICE]
        [label PATTERN]
        [primary and secondary]

    ip addr flush [dev DEVICE]
        清空協議地址,沒有指明接口時,清空所有協議地址

  練習:
    ip addr add 172.16.100.13/16 dev eth0 label eth0:0
    ip addr del 172.16.100.13/16 dev eth0 label eth0:0
    ip addr flush dev eth0 label eth0:0

(3) ip route
          list|show
               查看路由表
          add NETWORK/MASK via GW [dev IFACE] [src SOURCE_IP]
             添加路由條目
          add default via GW [dev IFACE]
               添加默認路由
          delete NETWORK/MASK
               刪除路由條目
          flush [dev IFACE] [via PREFIX]
              清空路由表

  練習:
    ip route add 192.168.0.0/24 via 172.16.0.1
    ip route add 192.168.1.13 via 172.16.0.1
    ip route add default via 172.16.0.1
    ip route flush dev eth0

5、ss命令
    netstat通過遍歷proc來獲取socket信息,ss使用netlink與內核tcp_diag模塊通信獲取socket信息。
    選項:
    -t: tcp協議相關
    -u: udp協議相關
    -w: 裸套接字相關
    -x:unixsock相關
    -l: listen狀態的連接
    -a: 所有狀態
    -n: 數字格式
    -p: 相關的程序及PID
    -e: 擴展的信息
    -m:內存用量
    -o:計時器信息

  常用組合:
      -tan, -tanl, -tanlp, -uan

 TCP的常見狀態:
    LISTEN: 監聽
    ESTABLISHED:已建立的連接
    FIN_WAIT_1
    FIN_WAIT_2
    SYN_SENT
    SYN_RECV
    CLOSED
UDP無狀態

FILTER := [ state TCP-STATE ] [ EXPRESSION ]
EXPRESSION:
    dport=
    sport =
示例:'( dport= :sshor sport = :ssh)'  顯示所有已建立的SSH連接
      '( dport = :smtp or sport = :smtp )'  顯示所有已建立的SMTP連接
      '( dport = :http or sport = :http )'  顯示所有已建立的HTTP連接

本地解析器  /etc/hosts
  解析器執行正向和逆向查詢
    本地主機名數據庫和IP地址的映像
    對小型獨立網絡有用
    通常,在使用DNS前檢查
    getent hosts 查看/etc/hosts 內容

dns解析器  /etc/resolv.conf
    nameserverDNS_SERVER_IP1
    nameserverDNS_SERVER_IP2
    nameserverDNS_SERVER_IP3

本地解析器與dns解析器的檢查順序?/etc/nsswitch.conf
    一般/etc/hosts相比優先于DNS

正解:FQDN–>IP
     dig -t A FQDN
     host -t A FQDN
反解:IP–>FQDN
     dig -x IP
     host -t PTR IP

路由配置文件
/etc/sysconfig/network-scripts/route-IFACE
  注意:需service network restart生效
兩種風格:
    (1) TARGET via GW
    (2) 每三行定義一條路由
    ADDRESS#=TARGET
    NETMASK#=mask
    GATEWAY#=GW
 注:兩種風格不能同時使用,只能使用一種風格

查看網卡驅動:
    ethtool -i IFACE
卸載網卡驅動:
    modprobe -r e1000
    rmmod e1000
裝載網卡驅動:
    modprobe e1000

網卡名稱
centos6
    網絡接口使用連續號碼命名:eth0、eth1等,當增加或刪除網卡時,名稱可能會發生變化。
    網絡接口識別并命名相關的udev配置文件:
        /etc/udev/rules.d/70-persistent-net.rules
centos7
(1) 網卡命名機制
    systemd對網絡設備的命名方式,基于硬件,設備拓撲和設置類型命名
    (a) 如果Firmware或BIOS為主板上集成的設備提供的索引信息可用,且可預測則根據此索引進行命名,例如eno1
    (b) 如果Firmware或BIOS為PCI-E擴展槽所提供的索引信息可用,且可預測,則根據此索引進行命名,例如ens1
    (c) 如果硬件接口的物理位置信息可用,則根據此信息進行命名,例如enp2s0
    (d) 如果用戶顯式啟動,也可根據MAC地址進行命名,enx2387a1dc56
    (e) 上述均不可用時,則使用傳統命名機制

(2) 名稱組成格式
        en: Ethernet 有線局域網
        wl: wlan無線局域網
        ww: wwan無線廣域網
        o<index>: 集成設備的設備索引號
        s<slot>: 擴展槽的索引號
        x<MAC>: 基于MAC地址的命名
        p<bus>s<slot>: enp2s1

(3)網卡設備的命名過程:
  (a)udev, 輔助工具程序/lib/udev/rename_device, /usr/lib/udev/rules.d/60-net.rules
  (b) biosdevname會根據/usr/lib/udev/rules.d/71-biosdevname.rules
   (c) 通過檢測網絡接口設備,根據/usr/lib/udev/rules.d/75-net-description
        ID_NET_NAME_ONBOARD
        ID_NET_NAME_SLOT
        ID_NET_NAME_PATH

(4) 采用傳統命名方式
    (a) 編輯/etc/default/grub
            GRUB_CMDLINE_LINUX="rhgb quiet net.ifnames=0"
    (b) 為grub2生成其配置文件
            grub2-mkconfig -o /etc/grub2.cfg
    (c) 重啟系統
            reboot
  或
      (a) 直接編輯/boot/grub2/grub.cfg或/boot/grub/grub.conf
              crashkernel=auto rhgb quiet.UTF-8 net.ifnames=0
      (b) 重啟系統
              reboot

      注:需要修改相對應的網絡接口配置文件

6、nmcli命令
  修改IP地址等屬性:
    nmcli connection modify IFACE [+|-]setting.property value
        setting.property:
            ipv4.addresses ipv4.gateway
            ipv4.dns1 ipv4.method manual | dhcp

修改配置文件執行生效:
    systemctl restart network
    nmclicon reload
nmcli命令生效:
    nmcli con down eth0
    nmcli con up eth0

相關工具
網絡接口配置tui工具:nmtui
主機名稱配置工具:hostnamectl
    status
    set-hostname

NeworkManager是管理和監控網絡設置的守護進程
設備即網絡接口,連接是對網絡接口的配置。一個網絡接口可有多個連接配置,但同時只有一個連接配置生效。
(a)顯示所有包括不活動連接
    nmcli con show
(b)顯示所有活動連接
    nmcli con show –active
(c)顯示網絡連接配置
    nmcli con show "System eth0“
(d)顯示設備狀態
    nmcli dev status
(e)顯示網絡接口屬性
    nmcli dev show eno16777736
(f)創建新連接default,IP自動通過dhcp獲取
    nmcli con add con-name default type Ethernet ifnameeth0
(g)刪除連接
    nmcli con del default
(h)創建新連接static ,指定靜態IP,不自動連接
    nmcti con add con-name static ifnameeth0 autoconnectno type Ethernet ip4 172.25.X.10/24 gw4 172.25.X.254
(i)啟用static連接配置
    nmcli con up static
(j)啟用default連接配置
    nmcli con up default
(k)查看幫助
    nmcli con add help

練習:
    nmcli con mod “static” connection.autoconnect no
    nmcli con mod “static” ipv4.dns 172.25.X.254
    nmcli con mod “static” +ipv4.dns 8.8.8.8
    nmcli con mod “static” -ipv4.dns 8.8.8.8
    nmcli con mod “static” ipv4.addresses “172.25.X.10/24 172.25.X.254”
    nmcli con mod “static” +ipv4.addresses 10.10.10.10/16

nmcli con mod                                                       ifcfg-* 文件

ipv4.method manual                                             BOOTPROTO=none
ipv4.method auto                                                  BOOTPROTO=dhcp
ipv4.addresses “192.0.2.1/24 192.0.2.254”         IPADDR0=192.0.2.1  PREFIX0=24  GATEWAY0=192.0.2.254
ipv4.dns 8.8.8.8                                                       DNS0=8.8.8.8
ipv4.dns-search example.com                               DOMAIN=example.com
ipv4.ignore-auto-dns true                                     PEERDNS=no
connection.autoconnect yes                                 ONBOOT=yes
connection.id eth0                                                 NAME=eth0
connection.interface-name eth0                          DEVICE=eth0
802-3-ethernet.mac-address . . .                            HWADDR= . . .

網絡配置文件
?設備配置被保存在文本文件中:/etc/sysconfig/network-scripts/ifcfg-<name>
  幫助文檔列出完整選項列表:/usr/share/doc/initcripts-*/sysconfig.txt

    動態配置                                                    靜態配置

    DEVICE=ethX                                           DEVICE=ethX
    HWADDR=0:02:8A:A6:30:45                    HWADDR=0:02:8A:A6:30:45
    BOOTPROTO=dhcp                                 IPADDR=192.168.0.123
    ONBOOT=yes                                           NETMASK=255.255.255.0
    Type=Ethernet                                         GATEWAY=192.168.0.254
                                                                      ONBOOT=yes
                                                                      Type=Ethernet
   
修改連接配置后,需要重新加載配置
    nmcli con reload
    nmcli con down “system eth0” 可被自動激活
    nmcli con up “system eth0”
    nmcli dev dis eth0 禁用網卡,訪止被自動激活
圖形工具  nm-connection-editor

網絡組Network Teaming
    網絡組:是將多個網卡聚合在一起方法,從而實現冗錯和提高吞吐量
    網絡組不同于舊版中bonding技術,提供更好的性能和擴展性
    網絡組由內核驅動和teamd守護進程實現.
    多種方式runner
        broadcast
        roundrobin
        activebackup
        loadbalance
        lacp(implements the 802.3ad Link Aggregation Control Protocol)

    啟動網絡組接口不會自動啟動網絡組中的port接口
    啟動網絡組接口中的port接口不會自動啟動網絡組接口
    禁用網絡組接口會自動禁用網絡組中的port接口
    沒有port接口的網絡組接口可以啟動靜態IP連接
    啟用DHCP連接時,沒有port接口的網絡組會等待port接口的加入

創建網絡組接口
    nmcli con add type team con-name CNAME ifname INAME [config JSON]
        CNAME連接名,INAME接口名,
        JSON指定runner方式
            格式:'{"runner": {"name": "METHOD"}}'
            METHOD可以是broadcast, roundrobin, activebackup, loadbalance, lacp.

創建port接口
  nmcli con add type team-slave con-name CNAME ifname INAME master TEAM
        CNAME連接名,INAME網絡接口名,TEAM網絡組接口名,連接名若不指定,默認為team-slave-IFACE.
    nmcli dev dis INAME
    nmcli con up CNAME
        INAME設備名CNAME網絡組接口名或port接口

網絡組示例
創建網絡組nmcli con add con-name team0 type team ifname team0 config "{"runner": {"name": "loadbalance"}}"
添加IP地址nmcli con mod team0 ipv4.addresses 192.168.1.100/24
IP獲取方式nmcli con mod team0 ipv4.method manual
添加網卡1 nmcli con add con-name team0-eth1 type team-slave ifname eth1 master team0
添加網卡2 nmcli con add con-name team0-eth2 type team-slave ifname eth2 master team0
啟動網絡組nmcli con up team0
啟動接口1 nmcli con up team0-eth1
啟動接口2 nmcli con up team0-eth2
查看網絡組teamdctl team0 state
關閉接口  nmcli dev dis eth1

管理網絡組配置文件
 /etc/sysconfig/network-scripts/ifcfg-team0
    DEVICE=team0
    DEVICETYPE=Team
    TEAM_CONFIG="{\"runner\": {\"name\": \"broadcast\"}}"
    BOOTPROTO=none
    IPADDR0=172.25.5.100
    PREFIX0=24
    NAME=team0
    ONBOOT=yes

/etc/sysconfig/network-scripts/ifcfg-team0-eth1
    DEVICE=eth1
    DEVICETYPE=TeamPort
    TEAM_MASTER=team0
    NAME=team0-eth1
    ONBOOT=yes

/etc/sysconfig/network-scripts/ifcfg-team0-eth2
    DEVICE=eth2
    DEVICETYPE=TeamPort
    TEAM_MASTER=team0
    NAME=team0-eth2
    ONBOOT=yes

主機名管理
rhel6之前主機名配置文件:/etc/sysconfig/network
rhel7.0主機名配置文件:/etc/hostname ,默認沒有這個文件,通過DNS反向解析獲取主機名,主機名默認為:localhost.localdomain

顯示主機名信息
    hostname
    hostnamectlstatus
創建并修改文件并生效
    hostnamectl set-hostname desktopX.example.com
刪除文件,恢復主機名localhost.localdomain

DNS設置,存放在/etc/resolv.conf文件中
    PEERDNS=no 表示當IP通過dhcp自動獲取時,dns仍是手動設置,不自動獲取。等價于下面命令:
    nmclicon mod “system eth0” ipv4.ignore-auto-dns yes

顯示主機名   hostname
測試網絡連通性    ping,mtr
顯示正確的路由表   iproute
確定名稱服務器使用   nslookup,host,dig
跟蹤路由   traceroute,Tracepath

網絡客戶端工具
lftp, ftp, lftpget, wget
 lftp[-p port] [-u user[,password]] SERVER
子命令:
get、mget、ls、help
# lftpgetURL
# ftp
# wget
wget[option]… [URL]…
-q: 靜默模式
-c: 斷點續傳
-O: 保存位置
–limit-rates=: 指定傳輸速率

進程管理

進程概念
  內核的功用:進程管理、文件系統、網絡功能、內存管理、驅動程序、安全功能等
  Process: 運行中的程序的一個副本,是被載入內存的一個指令集合

    進程ID(Process ID,PID)號碼被用來標記各個進程
    UID、GID、和SELinux語境決定對文件系統的存取和訪問權限,通常從執行進程的用戶來繼承,存在生命周期

  task struct:Linux內核存儲進程信息的數據結構格式
  task list:多個任務的的task struct組成的鏈表

進程創建:
    init:第一個進程
    父子關系
    進程:都由其父進程創建,COW
    fork(), clone()
    Linux系統各進程的相關信息均保存在/proc/PID目錄下的各文件中

進程優先級:
    系統優先級:數字越小,優先級越高
    0-139(CentOS4,5)
    各有140個運行隊列和過期隊列
    0-98,99(CenOS6)
    實時優先級:99-0:值最大優先級最高
    Nice值:-20,19對應系統優先級100-139或99
    Big O:時間復雜度,用時和規模的關系
    O(1), O(logn), O(n)線性, O(n^2)拋物線, O(2^n)

進程相關概念
    進程內存:
        Page Frame: 頁框,用存儲頁面數據,存儲Page 4k
        LRU:Least Recently Used 近期最少使用算法,釋放內存
        物理地址空間和線性地址空間
        MMU:Memory Management Unit負責轉換線性和物理地址

    IPC: Inter Process Communication
        同一主機上
            signal
            shm: shared memory
            semophore信號量,一種計數器
        不同主機上:
            rpc: remote procedure call
            socket: IP和端口號

進程狀態
Linux內核:搶占式多任務
    進程類型:
        守護進程: daemon,在系統引導過程中啟動的進程,和終端無關進程
        前臺進程:跟終端相關,通過終端啟動的進程
        注意:兩者可相互轉化
    進程狀態:
        運行態:running
        就緒態:ready
        睡眠態:
            可中斷:interruptable
            不可中斷:uninterruptable
        停止態:stopped,暫停于內存中,但不會被調度,除非手動啟動
        僵死態:zombie,結束進程,父進程結束前,子進程不關閉

進程的分類:
    CPU-Bound:CPU密集型,非交互
    IO-Bound:IO密集型,交互

1、pstree    顯示進程樹
     -p:顯示進程號PID
    
2、ps     查看進程信息
   支持三種選項:
        UNIX選項如-A -e
        BSD選項如a
        GUN選項如–help

   默認顯示當前終端中的進程
     a選項包括所有終端中的進程
     x選項包括不鏈接終端的進程
     u選項顯示進程所有者的信息
     f選項顯示進程的父進程
     o屬性… 選項顯示定制的信息:pid、comm、%cpu、%mem、state、tty、euser、ruser

    VSZ: Virtual memory SiZe,虛擬內存集,線性內存
    RSS: ReSidentSize, 常駐內存集
    STAT:進程狀態
    R:running 運行態
    S: interruptablesleeping 可中斷睡眠
    D: uninterruptable sleeping 不可中斷睡眠
    T: stopped 停止態
    Z: zombie 僵尸態
    +: 前臺進程
    l: 多線程進程
    N:低優先級進程
    <: 高優先級進程
    s: session leader,會話(子進程)發起者

(1)常用組合:-ef
    -e: 顯示所有進程
    -f: 顯示完整格式程序信息
(2)常用組合:-eFH
    -F: 顯示更完整格式的進程信息
    -H: 以進程層級格式顯示進程相關信息
(3)常用組合:自定義
    -eo pid,tid,class,rtprio,ni,pri,psr,    pcpu,stat,comm
    axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm

ni: nice值
      pri: priority,優先級
      psr: processor, CPU編號
      rtprio: 實時優先級

3、pgrep     按預定義的模式搜索進程
    -u uid: effective user,生效者
    -U uid: real user,真正發起運行命令者
    -t terminal: 與指定終端相關的進程
    -l: 顯示進程名
    -a: 顯示完整格式的進程名
    -P pid: 顯示指定進程的子進程

4、pidof     按確切的程序名稱找出其進程PID

5、uptime     顯示當前時間,系統已啟動的時間、當前上線人數,系統平均負載(1、5、10分鐘的平均負載,一般不會超過1)

系統平均負載:指在特定時間間隔內運行隊列中的平均進程數。

如果每個CPU內核的當前活動進程數不大于3的話,那么系統的性能良好。如果每個CPU內核的任務數大于5,那么這臺機器的性能有嚴重問題。

如果linux主機是1個雙核CPU的話,當Load Average 為6的時候說明機器已經被充分使用了。

6、top:動態查看進程信息
    選項:
        -d #: 指定刷新時間間隔,默認為3秒
        -b: 以批次方式
        -n #: 顯示多少批次

    子命令:
        P:以占據的CPU百分比,%CPU
        M:占據內存百分比,%MEM
        T:累積占據CPU時長,TIME+
        q:退出命令
        s:修改刷新時間間隔
        k:終止指定進程
        w:保存文件

    首部信息顯示:
        uptime信息:l命令
        tasks及cpu信息:t命令
        cpu分別顯示:1 (數字)
        memory信息:m命令

  欄位信息簡介
        us:用戶空間
        sy:內核空間
        ni:調整nice時間
        id:空閑
        wa:等待IO時間
        hi:硬中斷
        si:軟中斷(模式切換)
        st:虛擬機偷走的時間
        PID:任務的進程ID
        PPID:父任務的進程
        IDRUSER:任務的所有者真實名稱
        UID:任務所有者
        IDUSER:任務所有者名稱
        GROUP:任務所有者群組名
        TTY:終端
        PR:優先級
        %CPU:CPU使用率
        %MEM:內存使用率
        S:進程狀態
        TIME+:CPU時間,精確到秒

7、htop     top的增強版
    選項:
        -d #: 指定延遲時間;
        -u UserName: 僅顯示指定用戶的進程;
        -s COLUME: 以指定字段進行排序;
    子命令:
        s: 跟蹤選定進程的系統調用;
        l: 顯示選定進程打開的文件列表;
        a:將選定的進程綁定至某指定CPU核心;
        t: 顯示進程樹

8、vmstat     虛擬內存信息
    選項:
        -s:將一些事件導致的內存變化列表說明
        -S:后面可以接單位K、M代表bytes的容量
        -d:列出磁盤的讀寫總量統計表

    vmstat 1 3
    欄位信息簡介
    procs:
        r:等待運行的進程的個數,和核心數有關
        b:處于不可中斷睡眠態的進程個數(被阻塞的隊列的長度)
    memory:
        swpd: 交換內存的使用總量
        free:空閑物理內存總量
        buffer:用于buffer的內存總量
        cache:用于cache的內存總量
    swap:
        si:從磁盤交換進內存的數據速率(kb/s)
        so:從內存交換至磁盤的數據速率(kb/s)
        io:
        bi:從塊設備讀入數據到系統的速率(kb/s)
        bo: 保存數據至塊設備的速率
    system:
        in: interrupts, 中斷速率,包括時鐘
        cs: context switch, 進程切換速率
    cpu:
        us:Timespent running non-kernel code
        sy: Time spent running kernel code
        id: Time spent idle. Linux 2.5.41前,包括IO-wait time.
        wa: Time spent waiting for IO. 2.5.41前,包括in idle.
        st: Time stolen from a virtual machine. 2.6.11前, unknown.

9、pmap     進程對應的內存映射
     -x: 顯示詳細格式的信息;
    另外一種實現:cat /proc/PID/maps

10、glance     系統監控工具
常用選項:
    -b: 以Byte為單位顯示網卡數據速率
    -d: 關閉磁盤I/O模塊
    -f /path/to/somefile: 設定輸入文件位置
    -o {HTML|CSV}:輸出格式
    -m: 禁用mount模塊
    -n: 禁用網絡模塊
    -t #: 延遲時間間隔
    -1:每個CPU的相關數據單獨顯示

    C/S模式下運行glances命令
    服務模式:
         glances -s -B IPADDR
         IPADDR: 指明監聽的本機哪個地址
    客戶端模式:
         glances -c IPADDR
         IPADDR:要連入的服務器端地址

11、dstat命令     系統資源統計
    選項:
        -c: 顯示cpu相關信息
        -C #,#,…,total
        -d: 顯示disk相關信息
        -D total,sda,sdb,…
        -g:顯示page相關統計數據
        -m: 顯示memory相關統計數據
        -n: 顯示network相關統計數據
        -p: 顯示process相關統計數據
        -r: 顯示io請求相關的統計數據
        -s: 顯示swapped相關的統計數據
        –tcp:顯示tcp套接字的相關統計數據
        –udp:顯示udp套接字的相關統計數據
        –unix:顯示unix套接字的相關統計數據
        –raw
        –socket
         –ipc
        –top-cpu:顯示最占用CPU的進程
        –top-io: 顯示最占用io的進程
        –top-mem: 顯示最占用內存的進程
        –top-latency: 顯示延遲最大的進程

12、kill     向進程發送控制信號,以實現對進程管理
      -l:顯示當前系統可用信號

    常用信號:man 7 signal
        1) SIGHUP: 無須關閉進程而讓其重讀配置文件
        2) SIGINT: 中止正在運行的進程;相當于Ctrl+c
        9) SIGKILL: 殺死正在運行的進程
        15) SIGTERM:終止正在運行的進程
        18) SIGCONT:繼續運行
        19) SIGSTOP:后臺休眠
        指定信號的方法:
        (1) 信號的數字標識;1, 2, 9
        (2) 信號完整名稱;SIGHUP
        (3) 信號的簡寫名稱;HUP

按PID:kill [-SIGNAL] pid…
按名稱:killall [-SIGNAL] comm…
按模式:pkill [options] pattern
    -SIGNAL
    -u uid: effective user,生效者
    -U uid: real user,真正發起運行命令者
    -t terminal: 與指定終端相關的進程
    -l: 顯示進程名
    -a: 顯示完整格式的進程名
    -P pid: 顯示父進程為此處指定的進程的進程列表

作業管理
Linux的作業控制
        前臺作業:通過終端啟動,且啟動后一直占據終端;
        后臺作業:可通過終端啟動,但啟動后即轉入后臺運行(釋放終端)

如何讓作業運行于后臺?
    (1) 運行中的作業:Ctrl+z
    (2) 尚未啟動的作業:# COMMAND &

后臺作業雖然被送往后臺運行,但其依然與終端相關;退出終端,將關閉后臺作業。如果希望送往后臺后,剝離與終端的關系
    nohup COMMAND &
    screen;COMMAND

查看所有作業:
  jobs
作業控制:
 fg[[%]JOB_NUM]:把指定的后臺作業調回前臺;
 bg[[%]JOB_NUM]:讓送往后臺的作業在后臺繼續運行;
 kill [%JOB_NUM]:終止指定的作業;

并行運行,同時運行多個進程,提高效率
(1)vi all.sh
        f1.sh&
        f2.sh&
        f3.sh&
(2)(f1.sh&);(f2.sh&);(f3.sh&)
(3){ f1.sh& f2.sh& f3.sh& }

進程優先級
進程優先級調整:
靜態優先級:100-139
進程默認啟動時的nice值為0,優先級為120
只有根用戶才能降低nice值(提高優先性)
nice命令:
nice [OPTION] [COMMAND [ARG]…]
renice命令:
renice[-n] priority pid…
查看:
psaxopid,comm,ni

作業1:路由器配置

    host1
        IP:192.168.100.10/24
        GW:192.168.0.1

    route1
        IP1:192.168.100.1
        IP2:192.168.0.1
        GW:192.168.0.2

        echo 1 > /proc/sys/net/ipv4/ip_forward

        iptables -F

    route2
        IP1:192.168.0.2
        IP2:192.168.200.1

        GW:192.168.0.1

        echo 1 > /proc/sys/net/ipv4/ip_forward

        iptables -F

    host2
        IP:192.168.200.10
        GW:192.168.0.2

作業2:網絡組配置

nmcli con add con-name team0 type team ifname team0 config "{"runner": {"name": "loadbalance"}}"
nmcli con mod team0 ipv4.addresses 192.168.0.100/24
nmcli con mod team0 ipv4.method manual
nmcli con add con-name team0-port1 type team-slave ifname eth1 master team0
nmcli con add con-name team0-port2 type team-slave ifname eth2 master team0

    /etc/sysconfig/network-scripts/ifcfg-team0
        DEVICE=team0
        TEAM_CONFIG="{\"runner\":{\"name\":\"activebackup\"}}"
        DEVICETYPE=Team
        BOOTPROTO=none
        NAME=team0
        ONBOOT=yes
        IPADDR=192.168.0.100
        PREFIX=24

    /etc/sysconfig/network-scripts/ifcfg-team0-port1
        NAME=team-prot1
        DEVICE=eth1
        ONBOOT=yes
        TEAM_MASTER=team0
        DEVICETYPE=TeamPort

    /etc/sysconfig/network-scripts/ifcfg-team0-port2
        NAME=team-prot2
        DEVICE=eth2
        ONBOOT=yes
        TEAM_MASTER=team0
        DEVICETYPE=TeamPort

    nmcli connection up team0
    nmcli connection up team-port1
    nmcli connection up team-port2

    nmcli connection show

    teamdctl team0 state

    nmcli dev disconnect eth1

    nmcli dev disconnect eth2

原創文章,作者:anonymous,如若轉載,請注明出處:http://www.www58058.com/44584

(0)
anonymousanonymous
上一篇 2016-09-07
下一篇 2016-09-08

相關推薦

  • N22-第四周作業

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。      2、編輯/etc/group文件,添加組hadoop。 3、手動編輯/etc/passwd文件新增一行,添加用戶hadoop,其基本組ID為hadoop組的id號;其家目錄為…

    Linux干貨 2016-09-05
  • python agent應用

    BaseHTTPServer 模塊說明 class BaseHTTPServer.HTTPServer(server_address, RequestHandlerClass) server_address : 是一個服務器 (ip, port)元組。 RequestHandlerClas…

    Linux干貨 2016-09-19
  • 游戲運維工程師

    愛樂盟互動為深圳市政府評定的深圳市重點文化企業,同時為廣東省高科技產業商會常務理事單位,注冊資金人民幣1000萬元。公司的原創大型MMORPG網游《王者傳說2》為深圳市政府重點支持的網游項目,《王者傳說2》將全面領先于國內的同類產品,成為業界新標準的重要網游產品??! 《王者傳說2》已進入產品研發的重要階段。除《王者傳說2》,愛樂盟也已經啟動了數款全新大型網游…

    Linux干貨 2016-10-19
  • 16 文本處理工具

    文本處理工具一 一、雜項知識整理 1、ps axo user,ruser,cmd 查看命令發起者的身份和真正的登錄身份: [root@localhost test]# ps axo user,ruser,cmd USER     RUSER  &nb…

    Linux干貨 2016-08-05
  • python 10第二周博客作業

    1.取磁盤利用率:cut -d命令 df|tr –s? ‘ ’?? ‘%’ |cut –d “%” –f5正則表達式:df -h |grep “^/dev/sd” |grep -o “[[:digit:]]\+%”|grep -o “[[:digit:]]\+”2. paste 合并兩個…

    Linux干貨 2018-03-17
  • MAN手冊使用指南及快捷鍵鍵位整理

      MAN手冊使用指南及快捷鍵鍵位整理 Man mnual 手冊說明          基本使用:man 命令 Man一共可分為八個章節: man1,man2,man3,man4……man8 1:用戶命令 2:系統調用 3:C庫調用 4:設備文件及特殊文件 5:文件格式…

    Linux干貨 2016-10-18

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-09-10 08:27

    對網絡管理類命令總結的很詳細,如果能有一些效果展示會更直觀了,文章內容也會更加飽滿。

欧美性久久久久