Linux @ 22 November 2008, “No Comments”

上周把我的 T60 上的 Ubuntu 升级到了最新版本 Intrepid,对比上个版本的升级过程,相对顺利了很多。

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

1.需要安装的软件包

很多人反馈 vpn 添加的按钮是灰色不可用的,是因为你的相应的软件包没安装完整,使用新立得安装 network-manager-pptp,或者使用以下命令行:

sudo apt-get install network-manager-pptp

也有些同学是像我这样从低版本升级上来的,可能也会有一些杂七杂八的问题,有碰到问题找不到头绪的时候,建议把以下软件包重新安装:

network-manager、network-manager-gnome

2.新建 VPN 连接

按下面截图的步骤开始,新连接类型要选择 pptp

3.设置 VPN 属性

按下图所示,“Getway” 是你的网关地址,“User name” 也不能为空,注意密码这里先暂时保持为空,连接的时候会提示你填写,这里填写的话可能会导致连接失败。

然后点击 “Advanced”,打开高级选项,选中 “Use Point-to-Point encryption(MPPE)”,如下图所示,其它选项不用改动:

到这里就配置结束了,不出意外的话,连接应该是正常的。

4.路由问题

正常情况下,拔上 vpn 后,本地的网络会不正常,这是因为本地网络默认会走 vpn 的路由的关系,我们需要设置只有远程地址才需要走远程的网关。 在设置对话框中选择 “IPV4 Setting”,然后点击 “Route”,参考下面的截图: 我这里是设置了 172.20.1.x 和 172.20.2.x 的网段才通过远程网关,你需要根据你的情况来做相应的修改:

到这里如果你还有问题,还可以通过查看系统日志(dmesg 或 cat /var/log/syslog)来进一步判断问题所在。

Linux, Programming @ 30 October 2008, “1 Comment”

lifesinger 的 blog 上看到淘宝内部使用的 TBCompressor,自己还傻乎乎的留言问有没有 for Linux 版本的。

YUI Compressor 本身就是一个 jar 包,可以方便的跨平台运行,不过每次都要打开控制台来运行,也有些不爽,参考了 TBCompressor,作了一个 nautilus-script,这下就可以直接对 js 和 css 文件点击右键进行操作了。

效果截图如下:

下载地址MinJS

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

IT, Linux @ 14 April 2008, “4 Comments”

一宁的 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;}' | grep -v ./ | column -c3 -s   -t | sort -nr | nl | head -n10

1 82 16.4% ls
2 64 12.8% cd
3 44 8.8% sudo
4 42 8.4% vim
5 37 7.4% svn
6 25 5% lftp
7 17 3.4% memcached-tool.pl
8 11 2.2% ping
9 11 2.2% gvim
10 10 2% exit

是不是很有意思,快点回复让我看看你的吧。:)

Internet, IT, Linux @ 01 April 2008, “2 Comments”

以下列表使用 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

这篇算凑数……

Linux @ 10 November 2007, “3 Comments”

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 包本地下载。

Linux, Programming @ 25 October 2007, “No Comments”

公司的版本库由 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: svn info: XML document structures must start and end within the same entity.

奇怪的是,在控制台下手工运行都没问题,放到脚本里面就报错。看起来还是环境变量有问题,最终还是 winger 帮忙发现了问题,只要在脚本的头部加入

export LANG=en_US.UTF-8

就一切正常了。

Internet, Linux @ 27 September 2007, “2 Comments”

最近在用 memcache,不可否认,memcache 在实际应用中的表现非常出色。不过也许正是因为其对速度和性能的要求过于严格,导致 memcache 的可操作性不是那么强。PHP 在使用的时候,也只能有限的使用 add、delete、replace、flush 等几个简单的方法。

memcache 官方是不建议我们手动去删除缓冲内容的, 因为官方的 api 中有关删除的方法只有 delete 和flush,前者是在知道 key 的情况下删除一个对象的值,后面是清除服务器上所有对象。

不过很多情况下,我们需要从服务器上删除一部分对象,又不希望把整个服务器上的对象都清空,官方的 FAQ 上提供了一个“伪命名空间(Simulating Namespaces)” 的作法。

示例代码如下:

//生成一个用来保存 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");

Linux @ 21 May 2007, “2 Comments”

ubuntu 的速度还是挺快的,上次寄过来的 6 张光盘还没来得及拍照就被同事和朋友们瓜分了,这次申请了 10 张,没想到速度还是这么快……

福州有需要的朋友可以联系我。:)

dscf6289.jpg

Tags: , ,
Programming @ 08 December 2003, “No Comments”

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

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

2004年2月3日10时59分

今天用到了 Rsync 的 exclude/include功能,可以在配置文件中使用,也可以在客户端的命令中使用。

eg: /usr/bin/rsync -azv --include="/*/javadoc/**"
--exclude="*"
server:/web/api/javadoc/

相关新闻组文章:

  • [lug] rsync exclude/include
  • CYGWIN Rsync exclude/include problem

    Tags: ,
  • Programming @ 20 November 2003, “No Comments”

    配置文件中加入以下两行

    UseReverseDNS off
    IdentLookups off

    RH7.3,ProFTPD 1.2.9 下测试通过