2010年1月

pexpect的setwinsize

之前,写过一篇“Ubuntu下使用pexpect自动ssh和scp


使用pexpect一切运行很好


但是当你ssh到远端server后,如果输入的某个命令过长


它没有自动折行,仍然是在同一行,会把之前的字符给覆盖掉


上网google解决方案,没有搜到有用的信息,郁闷了好多天...


今天,查看pexpect的API手册,发现了里面一个这样的函数setwinsize


很怀疑是它造成的问题,查看了pexpect的源码,里面有这么一行:


self.setwinsize(24,80)


又查看了一下它自动覆盖的字符的长度,果然是80个字符


而在我的显示器上,80个字符并没有到达term的最大宽度


于是,在调用interact之前,根据自己的term大小重新设置一下参数:


p.setwinsize(25,96)


再运行程序,就ok了

昕昕如何喝酸奶

 自从开始给昕昕喝牛奶、酸奶之类的奶饮料,他就对这些奶制品一直“情有独钟”


以下是他喝酸奶的步骤:



  1. 插入吸管,开始吸取,直到吸不出来为止

  2. 自己或找爸妈撕开酸奶的盖,用舌头舔上面的奶,舔干净为止

  3. 自己用吸管开始一点一点的刮奶瓶壁上的奶,然后送入嘴中

  4. 一瓶终于喝完了,不情愿的扔到垃圾桶中,继续再喝另外一瓶......


看了上面的过程,不知道的人还以为他爸妈一直虐待他呢,怎么那么馋呢?呵呵


实际上,从小开始,再他身上花钱,我们基本上是不吝啬的


像玩具、书本、奶粉、牛奶这些,一直都供应充足的


但这小子,似乎天生食欲就很强,几乎什么都能吃,什么牌子的奶粉、牛奶都能喝


对于酸奶,更是如此,一次非得喝上2瓶,才能满足......


 

git中配置autocrlf来正确处理crlf

在使用git的过程中,如果我们的项目是跨平台开发的


那么CRLF的处理也许会成为一个很头疼的事情,有可能会出以下的莫名其妙的问题:


我们的某个开发人员在linux上提交的一个文件


当从windows上pull下来后,没做任何的修改,查看其status,它的状态已经是modifed了


即使你使用git checkout -f来恢复改文件,它的状态仍然是modified,真是郁闷...


后来,才发现就是CRLF惹的祸


 


我们都知道,在Windows上是CRLF来作为一行的结束符,而Linux上则是LF作为行结束符


在git中提供了autocrlf的设置,可以用来自动转换CRLF,它可以设置成true,false,input


Windows上的msysgit默认设置了autocrlf为true


这样,在提交时自动地把行结束符CRLF转换成LF,而在签出代码时把LF转换成CRLF


这样保证了从windows平台上提交的代码,都是以LF作为行结束符


在linux平台上,git默认设置autocrlf为false,也即它不会自动处理CRLF


这样就有一个问题,如果我们把windows上的一个文件给上传到linux上,并提交


那么,提交到仓库中的代码就会以CRLF来换行了,


这样就会导致我们在windows上查看改文件的状态就会是modified


解决这个问题有以下2个办法:



  1. 在Linux上设置autocrlf为input,这样,Git在提交时把CRLF转换成LF,签出时不转换

  2. 对于从Windows上直接拷到Linux上的文件,首先把它转换成linux格式后,再进行提交

配置Nginx的cache功能

从nginx0.7开始,它支持cache反向代理后的页面内容了


对于web应用来讲,这个也就是在反向代理静态文件时才有用


首先,在http中配置:



折叠复制代码




  1. proxy_cache_key "$scheme$host$request_uri";

  2. proxy_cache_path /opt/work/cachelevels=1:2:1keys_zone=js_cache:100mmax_size=1024minactive=15d;

  3. proxy_cache_valid any 15d;




然后,在需要使用cache的location中配置:


proxy_cache js_cache;


