求脚本
我在使用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。 自己试写一下。 我这方面的知识一点都没有啊。。。
#!/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]