plink.exe使用key(私钥)方式登录ssh反射端口

有ssh的一个好处就是可以方便的配合Firefox的插件『Auto Proxy』跨墙,用plink.exe登录ssh反射到本地端口即可。之前都是通过用户名密码方式登录ssh,但为了安全起见前一阵已经屏蔽了ssh的用户名密码登录方式,仅开放了key方式登录。之前写的一些bat脚本就不可用了,而plink.exe也是支持私钥key方式登录ssh的。只是plink.exe不可以直接使用openssh的私钥,需要通过puttygen.exe做一下转换。转换方式:打开puttygen.exe并点击load加载openssh生成的私钥:直接点击Saveprivatekey另存为『ssh.ppk』使用方式:plink.exe-issh.ppk-C-D127.0.0.1:7070用户名@服务器IP-P端口-pw私钥密码

精彩继续

兼容IE的javascript跳转(可传递referer)

window.location方式跳转页面,会造成IE下跳转到的页面无法获取到跳转来源(referer)。stackoverflow中评论里贴出了一段代码是在页面的body中增加了一个a标签,然后通过javascript点击此a标签来解决ie的此问题,但俺觉着通过UserAgent来判断IE不是很靠谱(众所周知的国内各种加壳版本浏览器),正好记着以前看到过一个IE的特性就是.click是IE特有的一个属性。修改了下。stackoverflow的脚本就有了现在俺在用的这个版本:functiongoTo(url){vara=document.createElement("a");if(!a.click){//onlyIEhasthis(atthemoment);window.location=url;return;}a.setAttribute("href",url);a.style.disp...

精彩继续

Debian配置仅通过密钥方式登录ssh

最近VPS发现超级多扫描ssh用户名密码的动作,干脆彻底屏蔽ssh用户名密码方式登录,仅限制通过密钥登录。Debian系统设置:sed-i's/#PasswordAuthenticationyes/PasswordAuthenticationno/'/etc/ssh/sshd_configsed-is'/#PasswordAuthenticationyes/PasswordAuthenticationno/'/etc/ssh/ssh_config/etc/init.d/sshrestart务必保证已经可以通过密钥方式登录,否则就悲剧了!

精彩继续

图片预加载(jQuery插件)

本博客使用了mootools的一个lazyload图片效果的js脚本,但因为某些图片放在国外的free.fr免费空间里,国内访问并不是很顺畅,会出现图片加载比较慢的情况。虽然前两天简单写了一个『基于SAE的图床』,但博客里一些图片实在不想再去一个一个拿下来上传到SAE上去了。为了加快图片显示速度就想到了『图片预加载』这个概念,Google一圈以后找到一个很简单的jQuery版本,本来想转换成Mootools版本来使用,后来才想起来图片都是插入到文章里的,把文章中文件全部抽取出来还是要修改typecho本身代码,俺是个懒人…就放弃做此修改了。不过此版jQuery预加载图片插件还是很简单,也很不错的,之后自己写的一些小程序可以考虑图片预加载这一点,尤其现在的一些仿pinterest的图片比较多的站点可以考虑使用一下此脚本,预先加载一部分图片供页面快速显示。插件代码:(function($){v...

精彩继续

python版SAE图床

之前写过一篇『使用新浪SAE加速你的网站速度』中文件均是直接放在SAE目录中,如果文件比较多,上传就不是很方便,尤其图片(做图床的都懂的)。php版的图床应该已经有很多了,python版本的图床还不是很多,操刀简单写了一个简陋版。因为是图床,所以文件选择了存储在Storage中而不是像之前一样直接存储静态文件。前提:拥有一个python版SAE是必须的。俺用的框架是bottle,没有使用SAE默认的0.9.6,而是参考了『chinakr』同学的做法使用了0.11这个开发版,原因无他:俺是更新控。上传使用了swfupload而没有使用浏览器默认的上传文件方式。默认使用的Storage名称是images,可以在setting.py文件中修改代码下载地址:http://chairo.free.fr/down/images-upload.zip截图(图片已经是在SAE中了:),长的比较丑,还待美化...

精彩继续

网站多线程自动扒皮工具(python版)

做为一个程序猿工种来说,最头疼的就是做一个『美观、大方……』的页面了,前端同学一下午能出好几张页面,程序猿同学一下午也最多出半张页面,还是丑的不堪入目的半张。在论坛也经常看到有人说『xx站点皮肤不错,求皮肤或者求扒皮等』,正好俺前一阵有写一个简单的多线程采集数据的小脚本,就整理下写了个简单的扒皮工具。其实工具并非原创,新写的这个工具里好多代码是直接从『obmem』写的一个扒皮工具中直接copy过来的。重复造轮子只是想梳理一下代码,obmem的版本有近250行代码,俺的新版本只有不到200行,而且obmem兄弟的多线程是固定设置,俺的是根据需要下载的文件数量自动调整线程数量。文件数量比较多的时候还是线程多一些会速度快一些,不过不足的是线程太多容易被服务器判断成是cc攻击……直接放出代码地址:https://gist.github.com/2276690已知Bug:某些情况会出现乱码,但这个不...

精彩继续

VPS自动备份增强版

Burst的VPS频繁当机+硬件经常坏掉,和客服沟通要求换一个稳定主机无果,要求客服将剩余时间折价换成Burst新出的xen类型VPS得到答复是“No,I'msorrybutthat'snotpossible.”。为了为数不多的数据安全,除了第一时间转移可以转移的站点到其他VPS外,俺也只好加入每日备份的大军,翻了翻俺在myBaseDesktop中以前收集的来自军哥的一个自动备份脚本,但发现军哥的脚本并不是很完善,简单修改了一下用在了这个VPS上。主要修改点有:备份目录不存在时候自动创建压缩传输数据库备份以便节省时间&流量俺的修改版自动备份脚本地址:https://gist.github.com/2250313

精彩继续

使用python第三方框架requests多线程获取数据

以前一直使用python的urllib2来抓取页面采集内容,偶然发现python有一个非常好用的封装好的库requests可以省去很多事。具体安装和使用教程可以直接参考官方文档:http://au81.com/KhfDe7。简单的写了一个通过requests多线程获取页面数据的代码。不贴所有代码了,代码下载:https://gist.github.com/2215568如图:

精彩继续

Twitter BootStrap v2 IE6.0兼容扩展

TwitterBootStrapv2这个框架并不支持IE6.0,虽然这是一个好习惯,但在IE6.0依然占据半壁以上江山,并且大老板们都在要求所有浏览器都支持的中国完全不支持IE6是不太现实的一件事。作为一个不懂设计没有美感的程序员来说,BootStrap这么一个好东西不支持中国大多数的浏览器是一件比较悲催的事,幸好有人专门写了BootStrap的IE6.0的插件。插件项目地址在github上。使用说明:在head标签中增加<!--[ifIE6]><linkhref="ie6.min.css"rel="stylesheet><![endif]-->在body结束前增加js脚本$(function(){if($.browser.msie&&parseInt($.browser.version,10)===6){$('.rowdiv[class...

精彩继续

Python的staticmethod和classmethod装饰器用法、区别

Python的staticmethod和classmethod装饰器会迷惑一些人,有的人总会纠结什么时候用怎么用。俺写了个简单的例子,很清楚就能看出来这几种方法的区别。什么时候用怎么用就不用再多说了吧。#-*-coding:utf-8-*-classA(object):deffoo(self,x):print"executingfoo(%s,%s)"%(self,x)@classmethoddefclass_foo(cls,x):print"executingclass_foo(%s,%s)"%(cls,x)cls().foo(x)@staticmethoddefstatic_foo(x):print"executingstatic_foo(%s)"%xa=A()a.foo(1)print'1'a.class_foo(1)print'2'A.class_foo(1)print'3'a.st...

精彩继续