Shell脚本自动更新hosts实现免翻墙访问google

上次给大家发了一个python更新google hosts的脚本,今天看到有人发出了一句用shell来获取google hosts的脚本,我就拿来稍微简单加工了下,下面给大家shell版的更新google hosts的脚本。

脚本内容:

复制代码 代码如下:

cat google_update.sh
#!/bin/bash
data=`date +%y%m%d%H%M`
curl http://www.360kb.com/kb/2_122.html 2>/dev/null | sed -n '/#google-hosts-2015/,/#google-hosts-2015-end/{s/ //g; s/<.*>//g; p}' >/tmp/hosts
cp /etc/hosts /etc/hosts_$data.bak
mv /tmp/hosts /etc/hosts
cat>>/etc/hosts<<EOF
127.0.0.1        testbak localhost.localdomain localhost
::1        localhost6.localdomain6 localhost6
EOF

也一样丢到crontab里,每隔3天更新一次

复制代码 代码如下:

0 0 */3 * * /bin/sh /root/soft_shell/google_update.sh

时间: 2015-02-09

ruby实现修改ubuntu下的hosts

在Windows下面,我们修改hosts文件都知道在哪里,但是在ubuntu系统中呢,还有其它的系统,比如安卓手机,或许就没那么多的小软件可供你简单的修改了,我们自己来写个吧 #!/usr/bin/ruby #coding=utf-8 require 'open-uri' url= "http ://raw.github usercontent.com/vokins/simpleu/master/hosts" begin open("/etc/hosts",&quo

vista hosts修改问题解决

在WindowsVista中修改Hosts文件或Lmhosts文件时,有可能会发生两种错误. 错误消息 1 拒绝访问 C:\Windows\System32\drivers\etc\ hosts 错误消息 2 不能创建文件 C:\Windows\System32\drivers\etc\hosts. 请确认路径和文件名是否正确. 即使使用拥有管理凭据的帐户登录,也会出现此问题. 替代方法 要解决此问题,请按照下列步骤操作: 1.单击"开始",单击"所有程序",单击&

使用批处理bat更改hosts的多个方法

什么是Hosts: Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联"数据库",当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统再会将网址提交DNS域名解析服务器进行IP地址的解析. Hosts文件的具体作用: 现在来看一下Hosts文件的工作方式以及它在具体使用中起哪些作用. 1.加快域名解析 对于要经常访问的网

Apache NameVirtualHost *:80 has no VirtualHosts问题解决办法

当启动apache的时候,如果事件管理器出现"Apache NameVirtualHost *:80 has no VirtualHosts"错误时,大部分是因为修改了apache的httpd.conf配置文件,将extra/vhosts.conf文件引入到httpd.conf中了. 复制代码 代码如下: # Virtual hosts Include conf/extra/httpd-vhosts.conf httpd-vhosts.conf文件中有一句配置语句为 复制代码 代码如下

Python import自定义模块方法

