求脚本

求脚本

我在使用Mercury这个软件,需要把
引用:
83.82.146.62 dstorm.mine.nu
这一行加入到/etc/hosts文件里。

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

我想要一个脚本,只要运行了就可以Ping  dstorm.mine.nu,得到IP后写入/etc/hosts替换原来的IP。[/quote]
自己试写一下。
我这方面的知识一点都没有啊。。。
[code:1]
#!/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
[/code:1]

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

写得很乱,有些地方也很繁琐。
就当是抛砖引玉,
如果谁有好的代码,不妨贴出来。