Tag Archives: Linux

在 Ubuntu 8.10 (Intrepid) 中使用 vpn

上周把我的 T60 上的 Ubuntu 升级到了最新版本 Intrepid,对比上个版本的升级过程,相对顺利了很多。新版本中最大的改版之一,就是网络管理器的更换。新的管理器使用起来更加简单,不过在使用公司的 vpn 的时候却碰到了一些麻烦,在网上搜索了一下,大部分人都有类似的问题,不过还没有找到好的解决办法。
趁着周末的时间,找了一些国外的相关资料,终于把 vpn 给搞定了,我下面描述下我的方法,不一定对所有人有效,大家权当参考。

YUI Compressor for nautilus

在 lifesinger 的 blog 上看到淘宝内部使用的 TBCompressor,自己还傻乎乎的留言问有没有 for Linux 版本的。
YUI Compressor 本身就是一个 jar 包,可以方便的跨平台运行,不过每次都要打开控制台来运行,也有些不爽,参考了 TBCompressor,作了一个 nautilus-script,这下就可以直接对 js 和 css 文件点击右键进行操作了。
效果截图如下:

下载地址:MinJS
使用方法:下载后的文件放到 ~/.gnome2/nautilus-scripts 目录下即可,需要先打开文件配置你的 YUI Compressor jar 文件所在的路径。

What’s in my history?

在 一宁的 blog 上看到这么好玩的命令:

$history|awk ‘{a[$2]++} END{for(i in a){printf "%5d\t%s\n",a[i],i}}’|sort -rn|head

82 ls
64 cd
44 sudo
42 vim
37 svn
25 lftp
22 ./test.sh
17 memcached-tool.pl
11 ping
11 gvim

下面是改进版,可以加入百分比统计:

$history | awk ‘{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}’ [...]

我目前使用的 Firefox 插件

以下列表使用 FEBE 生成:

1. AdblockPlus{0.7.5.3}:广告过滤
2. DownThemAll{1.0}:多线程下载工具
3. FEBE:定时备份插件及使用偏好,这个列表就是它生成的
4. FEBE{5.3.1}:同上
5. Firebug{1.05}:强大的客户端调试工具
6. FoxyProxy{2.7.1}:自动代理切换,“翻墙”用
7. FreeAccessPlus{1.0.5}:访问被屏弊的 Flickr 用,现在好像没啥用
8. HideMenubar{1.0.20080310}:可以把多余的菜单栏隐藏起来
9. MozillaArchiveFormat{0.6.3}:查看和保存为微软的mht格式
10. Paragrasp{1.43}:辅助阅读
11. RememberTheMilkforGmail{1.0.1}:一个GTD工具,For Gmail 的插件
12. Screengrab{0.93}:Linux下用来截网页的软件
13. SearchStatus{1.21}:查看Alexa排名和PageRank
14. SessionManager{0.6.1.13}:会话管理,可以把当前打开的标签保存成一个会话
15. Stop-or-ReloadButton{0.2.2}:把重载按钮和停止按钮整合在一起
16. SuperDragAndGo{0.2.6}:用来拖动链接在后台打开
17. TWSStopper{0.1.1}:时间管理,让你在工作时间可以安心做事,推荐~
18. TabMixLiteCE{2.0.1}:增强标签功能
19. UserAgentSwitcher{0.6.11}:浏览器的 Agent 模拟和切换
20. WebDeveloper{1.1.5}:辅助WEB开发的工具集
21. YSlow{0.9.4}:Yahoo基于FireBug的页面分析器
22. ZendStudioToolbar{2.0.2}:这个不是我装的~~
23. del.icio.usBookmarks{1.5.44}:用Delicious来代替你的书签菜单
用户代理: Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.8.1.13) Gecko/20080325 Ubuntu/7.10 (gutsy) Firefox/2.0.0.13
这篇算凑数……

Ubuntu Gutsy 下 Google Earth 不能运行的解决办法

Ubuntu Gutsy 下默认是开启了 Compiz 桌面效果的,在我的 T60 上安装 Google Earth 的过程中碰到点麻烦,记录如下:
1.从 http://earth.google.com/download-earth.html 下载到一个后缀为 bin 的安装包,chmod +x 后执行;
2.安装过程很顺利,装完后会在程序组和桌面上建立快捷方式;
3.第一次运行的时候,发现停留在启动画面,没了反应;
4.切换到终端下,运行 googleearth,发现出现以下错误信息:”Xlib: extension “XFree86-DRI” missing on display “:1.0″. “;
5. 猜想可能是显卡驱动的问题,google了一下,发现有人提到先运行 DISPLAY=:0 再运行 googleearth 的方式,试了一下,是可以通过启动画面了,不过启动好的窗口,没有标题栏,也不能最大化最小化,除非把窗口退出,也没办法操作其它窗口;
6.在 ubuntu 中文论坛上寻找了好久,也没找到解决办法。最终在国外一个邮件列表中看到有人提到这种情况,罪魁祸首原来还是 T60 的 ati 显卡,新版的 ati 驱动有一点小问题,导致刚才的情况发生;
7.解决办法:把 libGL.tar.gz 中的两个文件 cp 到你的 google earth 安装目录下(我的在 /opt/google-earth),重新启动你的 X 即可。
附效果截图和 libGL.tar.gz 包本地下载。

