【发布时间】:2014-07-27 06:10:46
【问题描述】:
我有一个 shell 脚本来更改 IP 地址(在 CentOS 上),而不是手动更改它。这是脚本:
#!/bin/bash
# changeip.sh
usage(){
clear
echo "Usage: $0 newip"
echo "Example: $0 127.0.0.1"
exit 1
}
new_ip_value=$1
local_ip_value=$(ifconfig eth0|awk '/inet addr/ {split ($2,A,":"); print A[2]}')
# call usage() function if filename not supplied
[[ $# -eq 0 ]] && usage
echo "/etc/hosts"
echo "----------------------------------------------------------"
sed -ie 's/'$local_ip_value'/'$new_ip_value'/g' /etc/hosts
sed 's/'$local_ip_value'/'$new_ip_value'/g' /etc/hosts
echo ""
echo "/etc/sysconfig/network-scripts/ifcfg-eth0"
echo "----------------------------------------------------------"
sed -ie 's/'$local_ip_value'/'$new_ip_value'/' /etc/sysconfig/network-scripts/ifcfg-eth0
sed 's/'$local_ip_value'/'$new_ip_value'/' /etc/sysconfig/network-scripts/ifcfg-eth0
echo "The IP of $local_ip_value has successfully been changed to $new_ip_value."
service network restart
exit
我需要添加更多参数,例如:
- BOOTPROTO
- 开机
- 网关
- DNS1
等等。
任何人都可以让我知道我应该如何修改脚本以添加这些细节吗?我的 ifcfg-eth0 最终应该是这样的:
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO=none
NM_CONTROLLED="yes"
ONBOOT=yes
TYPE="Ethernet"
IPADDR=192.168.1.2
GATEWAY=192.168.1.1
感谢任何帮助!
谢谢!
【问题讨论】:
标签: bash shell networking centos