免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 25346 | 回复: 14
打印 上一主题 下一主题

写了个Bash脚本,自动更新Mac OS X下的hosts文件,解决google经常上不去的问题 [复制链接]

论坛徽章:
0
1 [报告]
发表于 2011-12-24 15:09 |只看该作者










论坛徽章:
0
2 [报告]
发表于 2011-12-24 15:34 |只看该作者
这个要先顶,看后决定是否再顶:wink:

论坛徽章:
0
3 [报告]
发表于 2011-12-24 15:37 |只看该作者
楼主?? What was happened??

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Exiting with failure status due to previous errors

论坛徽章:
0
4 [报告]
发表于 2011-12-24 15:38 |只看该作者
本帖最后由 alixkanglu 于 2011-12-24 15:40 编辑
alixkanglu 发表于 2011-12-24 15:37
楼主?? What was happened??

gzip: stdin: not in gzip format


~/Desktop$ file updatehosts.tar.gz
updatehosts.tar.gz: bzip2 compressed data, block size = 900k

这个是什么格式地呢??

论坛徽章:
0
5 [报告]
发表于 2011-12-24 17:23 |只看该作者
alixkanglu 发表于 2011-12-24 15:38
~/Desktop$ file updatehosts.tar.gz
updatehosts.tar.gz: bzip2 compressed data, block size = 900 ...

tar xvfj updatehosts.tar.gz

用这个命令解压缩吧

我用bzip2压缩的,参数是tar cvfj,但是上传的时候不认扩展名,随手改成gz了。
sorry!

论坛徽章:
0
6 [报告]
发表于 2011-12-24 17:28 |只看该作者
我重新压缩上传了,你重新下载一下附件吧

论坛徽章:
0
7 [报告]
发表于 2011-12-25 12:23 |只看该作者
Jobs.AE@ 发表于 2011-12-24 17:28
我重新压缩上传了,你重新下载一下附件吧

谢谢。下载了,很好很强大。 建议楼主修改下脚本。
1. 备份功能不变;
2. 把原来的替换更改为追加;就是保留原来的,把这些追加到文件最后面

论坛徽章:
0
8 [报告]
发表于 2011-12-25 12:52 |只看该作者
本帖最后由 Jobs.AE@ 于 2011-12-25 20:34 编辑
alixkanglu 发表于 2011-12-25 12:23
谢谢。下载了,很好很强大。 建议楼主修改下脚本。
1. 备份功能不变;
2. 把原来的替换更改为追加;就是 ...


写得就是追加,如果你以前自己修改过hosts,你的内容都会被保留(只要你添加的时候的关键字和我用的不同,就不会被删掉)

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
9 [报告]
发表于 2011-12-29 10:54 |只看该作者
不影响功能啊, 只是改得简洁些。 楼主试试看。
  1. cat /etc/hosts | grep -v FUCK@GFW | grep -v MARK4 | grep -v ^$ > hosts.tmp
复制代码
改成:
  1. grep -E -v "FUCK@GFW|MARK4|^$" /etc/hosts > hosts.tmp
复制代码
  1. GOOGLE=`nslookup g.cn | grep Address | grep -v 192 | awk -F : '{print $2}' | grep -o "[^ ]\+\( \+[^ ]\+\)*"`
复制代码
改成
  1. GOOGLE=`nslookup g.cn |awk '!/192/&&/Address/{print $2}' `
复制代码
另外, 可以把大量的echo 部分另写到一个host.list文件里,这样的话,下次如果有变化的话,只需要该这个host.list 文件即可,无需再改脚本文件了。

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
10 [报告]
发表于 2011-12-29 10:58 |只看该作者
再给个建议啊。
  1. sudo cp /etc/hosts /etc/hosts.orig
复制代码
可以改成:
  1. sudo cp /etc/hosts /etc/hosts.orig.`date +%Y%m%d-%H%M%S`
复制代码
这样就不担心覆盖了原本的备份文件了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP