Archive
Linux下firefox播放Stage6视频
Divx的Stage6是个很不错的视频站,高速,清晰,简直惊艳。不过播放需要安装Divx Web Player,而它只有windows和mac版。Linux下可以用mplayer的mozilla Plugin来播放。ubuntu下只要安装 mozilla-mplayer 然后重启firefox就可以了。不过这个package有些问题,mplayerplug-in-dvx.so文件没有被连到/usr/lib/firefox/plugins中,launchpad的Bug #112055题到了这个问题。解决很简单,只要把/usr/lib/mozilla/plugins/下的mplayerplug-in-dvx.so和mplayerplug-in-dvx.xpt符号连接到/usr/lib/firefox/plugins/下面就可以了:
cd /usr/lib/firefox/plugins
sudo ln -s ../../mozilla/plugins/mplayerplug-in-dvx.so .
sudo ln -s ../../mozilla/plugins/mplayerplug-in-dvx.xpt .
Tips: find到带空格文件名用xargs处理的技巧
find和xargs是最好的组合,可以说是linux shell下的瑞士军刀,用xargs配合find,比直接用find的-exec参数,速度更快,用法也更直观。
基本的用法比如:
find ./ -name '*.bak' | xargs rm -rf
一般情况,上面这个命令运行的很好,但是如果找到的文件名代空格,上面的命令运行就可能会出问题了。
find有一个参数-print0,于默认的-print相比,输出的序列不是以空格分隔,而是以null字符分隔。而xargs也有一个参数-0,可以接受以null而非空格间隔的输入流。所以说xargs简直就是为find而生的。上面的问题就很好解决了:
find ./ -name '*.bak' -print0 | xargs -0 rm -rf
udev的static device node
这两天帮QA的同事安装nistnet,使用中发现,每次reboot以后,都会丢失/dev下所需的设备节点,包括/dev/nistnet,/dev/hitbox等。后来我想到ubuntu使用udev来动态建立设备节点,应该是reboot的时候,udev没能正确的重新建立这些节点。于是,需要udev建立这些静态的设备节点。
google了一下,在LFS中找到了方法。udev的init script会把/lib/udev/devices/下预建立的静态device nodes拷贝到/dev下面。所以,只要把需要的static device node预先mknod到/lib/udev/devices下面就行了。
Tips:autossh
SSH的特性就是安全,如果一个连接长期闲置,那么就可能被利用,所以SSH服务端一般都会有一个超过Idle时间踢出的设置。不过像我们经常会用SSH登陆到远程服务器上长时间的工作的,这个特性就非常不方便了。于是autossh,就是这么一个牺牲安全性,换取便利性的工具。
autossh通过建立另一个SSH连接来监视工作SSH连接,当工作连接断开的时候,能够自动发起重连。不过你得设置ssh-agent,否则,重连的时候还是会提示你输入密码的,这样就失去意义了。
不过,就算是重连,你正在做的工作也会因为失去连接登出而都被杀死的。这时候就该GNU screen登场了。在你ssh到远程服务器的时候,启动一个screen Session,screen可以让你在ssh失去连接的时候自动detach,然后重连上来的时候,只要用screen -D -R取回screen Session就可以了。而且,autossh自带了一个非常好用的script rscreen,已经完完整整的帮忙做好了这件事情,只要直接拿过来用就可以了。
至于安装嘛,对于Debian,照例只要apt就可以了,下面贴一下我的对rscreen的小小修改,去掉了不需要的键设置,使用remoteSSH做为screen Session的名字以区别其他的screen Session,接收全部的ssh参数:
--- /usr/share/doc/autossh-1.3/examples/rscreen 2005-03-23 10:05:20.001000000 +0800 +++ /usr/local/bin/rscreen 2006-05-16 11:41:23.705698100 +0800 @@ -23,4 +23,4 @@ #AUTOSSH_PATH=/usr/local/bin/ssh export AUTOSSH_POLL AUTOSSH_LOGFILE AUTOSSH_DEBUG AUTOSSH_PATH AUTOSSH_GATETIME AUTOSSH_PORT -autossh -M 20004 -t $1 "screen -e^Zz -D -R" +autossh -M 20004 -t $* "screen -D -R remoteSSH"

Recent Comments