shell脚本更新或者添加host,并且增加hostname映射到hosts


shell脚本更新或者添加host,并且增加hostname映射到hosts
 
有些服务需要在hosts中映射hostname 和 127.0.0.1 ,例如sudo ,新增方法updateHostName
 
脚本可以根据传入的参数进行对 /etc/hosts 更改或者添加host
 
例如执行 sudo ./changeHost.sh blog.duplicatedcode.com 192.168.1.222
 
域名是固定的,外网ip不断变化
 
# !/bin/sh 
in_ip=${1} 
in_url=${2} 
local_ip="127.0.0.1"
 
#更改host 
updateHost() 
# read 
  inner_host=`cat /etc/hosts | grep ${in_url} | awk '{print $1}'` 
  if [ ${inner_host} = ${in_ip} ];then 
     echo "${inner_host}  ${in_url} ok" 
  else 
     if [ ${inner_host} != "" ];then 
        echo  " change is ok "
 
      else 
         inner_ip_map="${in_ip} ${in_url}" 
         echo ${inner_ip_map} >> /etc/hosts 
         if [ $? = 0 ]; then 
           echo "${inner_ip_map} to hosts success host is `cat /etc/hosts`" 
         fi 
         echo "shuld appand " 
     fi 
  fi 
#  hostName 
updateHostName() 
inner_hostName=`hostname` 
inner_local_ip=${local_ip} 
inner_host_count=`cat /etc/hosts | grep ${inner_hostName} | awk '{print $1}' |grep -c ${local_ip}` 
inner_host=`cat /etc/hosts | grep ${inner_hostName} | awk '{print $1}'` 
if [ ${inner_host_count} != 0 ]; then 
     return 
fi 
if [ ${inner_host} = ${inner_local_ip} ];then 
   echo "127.0.0.1 ${inner_hostName} already add " 
else 
   if [ ${inner_host}="" ]; then 
     inner_ip_map="${inner_local_ip} ${inner_hostName}" 
     echo ${inner_ip_map} >> /etc/hosts 
     if [ $?=0 ];then 
        echo " ${inner_ip_map} to add hosts success `cat /etc/hosts`" 
     fi 
   fi 
fi 
}
 
main() 
   updateHost 
   updateHostName 
main
 

相关内容

    暂无相关文章