StatSVN 自动运行脚本的问题

公司的版本库由 CVS 转到了 SVN,转的过程就不说了,Google 上一搜一把。
为了实时看到 SVN 版本库的状态,在网上找了一个很好用的工具叫 StatSVN,会把当前 SVN 库的状态用数据和图表的方式展现出来,可以按开发者、目录、commit log 分别展示,很是强大。
在计划写个脚本每天凌晨自动生成前一年的报表的时候,碰到一些麻烦。刚开始的脚本是这样的:

#!/bin/bash
(/usr/bin/svn update /root/SVN)
(/usr/bin/svn log /root/SVN –xml -v > /root/SVN/svn.log)
(/usr/local/jdk/jre/bin/java -jar /root/statsvn-0.3.1/statsvn.jar /root/SVN/svn.log /root/SVN/ -out
put-dir /usr/local/apache2/htdocs/SVN/svnstat/ -title CNFOL -threads 50 -mantis http://xxx.com/bugs
/ -no-developer admin -include **/*.php:**/*.java:**/*.html:**/*.htm:**/*.js:**/*.css:**/*
.shtml:**/*.xml:**/*.sql:**/*.jsp:**/*.do:**/*.cfg)
(/bin/rm -f /root/SVN/svn.log)

第二天发现脚本没有自动运行,再尝试着把所有和 PATH 有关的环境变量都加进去,还是不行。后来在 winger 的协助下,通过记录日志的方式,把脚本的错误输出都记录了下来,发现出错的脚本在 /usr/local/jdk/jre/bin/java -jar /root/statsvn-0.3.1/statsvn.jar 这行,错误信息如下:

Parsing SVN log ‘/root/SVN/svn.log’ exclude pattern ”
Logfile parsing failed.
svn log: [...]

Memcache 中模拟 namespace

最近在用 memcache,不可否认,memcache 在实际应用中的表现非常出色。不过也许正是因为其对速度和性能的要求过于严格,导致 memcache 的可操作性不是那么强。PHP 在使用的时候,也只能有限的使用 add、delete、replace、flush 等几个简单的方法。
memcache 官方是不建议我们手动去删除缓冲内容的, 因为官方的 api 中有关删除的方法只有 delete 和flush,前者是在知道 key 的情况下删除一个对象的值,后面是清除服务器上所有对象。
不过很多情况下,我们需要从服务器上删除一部分对象,又不希望把整个服务器上的对象都清空,官方的 FAQ 上提供了一个“伪命名空间(Simulating Namespaces)” 的作法。
示例代码如下:

1
2
3
4
5
6
7
8
//生成一个用来保存 namespace 的 key
$ns_key = $memcache->get("foo_namespace_key");
//如果 key 不存在,则创建
if($ns_key===false) $memcache->set("foo_namespace_key", rand(1, 10000));
//根据 namespace_key 生成真正的 key
$my_key = "foo_".$ns_key."_12345";
//需要删除整个 namespace 里的对象的时候,这样处理即可:
$memcache->increment("foo_namespace_key");

Time to Update to Ubuntu 7.04

ubuntu 的速度还是挺快的,上次寄过来的 6 张光盘还没来得及拍照就被同事和朋友们瓜分了,这次申请了 10 张,没想到速度还是这么快……
福州有需要的朋友可以联系我。:)

架设 Rsync 服务的一些资料

Rsync 是一?高效的、免?的文件同步服务。
基本配置文件:
uid=nobody
gid=nobody
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsync.lock
[web]
path=/your/backup/path
comment=test comment
ignore errors
read only=yes
auth users=user
secrets file=/pass/file/here

注意上面的 password-file 的属性要为 600

How to do encrypted remote backup using rsync.
用rsync对网站进行镜像备份
rsync Man page
rsyncd.conf Man page
Rsync usenet
在Windows下使用Rsync

2004年2月3日10时59分
今天用到了 Rsync 的 exclude/include功能,可以在配置文件中使用,也可以在客户端的命令中使用。
eg: /usr/bin/rsync -azv –include=”/*/javadoc/**”
–exclude=”*”
[...]

ProFTPD 服务客户端登录时有延迟的解决办法

配置文件中加入以下两行
UseReverseDNS off
IdentLookups off

RH7.3,ProFTPD 1.2.9 下测试通过

content