Linux基本網絡配置和腳本編程中函數的應用

  linux的網絡屬性配置linux

一、  圖形界面配置編程

鍵入命令[root@server55 ~]# system-config-network-guivim


選中要修改的網卡雙擊或點擊edit對其ip地址、子網掩碼和默認網關進行編輯。bash

 

二、  基於字符的圖形界面服務器

鍵入命令[root@server55 ~]# system-config-network-tui網絡


其中兩個選項分別配置主機網卡信息和默認dns服器編輯器

 

三、  從配置文件中進行修改ide

配置文件目錄/etc/sysconfig/network-scripts/ifcfg-eth0函數

 

  1 # Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]字體

  2 DEVICE=eth0

  3 BOOTPROTO=static

  4 DHCPCLASS=

  5 HWADDR=00:0C:29:1E:74:BA

  6 ONBOOT=yes

  7 IPADDR=192.168.0.155

  8 NETMASK=255.255.255.0

  9 GATEWAY=192.168.0.254

10 USERCTL=no

  11 PEERDNS=no

 

使用vim編輯器進行網卡各項參數的修改

DEVICE=設備名稱

BOOTPROTO=設備啓用協議名稱{dhcp|static|boottp|none}

HWADDR=mac地址

ONBOOT=此設備隨系統啓動

IPADDR=ip地址

NETMASK=子網掩碼

GATEWAY=默認網關

USERCTL=是否容許全部用戶啓/禁用該設備

PEERDNS=是否贊成dhcp修改本機的dns服務器地址

 

使用 ifconfig eth0 ip地址/CIDR或子網掩碼 

將直接修改當前ip地址,但重啓後失效。

 

DNS配置:

dns配置文件:/etc/resolv.conf

 

  1 ; generated by /sbin/dhclient-script

  2 search example.com

  3 nameserver 192.168.0.254

search 當你輸入非徹底格式域名時,自動補全的內容

nameserver dns服務器的地址

 

主機名的修改

主機名配置文件/etc/sysconfig/network

  1 NETWORKING=yes

  2 NETWORKING_IPV6=yes

  3 HOSTNAME=server55.example.com

NETWORKING_IPV6=是否支持ipv6

HOSTNAME=在網絡中顯示的主機名

 

添加路由表

# route  [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]

其中:

add : 添加一條路由規則

del : 刪除一條路由規則

-net : 目的地址是一個網絡

-host : 目的地址是一個主機

target : 目的網絡或主機

netmask : 目的地址的網絡掩碼

gw : 路由數據包經過的網關

dev : 爲路由指定的網絡接口

 

 

注意:不論使用以上哪種方法修改主機的網絡配置,都必須從新啓動網絡配置或者禁用啓用網卡才能生效。

 

重啓網絡服務命令:

[root@server55 ~]# service network restart

禁用啓用網卡:

[root@server55 ~]# ifdown eth0 && ifup eth0

 

 

與腳本編程的知識補充:

建立臨時文件

mktemp 文件名

-d 生成目錄爲臨時文件屬性

mktemp 文件名+XXXX

生成文件將自動生成X格式的隨機數

 

case判斷

 

case 變量 in

條件1)

       語句

;;

條件2

語句

;;

.

.

.

*                                     #*表示除去上全部條件以外的全部狀況

語句

;;

esac

 

函數的用法

function 函數名{

函數體

}

 

在腳本中直接經過函數名調用。

 

下面是一個程序分別使用無函數、有函數和參數傳遞的三種寫法:

寫一個腳本:
1、提示用戶能夠輸入」mem"查看本機物理內存使用信息,"swap"顯示虛擬內存使用信息;
2、當用戶輸入mem時,獲取當前主機物理內存的大小,已經使用的空間及空閒空間大小;若是已用空間超出總空間的90%,則以紅色字體警告;不然,則以綠色字體顯示空間剩餘百分比;
3、當用戶輸入"swap"時,獲取當前主機虛擬內存的大小,已經使用的空間及空閒空間的大小;若是已用空間超出總空間的90%,則以紅色字體警告;不然,則以綠色字體顯示空間剩餘百分比;
4、其它信息則說明是錯誤輸入;

   
   
   
   
       
   
