2009年8月

查看内存占用大的进程

Linux下使用ps对进程占用的内存进行排序

ps -eo pid,comm,vsz --sort vsz



然后通过fd来查看打开的文件信息

ll /proc/19829/fd



另外,如果想查看某个进程所在的目录和执行的脚本,可以

ll /proc/19829



cwd即是进程所在的目录
exe是执行的命令

郁闷的wap cookie问题

m.mail.sohu.com上线以来
使用我的手机一直能正常登陆的
这短时间突然不行了
提示“手机不支持cookie”

开始怀疑是domain的问题
在修改了domain后,还是不成
后来又加了一些调试信息
发现cookie是设置上了
但其内容都是null

于是,怀疑是setcookie的问题
就直接在页面里set了
不再调用类的方法了
结果,就好了

够郁闷的
不知道是不是移动又调整了cmwap的什么东西了....
最后也没能找出真正的原因

还有,最初vip上线时
曾出现过在m.vip.sohu.com上就无法设置cookie
所以,后来给改成了www.vip.sohu.com/wap了
使用了新的种cookie的方法后
发现用m.vip.sohu.com也是可以的
就顺便把url也给统一了



webpy的session

web.py已经支持session功能了
但现在只支持文件session和数据库session
对于并发量大的系统,用db方式不太可行
只能选择文件session了
也许将来webpy会加入memcached的session支持?

大概看了下其源码
它是将每个用户的session文件都统一存放到一个目录下
这样,当访问用户量很大时
对应目录下的session文件数目会很多
而且,其对过期的session处理似乎也不太好
是在每个请求过来时,判断是否需要清理过期session
然后遍历其下面所有的session文件
根据其访问时间来清理

不过,对于并发量小的应用,倒是可以试试
准备打算在vip里面试试这个session

具体代码如下:


session = web.session.Session(app, web.session.DiskStore('/tmp'))
web.config['_session'] = session


在初始化session后,将它放到一个全局的config里面
这样后续的应用就可以直接用了


setattr(self, '_session', web.config['_session'])
self._session.user = user



Linux下删除文件

一般我们都是直接用rm进行删除的

rm -f a.log



但有时,如果某个log文件是某个进程生成的
而且进程又正在运行,如果你直接rm那个文件
那么它占用的空间并不会马上释放
可能需要你重启机器或者重启对应的进程才可以

这个时候,我们可以使用

cat /dev/null > a.log


这样,就能马上清除文件内容并释放对应的空间了

Git往远程push前修改commit信息

一般我们使用git来开发都会有2个仓库:本地仓库和远程仓库
在我们本地修改代码后,会首先commit到本地的仓库里
当最终本地代码测试没问题后,才会用git push命令提交到远程仓库中

如果用默认的直接push,会把本地的所有的commit日志都会给push到远程
有时我们本地的很多commit信息都没有太大意义
只想往远程push一条commit信息
那么可以使用下面的命令:

git rebase -i origin/master



它允许你在push到远程之前来编辑自己的commit信息:


pick 9135aeb v2
pick c0ef644 v3

# Rebase 036a847..c0ef644 onto 036a847
#
# Commands:
#  p, pick = use commit
#  e, edit = use commit, but stop for amending
#  s, squash = use commit, but meld into previous commit
#
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.



如上,本地有两条commit信息v2和v3
我们可以直接把v3对应的pick给修改成squash


pick 9135aeb v2
squash c0ef644 v3



这样我们就可以合并这2个commit信息到一条上了
然后,我们再执行下面的push就可以了

git push



rebase中的edit命令代表是rebase到对应的commit后停止
然后等待修改对应的文件后,再使用

git rebase --continue


来继续rebase的操作

另外:在rebase -i 时也可以直接删除对应行的commit信息
但这样做就会丢失那次commit所作的修改
所以,使用这个需要慎重

FireFox常用的插件列表

自己常用的FireFox插件列表:

  1. FireBug:调试Ajax和Js
  2. FireCookie:获取编辑Cookie
  3. HttpFox:类似HttpWatch的插件,记录Http请求
  4. Regular Expressions Tester:正则表达式测试
  5. Sqlite Manager:一个Sqlite的管理工具
  6. DNS Flusher:修改本机Host后可以不需要重启FireFox
  7. User Agent Switcher:方便的切换本机的UA 7.Weave:同步firefox的配置,书签信息
  8. Colorful Tabs : 提供类似于IE8的选项卡分颜色显示
  9. Speed Dial : 提供类似于chrome的常用网站访问页,可以根据自己的喜好制定快速访问的页面
  10. Tab mix plus:可以定制双击关闭标签
  11. Easy DragToGo : 超级拖拽
  12. FEBE : 备份plugin
  13. JsonView:直接查看json对象
  14. FlashBug:用来在Firebug中显示Flash中的trace信息,如果在trace log中出现了很多function的调试信息,可以尝试修改c:\Documents and Settings\yushunzhi\mm.cfg文件
  15. Skip Cert Error:可以忽略Firefox中的证书错误
  16. xmarks:不同浏览器间同步书签

Git中的fetch和pull

Git中从远程的分支获取最新的版本到本地有这样2个命令:

1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge
    


git fetch origin master
git log -p master..origin/master
git merge origin/master



    以上命令的含义:
   首先从远程的origin的master主分支下载最新的版本到origin/master分支上
   然后比较本地的master分支和origin/master分支的差别
   最后进行合并

   上述过程其实可以用以下更清晰的方式来进行:
  


git fetch origin master:tmp
git diff tmp
git merge tmp


    
    从远程获取最新的版本到本地的test分支上
   之后再进行比较合并

2. git pull:相当于是从远程获取最新版本并merge到本地
  


git pull origin master



    上述命令其实相当于git fetch 和 git merge
    在实际使用中,git fetch更安全一些
   因为在merge前,我们可以查看更新情况,然后再决定是否合并

    

解决Msysgit的中文乱码问题

Git的Windows版本Msysgit对中文的支持不够好


当使用时,会出现以下三种情况的中文乱码:



  1. ls不能显示中文目录。解决办法:在git/etc/git-completion.bash中增加一行:


  2. 折叠复制代码




    1. alias ls='ls --show-control-chars --color=auto'  






  3. git commit不能提交中文注释。解决办法:修改git/etc/inputrc中对应的行:


  4. 折叠复制代码




    1. set output-meta on set convert-meta off  






  5. git log无法显示中文注释。解决办法:在git/etc/profile中增加一行:


  6. 折叠复制代码




    1. export LESSCHARSET=iso8859





最新文章

最近回复

  • 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吗

分类

归档

其它