适用场景:

  下载了一个smarthosts的hosts文件,但hosts文件过旧导致一些ip地址已失效无法访问网络。

脚本使用:

  ./hostsupdate # 直接从 /etc/hosts 中获得需要更新的域名

  ./hostsupdate /path/to/hosts # 从指定路径中获得需要更新的域名

脚本源码:

 #!/bin/bash -
#===============================================================================
#
# FILE: hostupdate
#
# USAGE: ./hostupdate
#
# DESCRIPTION: 实时更新自己电脑上的hosts,加速网络的访问。
#
# OPTIONS: ---
# REQUIREMENTS: ---
# BUGS: ---
# NOTES: ---
# AUTHOR: linkscue(scue),
# ORGANIZATION:
# CREATED: 2013年08月10日 22时58分48秒 HKT
# REVISION: ---
#=============================================================================== rm -f /tmp/host_new*
host_new=/tmp/host_new$$ # . 获取旧hosts文件来源
if [[ -f "$1" ]]; then
ref_host="$1" # 参考的host来源,建议smarthosts
else
ref_host=/etc/hosts # 默认从/etc/hosts上获取链接参考
fi touch $host_new && tail -f $host_new & # . 更新hosts
echo -e "\e[0;35m --> 开始更新hosts文件\e[0m" # purple
cat $ref_host | while read line; do
if [[ ${line::} == '#' ]] || [[ ${#line} == 0 ]] \
|| [[ $(echo $line | grep localhost) != "" ]] \
|| [[ $(echo $line | grep $HOSTNAME) != "" ]]; then
echo $line >> $host_new
else
addr=$(echo $line|awk '{print $2}')
link=$(nslookup "$addr" | sed '/^$/d' | sed -n '$p' | sed -n 's/Address: //gp')
if [[ "$link" != "" ]]; then
printf "%-19s%s\n" $link $addr >> $host_new
fi
fi
done # . 复制至 /etc/hosts
echo -en "\e[0;35m --> 更新hosts文件完毕,是否将新文件 $host_new 移动至 /etc/hosts[Y/n]:\e[0m" # purple
read -p "" reply
if [[ ${reply} != "n" ]]; then
sudo mv /etc/hosts{,.bak}
sudo cp $host_new /etc/hosts
fi
echo -e "\e[0;36m --> 全部操作完成,Enjoy!\e[0m" # cyan

hostupdate.sh

〖Linux〗实时更新 hosts 文件的脚本的更多相关文章

  1. shell小脚本--从laod博客更新hosts文件

    #!/bin/bash #-------------------------------------------- # name: change-hosts.sh #----------------- ...

  2. Linux下的hosts文件和network文件区别

    Linux下的hosts文件和network文件区别   Linux下有两种与计算机名相关的配置文件     1.hosts文件,路径:/etc/hosts,此文间是在网络上使用的, 用于解析计算机名 ...

  3. Linux 实时查看日志文件动态内容

    tailf 27.log | grep 'Classcomment/praise'               'Classcomment/praise' 接口名:查看请求固定接口的时间,实时 tai ...

  4. Linux中/etc/hosts文件总是被自动修改

    关闭NetworkManager服务即可. 临时关闭: service  NetworkManager stop 永久关闭: chkconfig NetworkManager off 在centos6 ...

  5. windows,linux里的hosts文件

    在解析主机名的IP地址时,会先访问本机的上hosts文件,这样先配置好就可以不通过DNS服务器就获得IP地址. linux vi /etc/hosts IP 空格  主机名 windows C:\Wi ...

  6. 修改hosts文件的脚本1.0

    import sys IP_input = input("Please input IP:")DNS_input = input("Please input Domain ...

  7. linux中编写同步文件的脚本

    搭集群最麻烦的就是修改配置文件,如果只用修改一个机器上的配置文件,然后用一个脚本就可以把配置文件同步到其他机器上,岂不快哉! 编写一个名为xsync的脚本文件: 作用: 将当前机器的文件,同步到集群所 ...

  8. linux中的hosts文件

    1.主机名: 无论在局域网还是INTERNET上,每台主机都有一个IP地址,是为了区分此台主机和彼台主机,也就是说IP地址就是主机的门牌号. 公网:IP地址不方便记忆,所以又有了域名.域名只是在公网( ...

  9. linux hosts文件详+mac主机名被莫名其妙修改

    1.名词解析 主机名: 无论是在局域网还是在INTERNET上,每台主机都有一个IP地址,用来区分当前是那一台机器(其实底层是使用机器的物理地址),也就是说IP地址就是一个主机的门牌号,唯一的标示这一 ...

随机推荐

  1. Just-In-Time Debugging in Visual Studio 禁止VS在服务器上调试

    To disable Just-In-Time debugging by editing the registry On the Start menu, search for and run rege ...

  2. 动态SQL(章节摘要)

    1,使用动态SQL能够在依赖对象不存在时创建子程序. 2.动态SQL主要利用EXECUTE IMMEDIATE语句运行DML,DDL,DCL等语句操作. 3,假设使用了绑定变量,则必须在EXECUTE ...

  3. hyper-v 用户无法再 创建外部配置存储 0x80070005

    windows server 2008R2 刚安装的hyper-v 重启过. 修改配置文件到d:\Hyper-V目录下, hyper-V 创建 服务器遇到错误 操作失败 创建外部配置存储:一般性拒绝访 ...

  4. 样条之EHMT插值函数

    核心代码: ////////////////////////////////////////////////////////////////////// // 埃特金插值 ////////////// ...

  5. maskrcnn_benchmark代码分析(3)

    数据结构 数据加载 数据后处理

  6. Linux上安装Hadoop集群(CentOS7+hadoop-2.8.0)

    1下载hadoop 2安装3个虚拟机并实现ssh免密码登录 2.1安装3个机器 2.2检查机器名称 2.3修改/etc/hosts文件 2.4 给3个机器生成秘钥文件 2.5 在hserver1上创建 ...

  7. SQL SERVER 的用户数,连接,连接池 license

    SQL SERVER 理论上有32767个逻辑连接,SQL SERVER根据系统自行调配连接池. 首先 ,操作系统的用户数:即同时通过网络连接到这台电脑上面的用户限制,以5用户操作系统,搭建的文件服务 ...

  8. 引用外部jquery.js

    使用 Google 的 CDN <head> <script type="text/javascript" src="http://ajax.googl ...

  9. Python3 比较两个图片是否类似或相同

    Python代码 #coding:utf8 import os from PIL import Image,ImageDraw,ImageFile import numpy import pytess ...

  10. 大数据开发实战:Hive优化实战2-大表join小表优化

    4.大表join小表优化 和join相关的优化主要分为mapjoin可以解决的优化(即大表join小表)和mapjoin无法解决的优化(即大表join大表),前者相对容易解决,后者较难,比较麻烦. 首 ...