参数介绍:



  1. levels指定cache的子目录和md5的对应关系,1:2:1代表是采用了3层hash目录,分别对应md5的前4位

  2. max_size指定最大cache的大小

  3. inactive指定cache的数据,多长时间没被请求后,会自动删除

  4. proxy_cache_valid为不同的应答设置不同的缓存时间,如下:


  5. 折叠复制代码




    1. proxy_cache_valid 200 302 10m;

    2. proxy_cache_valid 301 1h;

    3. proxy_cache_valid any 1m;





如果要为所有的应答都设置缓存,则用any。注意,这个指令没有默认值,所以如果要想实现cache,则必须要设置这个指令。


注意:



  1. cache的目录如:/opt/work/cache,必须要手工建好,否则nginx会报错,cache会无法正常使用

  2. proxy_cache_path指令只能在http中配置,proxy_cache指令可以在http, server, location中配置

  3. 官方文档上说:自0.7.48之后,cache会遵循后端返回的Cache-Control, Expires等header,也就是说会cache会自动过期,这个没有验证过

  4. proxy_cache_path和proxy_temp_path要在同一个分区上面

  5. proxy_cache_key用来设置包含在缓存中的关键字,默认值是$scheme$proxy_host$request_uri;你可以加上$host来区分不同的host: $host$uri$is_args$args;


清理缓存有2种方法:



  1. 直接删除nginx的缓存目录,如rm -rf /opt/work/cache

  2. 使用ngx_cache_purge模块,编译配置如下:



折叠复制代码




  1. #编译

  2. ./configure ... --add-module=../headers-more-nginx-module

  3. #配置

  4. location ~ /ccache(/.*) {

  5. allow 127.0.0.1;

  6. allow 192.168.0.0/16;

  7. allow 10.1.0.0/16;

  8. deny all;

  9. proxy_cache_purge js_cache $scheme$host$1;

  10. }




比如,要清除url为http://mail.sohu.com/static/ad/mail/ysz.html的缓存


则,访问http://mail.sohu.com/clearcache/static/ad/mail/ysz.html即可得到如下结果:


Key : httpmail.sohu.com/static/ad/mail/ysz.html

Path: /opt/work/cache/b/fd/2/3d0f4cd02af76bbaaa8df033465a2fdb


如果要清除缓存的url没有被缓存,则直接会返回404错误


 

睡前讲故事




每当睡觉前,宝宝就让妈妈拿一本书给他讲故事


其实,讲来讲去也就是那么几个故事:


老婆婆和大红枣,孔融让梨,小猫钓鱼,三个和尚,小兔和大灰狼.....


可是昕昕总是听不够,总是一遍一遍的让妈妈反复给他讲


今天晚上,依然如此,他躺在了被窝中,让妈妈讲故事


但故事书怎么也找不到,于是,我就对他说:


书找不到了,昕昕给爸爸妈妈背背“老婆婆和大红枣”的故事吧


小家伙就从头开始背了,几乎完整的给背了出来,这个故事还挺长的


不过,人家也都从头到尾给复述了出来...


以后得多买几本故事书,预备着了


前几天我还想时不时用MP3把某次讲的过程给录下来,以后就放MP3


但想想,这样也不好,就是他被动的听故事,而不是给他讲故事了


估计他也不会有太大兴趣了,呵呵


python中的全局变量




最新文章

最近回复

  • feifei435:这两个URI实际是不一样的
  • zsy: git push origin 分支 -f 给力!
  • 冼敏兵:简单易懂,good fit
  • Jack:无需改配置文件,看着累! # gluster volume se...
  • Mr.j:按照你的方法凑效了,折腾死了。。。。
  • zheyemaster:补充一句:我的网站路径:D:\wamp\www ~~菜鸟站长, ...
  • zheyemaster:wamp2.5(apache2.4.9)下局域网访问403错误的...
  • Git中pull对比fetch和merge | 炼似春秋:[…] 首先,我搜索了git pull和git fe...
  • higkoo:总结一下吧, 性能调优示例: gluster volume s...
  • knowaeap:请问一下博主,你维护的openyoudao支持opensuse吗

分类

归档

其它