不使用函數:
1 #!/bin/bash
  2 #:Title:
  3 #:Synopsis:memory/swap test
  4 #:DateTime:2011-07-26 13:02:18
  5 #:Version:Unknow
  6 #:Author: redhat_hu
  7 #:Option:None
  8 read -p "input (m)mem/(s)swap to check mem/swap:" I
  9 case $I in
 10 'm')
 11         free -m | awk '/Mem:/{print "Memory:"$2"M"}'
 12         TOTAL=`free |awk '/Mem:/{print $2}' `
 13         USED=`free |awk '/Mem:/{print $3}' `
 14         PER=$[$USED*100/$TOTAL]
 15         if [ "$PER" -gt '90' ];then
 16                 echo -e "\033[31mwarnning:used is $PER % memory beyond 90% \033[0m"
 17         else
 18                 echo "used memory is $PER"
 19         fi
 20 ;;
 21 's')
 22         free -m | awk '/Swap:/{print "Swap:"$2"M"}'
 23         TOTAL=`free |awk '/Swap:/{print $2}' `
 24         USED=`free |awk '/Swap:/{print $3}' `
 25         PER=$[$USED*100/$TOTAL]
 26         if [ "$PER" -gt '90' ];then
 27                  echo -e "\033[31m warnning:used swap is $PER % beyond 90% \033[0m    "
 28         else
 29                 echo -e "\033[32m used Swap is $PER %\033[0m"
 30         fi
 31 ;;
 32 *)
 33 echo "error input!"
 34 ;;
 35 esac

   
   
   
   
       
   
使用函數:
1 #!/bin/bash
  2 #:Title:
  3 #:Synopsis:memory/swap test by function
  4 #:DateTime:2011-07-26 13:25:43
  5 #:Version:Unknow
  6 #:Author: redhat_hu
  7 #:Option:None
  8 
  9 function MEMORY {
 10          free -m | awk '/Mem:/{print "Memory:"$2"M"}'
 11          TOTAL=`free |awk '/Mem:/{print $2}' `
 12          USED=`free |awk '/Mem:/{print $3}' `
 13          PER=$[$USED*100/$TOTAL]
 14          if [ "$PER" -gt '90' ];then
 15                  echo -e "\033[31mwarnning:used is $PER % memory beyond 90% \033[0m"
 16          else
 17                  echo "used memory is $PER"
 18          fi
 19 }
 20 function SWAP {
 21          free -m | awk '/Swap:/{print "Swap:"$2"M"}'
 22          TOTAL=`free |awk '/Swap:/{print $2}' `
 23          USED=`free |awk '/Swap:/{print $3}' `
 24          PER=$[$USED*100/$TOTAL]
 25          if [ "$PER" -gt '90' ];then
 26                   echo -e "\033[31m warnning:used swap is $PER % beyond 90% \033[0m    "
 27          else
 28                   echo -e "\033[32m used Swap is $PER %\033[0m"
 29         fi
 30 }
 31 
 32 read -p "input to check m(memory)/s(swap):" A
 33 case $A in
 34 'm')
 35 MEMORY;;
 36 's')
 37 SWAP;;
38 *)
 39 echo "error input!"
 40 ;;
 41 esac

   
   
   
   
       
   
使用函數傳遞參數:
1 #!/bin/bash
  2 #:Title:
  3 #:Synopsis:memory/swap test by funtion deliver
  4 #:DateTime:2011-07-26 13:35:10
  5 #:Version:Unknow
  6 #:Author: redhat_hu
  7 #:Option:None
  8  function DELIVERY {
  9   case $1 in
 10   'm')
 11           free -m | awk '/Mem:/{print "Memory:"$2"M"}'
 12           TOTAL=`free |awk '/Mem:/{print $2}' `
 13           USED=`free |awk '/Mem:/{print $3}' `
 14           PER=$[$USED*100/$TOTAL]
 15           if [ "$PER" -gt '90' ];then
 16                   echo -e "\033[31mwarnning:used is $PER % memory beyond 90% \033[0m"
 17           else
 18                     echo "used memory is $PER"
 19           fi
 20   ;;
 21   's')
 22           free -m | awk '/Swap:/{print "Swap:"$2"M"}'
 23           TOTAL=`free |awk '/Swap:/{print $2}' `
 24           USED=`free |awk '/Swap:/{print $3}' `
 25           PER=$[$USED*100/$TOTAL]
 26           if [ "$PER" -gt '90' ];then
 27                    echo -e "\033[31m warnning:used swap is $PER % beyond 90% \033[0m    "
 28           else
 29                   echo -e "\033[32m used Swap is $PER %\033[0m"
 30           fi
 31   ;;
 32   *)
 33   echo "error input!"
 34   ;;
 35   esac
 36 }
 37 read -p "input (m)mem/(s)swap to check mem/swap:" D
38 DELIVERY $D
相關文章
相關標籤/搜索