Linux學習(七)- 網絡管理

路由表:由多條路由記錄組成

     網關:目標網絡和當前路由器(當前主機)智聯,網關IP=接口IP,不直連,網關IP=下一個路由器的臨近接口IP


目標網絡IDnetmask接口 網關 
192.168.1.3255.255.255.0eth3
主機路由
192.168.1.0255.255.255.0eth0192.168.1.254網絡路由
192.168.0.0255.255.0.0eth1192.168.2.254網絡路由
0.0.0.00.0.0.0eth2192.168.3.254默認路由


DHCP:動態主機配置協議DHCP

        dhcp discover :由客戶端發送廣播,請求IP地址

        dhcp offer:有dhcp服務器發送廣播,告知全網絡我選擇了誰向我提供IP地址

        dhcp ack:有指定的dhcp服務器向客戶端提供信息

網絡配置

     CentOs6中修改網卡名稱方法

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

將其中對應要修改的網卡最後的NAME=改爲所需要的名稱,相匹配的網關

2.ethtool -i 網卡名          查看驅動模塊名(不必要)

3.modprobe -r e1000  卸載模塊

4.modprobe e1000     重新加載模塊

5.在/etc/sysconfig/network-scripts目錄中將原網卡的配置文件改文件名,使其格式爲ifcfg-網卡名

沒有文件就複製一個,然後改好名字

6.修改上述配置文件,將其中的DEVICE=改爲網卡名

   DEVICE

   ONBOOT 網絡服務啓動時是否自動啓用該網卡

   MN_CONTROLLDE

   BOOTPROTO=static(手動配置) 或  dhcp(自動獲取)

   HWADDR 網卡地址

   若沒有BOOTPROTO,需有IPADDR、NETMASK

7. service network restart (重新啓動網絡)

     配置網絡接口

ifconfig (立即生效)  顯示所有已激活的網卡信息

ifconfig 網卡名           查看指定網卡信息

ifconfig -a                   顯示所有網卡信息,無論是否激活

ifconfig 網卡名 up/down   激活/禁用指定網卡

     路由管理命令

route    顯示default,網關解析成域名

route -n     網關爲IP地址

route add -net(一個網段)|-host(IP地址) gw  增加一個地址

route del   刪除

      修改主機名

centos6及之前: 

   重啓後有效:vim /etc/sysconfig/network

   當前有效:hostname xxxx.com

centos7:

   重啓後有效:vim /etc/hostname

   當前有效:hostname xxxx.com

   當前和重啓均有效:hostnamectl set-hostname xxx.com

查看系統信息  hostnamectl status 

     修改網卡字符工具

    centos6:system-config-network

    centos7:nmtui

網絡配置文件

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

DEVICE:此配置文件應用到的設備

        HWADDR:對應的設備的MAC地址

        BOOTPROTO:激活此設備時使用的地址配置協議,常用的dhcp, static, none, bootp

        NM_CONTROLLED: NM是NetworkManager的簡寫,此網卡是否接受NM控制;建議CentOS6爲“no”

        ONBOOT:在系統引導時是否激活此設備

        TYPE:接口類型;常見有的Ethernet, Bridge

        UUID:設備的惟一標識

        IPADDR:指明IP地址

        NETMASK:子網掩碼

        GATEWAY: 默認網關

        DNS1:第一個DNS服務器指向

        DNS2:第二個DNS服務器指向

        USERCTL:普通用戶是否可控制此設備

        PEERDNS:如果BOOTPROTO的值爲“dhcp”,是否允許dhcp server分配的dns服務器指向信息直接覆蓋至/etc/resolv.conf文件中

bond綁定

        bond:將多塊網卡綁定同一個IP地址對外提供服務,通過bonding虛擬一塊網卡,不是直接設置同一個IP地址

        工作模式  

bond0  按順序從屬接口

bond1  只有一個從屬接口被激活

bond3  所有的從屬接口傳送數據包(廣播效果,發一個包迴應倆個包)

        bond 配置

    cd /etc/sysconfig/network-scripts/(bonding設備的配置文件)

            vim ifcfg-bond0 

