mdl56 发表于 2006-1-5 16:01:13

求脚本

我在使用Mercury这个软件,需要把

83.82.146.62 dstorm.mine.nu

这一行加入到/etc/hosts文件里。

但是这个IP地址是会变的,当Mercury不能连接的时候,需要Ping一下dstorm.mine.nu,得到IP后再把这个IP替换/etc/hosts文件里的IP。

我想要一个脚本,只要运行了就可以Pingdstorm.mine.nu,得到IP后写入/etc/hosts替换原来的IP。

zhy2111314 发表于 2006-1-6 08:52:42

自己试写一下。

mdl56 发表于 2006-1-6 11:25:07

我这方面的知识一点都没有啊。。。

co63 发表于 2006-1-6 22:49:05


#!/bin/bash

ADDRESS="dstorm.mine.nu"
[ -n $1 ] && ADDRESS=$1

#Ping ...
echo "Ping $ADDRESS..."
RET="`ping -c 1 $ADDRESS`"

[ -n "`echo $RET | grep '0 received'`" ] && echo "0 received" && exit

#Get IP...
IP="`echo $RET | grep 'PING' | awk '{print $3}' | cut -d '(' -f 2 | cut -d ')' -f 1`"
[ -z $IP ] && echo "Get Nothing..." && exit

#Replace...
echo "$IP   $ADDRESS"
if [ -n "`grep \"$ADDRESS$\" /etc/hosts`" ]; then
    sed -i "s/.*$ADDRESS$/$IP   $ADDRESS/g" /etc/hosts
else
    echo "$IP   $ADDRESS">>/etc/hosts
fi


脚本的第一个参数可以是要获取ip的域名
通过从ping回的数据中提取出ip地址,然后在/etc/hosts中替换。

写得很乱,有些地方也很繁琐。
就当是抛砖引玉,
如果谁有好的代码,不妨贴出来。
页: [1]
查看完整版本: 求脚本