python包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的路径. 下面将具体介绍几种常用情况: (1)主程序与模块程序在同一目录下: 如下面程序结构: `-- src |-- mod1.py `-- test1.py 若在程序test1.py中导入模块mod1, 则直接使用import mod1或from mod1 import *; (2)主程序所在目录是模块所在目录的父(或祖辈)目录 如下面程序结构: `-- src |-- mod1.py |-- mod

使用批处理删除HOSTS中特定内容的行的代码

Q:用bat批处理来删除或者修改hosts中指定的条目,例如对于127.0.0.1 localhosts,能否把hosts里面带有local的记录全都删掉或者改掉? A: 复制代码 代码如下: cd /d %windir%\system32\drivers\etc  rem 先删除hosts.bak防止重命名失败  del hosts.bak  ren hosts hosts.bak  for /f "eol=# tokens=1,2" %%i in (hosts.bak) do ca

利用 bat 文件制作 HOSTS 快速切换器

切换 HOSTS 文件的困扰 学校里的 IPV6 免费上,而 IPV6 下是不用翻墙的,但是有但是 IPV6 下,有一些网站虽然有 IPV6 的 IP 但是却没有域名- 所以也只能通过修改 HOSTS 文件来访问. 另外在 IPV4 下,Google 的许多服务都需要通过修改 HOSTS 文件后才能正常访问- 所以,在平时每天需要切换好几次 HOSTS 文件. 那有什么办法可以简化这个操作? HOSTS 切换软件 上网搜索了很多软件,但是都不是很好用,甚至都有冲动自己做一个了. 设计的逻辑基本上

批处理利用HOSTS文件(屏蔽,加速)网站的代码

复制代码 代码如下: @echo off&setlocal&cls echo/&echo\&echo=&echo]&echo[&echo+ :start set/p a=选择模式(1:屏蔽网站 2:加速访问 3:删除被屏蔽的网站 4:退出): if not defined a goto start if %a% equ 1 (echo/&goto a) if %a% equ 2 (echo/&goto b) if %a% equ 3

Powershell小技巧之编辑Hosts文件

某段时间你可能需要经常去更改hosts文件,硬编码一些dns.你得先找到这个文件,然后鼠标右键选择记事本,打开它.可是当保存时才发现,保存不了,原来需要管理员权限.此时你可以先把它保存到桌面,然后再拷贝回原来的位置,这样稍显麻烦. 另外改完hosts文件,是为了更新dns,此时通常都会伴随一个flush DNS的操作.既然要自动化,那就一起做了算了. 把下面的脚本添加到你的PowerShell Profile文件中,下次直接在PowerShel控制台中键入Edit-Hosts 或者 eh就可以打

PowerShell小技巧之使用Verb打开程序

假设你经常需要编辑自己的"hosts"文件,这时你也许会手动在记事本中打开它.这个文件只允管理员成员编辑,普通的实例还无法操作. 这段代码它能让你很容易调整权限打开所有程序. function Show-HostsFile { $Path="$env:windir\system32\drivers\etc\hosts" Start-Process -FilePath notepad -ArgumentList $Path -Verb runas } 支持所有PS版本

Powershell小技巧之轻松从网上下载文件

支持所有PS版本 在PS中可以轻松的从网上下载文件.这里有一段代码下载PS说明书(这是一个珍贵并丰富的Powershell文档)自动到你的电脑. 复制代码 代码如下: $link = 'http://download.microsoft.com/download/3/2/6/326DF7A1-EE5B-491B-9130-F9AA9C23C29A/PowerShell%202%200%20Language%20Specification.docx' $outfile = "$env:temp\l

Powershell小技巧之从文件获取系统日志

有时你可能会需要分析系统文件将他们传输到硬盘,或你想直接从"evtx"读取系统日志. 你可以这样做: 复制代码 代码如下: $path = "$env:windir\System32\Winevt\Logs\Setup.evtx" Get-WinEvent -Path $path 另附上一段获取系统日志的代码 复制代码 代码如下: $StartTime = (get-date).Date + (new-timespan -Hours 6 -Minutes 35) $

Powershell小技巧之使用Get-ChildItem得到指定扩展名文件

当你使用Get-ChildItem获取输出文件列表时,你可能会发现即使用了-Filter参数也会比你预期的结果要多得多. 这里有一个例子,它不仅返回.ps1扩展名文件同时也返回.ps1xml扩展名文件: Get-ChildItem -Path C:\windows -Recurse -ErrorAction SilentlyContinue -Filter *.ps1 为了限制结果集只是你设置后的扩展名,可以添加一个命令的过滤器,以完善的结果: Get-ChildItem -Path C:\wi

Powershell小技巧--将文件夹中的大文件分成若干份

朋友有一文件夹,全部是EML文件,约20G.他需要把这20G文件按每个文件夹2G分成10个.于是乎写了以下脚本: #目标文件夹 $scrfile = "d:\test" #起始目录名 $directory = 0 #1825361100 #76547428 #判断当目录的文件数大于0时while循环为真 while( (dir -Path $scrfile -Filter *.eml ).count -gt 0) { #起始目录名为1 $directory++ #建立目录 New-It

Powershell小技巧之查询AD用户

假若你登录到了一个AD中你可以轻松的查询AD目录.在先前的技巧中我们阐述了一个基本脚本.这里有一个可以自定义根目录的扩展方法(设置你的查询点),它支持同步查询(而不是递归到一个容器). 它同时也阐述了怎么从一个活动目录查找结果再将其转化成用户对象: $SAMAccountName = 'tobias' $SearchRoot = 'LDAP://OU=customer,DC=company,DC=com' $SearchScope = 'OneLevel' $ldap = "(&(obj

PowerShell小技巧之实现文件下载(类wget)

对Linux熟悉的读者可能会对Linux通过wget下载文件有印象,这个工具功能很强大,在.NET环境下提到下载文件大多数人熟悉的是通过System.Net.WebClient进行下载,这个程序集能实现下载的功能,但是有缺陷,如果碰上类似于-/scripts/?dl=417这类的下载链接将无法正确识别文件名,下载的文件通常会被命名为dl=417这样古怪的名字,其实对应的文件名是在访问这个链接返回结果的HTTP头中包含的.事实上微软也提供了避免这些缺陷的程序集System.Net.HttpWebR

Powershell小技巧之获取注册表值的类型

当你不需要获取注册表数据类型而只要其值是非常简单的:你可以使用Get-ItemProperty: 复制代码 代码如下: Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 如果你需要获取数据类型,只需要多几个步骤: 复制代码 代码如下: $key = Get-Item -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run $key.Get

Powershell小技巧之获取MAC地址

在Powershell中获取MAC地址不是很难.这里就有一种方法: 复制代码 代码如下: PS> getmac /FO CSV | ConvertFrom-Csv Physical Address                        Transport Name                         ----------------                        --------------                         5C-51-4F-6