DEVICE=bond0

BONDING_OPTS="mode=1 miimon=100

                        (miimon 是用來進行鏈路監測的。如果miimon=100,那麼系統每100ms 監測一次鏈路連接狀態,如果有一條線路不通就轉入另一條線路)

IPADDR=192.168.25.100

PREFIX=24

            vim ifcfg-eth3

DEVICE=eth3

MASTER=bond0

SLAVE=yes

     vim ifcfg-eth4

DEVICE=eth4

MASTER=bond0

SLAVE=yes

      /etc/init.d/NetworkManager stop

       /etc/init.d/network restart

      cat /proc/net/bonding/bond0  查看bond0狀態

      cat /sys/class/net/bond0/bonding/mode  查看bond0模式

        刪除bond0

      ifconfig bond0 down 

      rmmod bonding 


CentOs7中不能補全命令,安裝bash-completion


ping

        ping x.x.x.x  檢測主機是否在線

        ping -c1  只ping一個包

        ping -W1  錯誤後僅重試1s

        ping -s 60000  一個包大小

        ping -f  不顯示ping的結果

lftp

        lftp -o  下載到指定目錄

               put  上傳

        lftpget 下載命令

wget

        wget 

            -P  指定下載目錄,默認下載到運行程序的當前目錄 

            -O  指定文件名,默認與原文件名一致

            - -limit-rate= XX(M,K,G)  指定傳輸速率 

            -c  中斷的下載可以斷點續傳,如不加-c,將重新下載

            -q  靜默下載

links 

            --dump 只看文字 

            --source 看源碼 

ps  

        ps:查看進程信息(process state)  Linux系統各進程的相關信息均保持在/proc/PID目錄下,支持三種選項  UNIX BSD GNU

        BSD方式  

            a 所有用戶在所有終端上運行的前臺進程 

            x 當前用戶運行的所有進程(包括前臺進程和後臺daemon)

            ax 所有用戶運行的所有進程

            aux 所有用戶運行的所有進程,結果中顯示用戶名

            f 顯示父子進程關係

            -C 用進程名進行過濾

            axo配合

            o 自定義輸出列

        %cpu   %mem    pid    uid   gid   cmd   comm   tty(顯示終端名,如爲?,表示daemon後臺進程)    ruser(命令的發起人)    euser(命令的真正執行人)   state

            k 排序或--sort

            VSZ:虛擬內存集,線性內存 表示操作系統承諾內存集

            RSS:常駐內存集  實際分配內存

        UNIX方式

    -e 顯示所有進程

    -f 顯示完整格式

    -ef 以完整格式顯示所有進程 

    -eF 以更完整格式顯示所有進程

    -efH 顯示父子進程關係

    -eo 自定義顯示結果,如下

                    %cpu,%mem,pid,nice,pri,stat,comm 

        nice值

    -20~19      數字越小,優先級越高

    renice -n # (-20~19) pid

    nice -n #(-20~19) -# command

        查看nice值方式 

     ps axo ni[ce]

pgrep 

        pgrep 按預定義的模式

     -u  UID/USERNAME 基於執行程序的用戶名進行搜索

     -l   顯示的結果中增加進程名

     -t   終端名

     -P  查看子進程

pidof 

        進程名   查詢對應進程名的PID

uptime 

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

vmstat  監控優化命令

        vmstat各項含義

 

procs
memoryswapio(硬盤)systemcpu
r(running):可運行(正運行或等待運行)的進程個數swpd:當前虛擬內存的已使用空間si:表示內存從swap讀入的總量bi:表示內存從硬盤讀入的總量in(interrupts):每秒中斷的速率us(user):用戶空間時間
b(blocked):處於不可中斷睡眠狀態的進程個數free:物理內存的剩餘空間,直至不夠用時,纔會使用虛擬內存so:表示從內存寫出到swap的總量bo:表示從內存寫出到硬盤的總量cs(context swith):進程切換速率sy(system):內核空間,系統空間

buffer:用於buffer的內存總量

(buffer 緩衝,平衡速度)




