Linux基本网络配置和脚本编程中函数的应用

时间:2021-01-16 04:45:11

  linux的网络属性配置

1、  图形界面配置

键入命令[root@server55 ~]# system-config-network-gui


Linux基本网络配置和脚本编程中函数的应用

选中要修改的网卡双击或点击edit对其ip地址、子网掩码和默认网关进行编辑。

 

2、  基于字符的图形界面

键入命令[root@server55 ~]# system-config-network-tui


Linux基本网络配置和脚本编程中函数的应用

其中两个选项分别配置主机网卡信息和默认dns服器

 

3、  从配置文件中进行修改

配置文件目录/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

   
  
  

 


   
  
  

 

 

本文出自 “ 远 �r ” 博客,请务必保留此出处http://evolution.blog.51cto.com/3343305/624091