id(ldle):空閒時間

cache:用於cache的內存總量

(cache 快取,一段一段存,減緩速度不匹配)




wa(wait):等待時間





st(stolen):被虛擬機偷走的時間


  vmstat -s 詳細查看內存信息

dstat 

        系統資源統計  替代 vmstat iostat(統計cpu和設備io信息)

        -c: 顯示cpu相關信息

            -C #,#,...,total

        -d: 顯示disk(磁盤讀寫狀態)相關信息

            -D total,sda,sdb,...

        -g:顯示page相關統計數據

        -m: 顯示memory(內存狀態)相關統計數據

        -n: 顯示network相關統計數據

        -p: 顯示process相關統計數據

        -r: 顯示io請求相關的統計數據

        -s: 顯示swapped相關的統計數據  

        --tcp

        --udp

        --unix

        --raw

        --socket

        --ipc

        --top-cpu:顯示最佔用CPU的進程

        --top-io: 顯示最佔用io的進程

        --top-mem: 顯示最佔用內存的進程

        --top-latency: 顯示延遲最大的進

pmap  

        進程對應的內存映射

         pmap pid

         pmap -x pid(內容更多)


ls -l /proc/40052/fd |wc -l

通過查看進程文件描述符的數量是否增長來判斷是否有內存泄露的問題


kill 

        查看信號,進程號

       -0 無作爲,可以用來單純判斷進程是否運行.

       -1 強制進程重讀配置文件

       -2 中止正在運行的進程;相當於Ctrl+c

       -3  相當於ctrl+\

       -9 強制殺死正在運行的進程

       -15 終止正在運行的進程 (默認)\

killall 按進程名稱查看

pidof 查詢進程號

pstree  樹狀形展示進程

pkill  

        是根據名稱或其他屬性來查詢進程或給進程發信號的

        -u 用戶名  殺死指定用戶所運行的所有進程 

        pkill -t pts/1  殺死指定終端上運行的所有進程 

進程的前後臺   之前在講腳本的文章裏提到過

        ctrl+z 將運行在前臺的進程暫停  或 kill -19 PID

        bg 將在當前終端上暫停的進程,放入後臺繼續運行  或kill -18 PID

        fg 將在當前終端上暫停的或在當前終端上後臺運行的進行,放入前臺繼續運行

使進程不再依附於終端在後臺運行

        nohup command &> /dev/null

        screen; command (可以切回前臺)

        (command&)

jobs 查看當前終端所有作業

並行運行多條命令

    三種方法

             1. vim all.sh    只能是腳本

                sh1&

                sh2&

                shn&

             2.(sh1&);(sh2&)        這倆個可以腳本也可以是命令

             3.{sh1&sh2&sh3}

計劃任務

      at 選項 時間

          at -l = atq  列出等待進行的任務

          at -c  查看指定序號任務的詳細信息

          at -v 顯示版本號

          at -d = atrm 刪除

  at 時間 -f 文件   寫入文件

          at -m 無輸出的命令也給root發郵件    看命令執行

                   有輸出的命令自動發郵件

      配置at的方式

            1.  at   指定的時間

               需要做的任務內容

                       ctrl + d 退出保存

            2.  使用管道方式定製

                  echo   |at 時間

            3.  at   << EOF

                        輸入所需要完成的任務內容

                 >>EOF

        at 時間 指定任務進行時間

              at 10:00 2018-04-01

         依賴於atd服務  需開啓

            systemctl start atd

        /etc/at.deny  限制at配置計劃任務

當僅/etc/at.deny 存在時(默認)寫入deny的用戶不能配置

當/etc/at.allow存在時/etc/at.deny失效,只有寫在allow中的用戶才能配置at

當/etc/at.allow及/etc/at.deny都不存在時,僅有root才能配置at

        crontab  週期性的計劃任務(系統級)

        /etc/crontab    文件制定,多項以逗號間隔

        crontab 命令 

                -l  列出等待進行的任務

                -e  編輯

                -r  刪除任務的有關文件所有  

                -i -r, 刪除時詢問

-u 編輯用戶


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章