<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Matrix &#187; Linux</title>
	<atom:link href="http://matrix.windhunter.net/blog/tag/linux/feed" rel="self" type="application/rss+xml" />
	<link>http://matrix.windhunter.net/blog</link>
	<description>Everything that Has a Beginning Has an End</description>
	<lastBuildDate>Tue, 17 Jan 2012 00:51:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>百家講壇的MP3</title>
		<link>http://matrix.windhunter.net/blog/2011/04/mp3-of-baijiajiangtan-374.html</link>
		<comments>http://matrix.windhunter.net/blog/2011/04/mp3-of-baijiajiangtan-374.html#comments</comments>
		<pubDate>Mon, 04 Apr 2011 15:10:23 +0000</pubDate>
		<dc:creator>matrix</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[我的生活]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[百家講壇]]></category>

		<guid isPermaLink="false">http://matrix.windhunter.net/blog/?p=374</guid>
		<description><![CDATA[本人比較喜歡百家講壇的一些歷史節目。用來在閒暇時間填補大腦的空白是很不錯的選擇。比如上個月的很多時間都在客戶那處理技術問題，在這前不著村後不著店的破地方，百家的mp3陪我度過了大部分空閒時間。 我搜集的百家講壇的mp3原本大多來自verycd。因為是“講”壇，所以絕大部分時候是無需下載視頻節目的。那麼這裡有個更好的選擇：http://www.baijiajiangtan.org/ 大概是這個管理員從視頻中提取了mp3吧，反正很方便我這樣的“專業”聽眾下載。 美中不足的是，從這個網站獲取mp3的步驟很繁瑣。從選擇節目，到點擊mp3的下載鏈接至少要3步。偉大的人類無法適應機械運動啊&#8230;.so,為了自己方便，用python寫了個小爬蟲，專門獲取這個網站MP3文件的下載路徑，並存入文件。 用法很簡單,將需要下載的節目主題丟給程序，程序會輸出一個文本文件，其中包含了此節目所有的mp3文件路徑。然後麼，就是丟個各種下載軟件處理了。 是以為記。 （下載程序暫時就不公開放出了。一來是自己代碼寫的奇爛；二來麼，人家網站也要活,大夥都用程序去爬的話&#8230;..有需要的同學私下向我索取吧）]]></description>
			<content:encoded><![CDATA[<p>本人比較喜歡百家講壇的一些歷史節目。用來在閒暇時間填補大腦的空白是很不錯的選擇。比如上個月的很多時間都在客戶那處理技術問題，在這前不著村後不著店的破地方，百家的mp3陪我度過了大部分空閒時間。</p>
<p>我搜集的百家講壇的mp3原本大多來自verycd。因為是“講”壇，所以絕大部分時候是無需下載視頻節目的。那麼這裡有個更好的選擇：http://www.baijiajiangtan.org/</p>
<p><span id="more-374"></span></p>
<p>大概是這個管理員從視頻中提取了mp3吧，反正很方便我這樣的“專業”聽眾下載。</p>
<p>美中不足的是，從這個網站獲取mp3的步驟很繁瑣。從選擇節目，到點擊mp3的下載鏈接至少要3步。偉大的人類無法適應機械運動啊&#8230;.so,為了自己方便，用python寫了個小爬蟲，專門獲取這個網站MP3文件的下載路徑，並存入文件。</p>
<p>用法很簡單,將需要下載的節目主題丟給程序，程序會輸出一個文本文件，其中包含了此節目所有的mp3文件路徑。然後麼，就是丟個各種下載軟件處理了。</p>
<p>是以為記。</p>
<p>（下載程序暫時就不公開放出了。一來是自己代碼寫的奇爛；二來麼，人家網站也要活,大夥都用程序去爬的話&#8230;..有需要的同學私下向我索取吧）</p>
]]></content:encoded>
			<wfw:commentRss>http://matrix.windhunter.net/blog/2011/04/mp3-of-baijiajiangtan-374.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Installing RRDTool on centos 5.5 using yum</title>
		<link>http://matrix.windhunter.net/blog/2011/01/installing-rrdtool-on-centos-5-5-using-yum-319.html</link>
		<comments>http://matrix.windhunter.net/blog/2011/01/installing-rrdtool-on-centos-5-5-using-yum-319.html#comments</comments>
		<pubDate>Thu, 20 Jan 2011 08:10:06 +0000</pubDate>
		<dc:creator>matrix</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[rrdtool]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://matrix.windhunter.net/blog/?p=319</guid>
		<description><![CDATA[We all knows CentOS 5 does not come with a repository that holds valid redhat style rpm’s for rrdtool. So here is how we fix that. We create a file named dag.repo in /etc/yum.repos.d/dag.repo with following code: [dag] name=Dag RPM Repository for Red Hat Enterprise Linux baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag gpgcheck=1 gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt enabled=1 Now,run [root@localhosts]# yum install rrdtool]]></description>
			<content:encoded><![CDATA[<p>We all knows CentOS 5 does not come with a repository that holds valid redhat style rpm’s for rrdtool. So here is how we fix that.</p>
<p>We create a file named dag.repo in /etc/yum.repos.d/dag.repo with following code:</p>
<p><span id="more-319"></span></p>
<pre class="brush:shell">[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
enabled=1</pre>
<p>Now,run</p>
<pre class="brush:shell">[root@localhosts]# yum install rrdtool</pre>
]]></content:encoded>
			<wfw:commentRss>http://matrix.windhunter.net/blog/2011/01/installing-rrdtool-on-centos-5-5-using-yum-319.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>利用开源软件搭建可伸缩/管理的vpn服务器(群)</title>
		<link>http://matrix.windhunter.net/blog/2010/03/use-opensouce-software-setup-vpn-servers-171.html</link>
		<comments>http://matrix.windhunter.net/blog/2010/03/use-opensouce-software-setup-vpn-servers-171.html#comments</comments>
		<pubDate>Thu, 04 Mar 2010 13:12:51 +0000</pubDate>
		<dc:creator>matrix</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[openvpn]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[pptp]]></category>
		<category><![CDATA[radius]]></category>
		<category><![CDATA[vpn]]></category>

		<guid isPermaLink="false">http://matrix.windhunter.net/blog/?p=171</guid>
		<description><![CDATA[说明：本文不是一份详细的安装文档，只是概要记述利用开源软件自建可扩展的vpn服务器群。 一.VPN的简介 VPN是Virtual Private Network的缩写。简单的说vpn是一种加密的隧道技术。其功能是在两个已经建立连接的主机之间，建立虚拟的加密连接。这也是其名称的来由。 二.系统架构（配图） 2.1 vpn拨入端 Linux常见比较常见的vpn实现有3种： OpenVPN L2TP/IPSEC VPN PPTP VPN 这3种VPN在开源领域都有比较简单便捷便于安装的软件包： OpenVPN: openvpn.net PPTP VPN: www.poptop.org L2TP/Ipsec VPN : http://www.openswan.org/ or http://www.strongswan.org/ 需要说明的是，以上几种vpn软件还依赖某些未列出的开源软件。比如：Openvpn/openswan/strongswan需要openssl支持；PPTP vpn需要内核支持MPPE。 2.2 登录认证/计费 因为牵涉到vpn用户的管理，所以，我们加入freeradius. 简单的说，freeradius提供符合RFC标准的的用户认证/管理/计费功能。 利用radius另外一个好处就是，如果vpn服务器需要扩容，那么简单的增加一台vpn接入服务器，并挂接至radius服务器做认证即可。 2.3 数据库/用户管理的web界面 幸运的是，freeradius支持mysql。这意味着我们的用户数据（包括认证/计费等）将可以由开源世界的另外两位常客：apache/php 管理。 至此，全部利用开源软件搭建而成的可管理，可扩充的VPN系统已经全部完成。 2.4 系统结构图 三.优点/缺点 优点： 3.1性价比非常好。 除了租赁服务器和带宽的费用，软件部分全部利用开源软件。没有为购买License支付1分钱。而Google解决了我在设定过程中的所有问题。 3.2 稳定性非常好。 我们的vpn接入服务器，从去年12月底运行以来，除了今年年头（1月1日，印象深刻，死党从被窝抓起来 -_-!）因为he.net和联通线路抽风的几天，我们的vpn接入部分一直处于无人搭理的状态。至今稳定运行。 3.3 通用性非常好。 pptp vpn的客户端遍地都是，基本上所有的桌面操作系统都有pptp拨号器。即便移动设备，现在大部分也支持pptp vpn(iphone/ipod/android/WM 系列) openvpn [...]]]></description>
			<content:encoded><![CDATA[<p>说明：本文不是一份详细的安装文档，只是概要记述利用开源软件自建可扩展的vpn服务器群。</p>
<h4>一.VPN的简介</h4>
<p>VPN是Virtual Private Network的缩写。简单的说vpn是一种加密的隧道技术。其功能是在两个已经建立连接的主机之间，建立虚拟的加密连接。这也是其名称的来由。</p>
<h4>二.系统架构（配图）</h4>
<h5>2.1 vpn拨入端</h5>
<p>Linux常见比较常见的vpn实现有3种：</p>
<ul>
<li>
<div>OpenVPN</div>
</li>
<li>
<div>L2TP/IPSEC VPN</div>
</li>
<li>
<div>PPTP VPN</div>
</li>
</ul>
<p>这3种VPN在开源领域都有比较简单便捷便于安装的软件包：</p>
<p>OpenVPN: <a href="http://openvpn.net" target="_blank" onclick="urchinTracker('/outgoing/openvpn.net?referer=');">openvpn.net</a><br />
PPTP VPN: <a href="http://www.poptop.org" onclick="urchinTracker('/outgoing/www.poptop.org?referer=');">www.poptop.org</a><br />
L2TP/Ipsec VPN : <a title="http://www.openswan.org/" href="http://www.openswan.org/" onclick="urchinTracker('/outgoing/www.openswan.org/?referer=');">http://www.openswan.org/</a> or <a title="http://www.strongswan.org/" href="http://www.strongswan.org/" onclick="urchinTracker('/outgoing/www.strongswan.org/?referer=');">http://www.strongswan.org/</a></p>
<div><span id="more-171"></span></div>
<p>需要说明的是，以上几种vpn软件还依赖某些未列出的开源软件。比如：Openvpn/openswan/strongswan需要openssl支持；PPTP vpn需要内核支持MPPE。</p>
<h5>2.2 登录认证/计费</h5>
<p>因为牵涉到vpn用户的管理，所以，我们加入<a href="http://freeradius.org/" target="_blank" onclick="urchinTracker('/outgoing/freeradius.org/?referer=');">freeradius</a>.</p>
<p>简单的说，freeradius提供符合RFC标准的的用户认证/管理/计费功能。</p>
<p>利用radius另外一个好处就是，如果vpn服务器需要扩容，那么简单的增加一台vpn接入服务器，并挂接至radius服务器做认证即可。</p>
<h5>2.3 数据库/用户管理的web界面</h5>
<p>幸运的是，freeradius支持mysql。这意味着我们的用户数据（包括认证/计费等）将可以由开源世界的另外两位常客：apache/php 管理。</p>
<p>至此，全部利用开源软件搭建而成的可管理，可扩充的VPN系统已经全部完成。</p>
<h5>2.4 系统结构图</h5>
<div id="scid:8747F07C-CDE8-481f-B0DF-C6CFD074BF67:85d64267-19b9-4153-a485-ca4c222f7504" class="wlWriterEditableSmartContent" style="margin: 0px; display: inline; float: none; padding: 0px;"><a rel="thumbnail" href="http://matrix.windhunter.net/blog/wp-content/uploads/2010/03/opensourcevpn8x6.jpg" rel="lightbox[171]"><img src="http://matrix.windhunter.net/blog/wp-content/uploads/2010/03/opensourcevpn.png" border="0" alt="" /></a></div>
<h4>三.优点/缺点</h4>
<p>优点：</p>
<p>3.1性价比非常好。</p>
<p>除了租赁服务器和带宽的费用，软件部分全部利用开源软件。没有为购买License支付1分钱。而Google解决了我在设定过程中的所有问题。</p>
<p>3.2 稳定性非常好。</p>
<p>我们的vpn接入服务器，从去年12月底运行以来，除了今年年头（1月1日，印象深刻，死党从被窝抓起来 -_-!）因为he.net和联通线路抽风的几天，我们的vpn接入部分一直处于无人搭理的状态。至今稳定运行。</p>
<p>3.3 通用性非常好。</p>
<p>pptp vpn的客户端遍地都是，基本上所有的桌面操作系统都有pptp拨号器。即便移动设备，现在大部分也支持pptp vpn(iphone/ipod/android/WM 系列)</p>
<p>openvpn 除了移动设备支持较少以外，(android可以参考 yegle的 <a href="http://yegle.net/2010/02/25/android-openvpn/" target="_blank" onclick="urchinTracker('/outgoing/yegle.net/2010/02/25/android-openvpn/?referer=');">这篇</a> 和 Virushuo的 <a href="http://blog.devep.net/virushuo/2010/02/28/androidhtc_herovpn.html" target="_blank" onclick="urchinTracker('/outgoing/blog.devep.net/virushuo/2010/02/28/androidhtc_herovpn.html?referer=');">这篇</a>) win/osx/linx都有客户端支持(开源的好处呀)</p>
<p>l2tp/ipsec 虽然用的不多，但linux/win/osx肯定是支持的。移动设备上，至少iphone是完全支持的。</p>
<p>缺点：您需要一定的linux知识/耐心/时间解决安装设定中的各种问题。</p>
<p><strong>四.案例</strong></p>
<p>本人blog所提供的vpn，即是按照以上思路搭建vpn服务器群。</p>
<p>最后，插播广告：</p>
<p>VPN账户出售中，去<a href="https://www.windhunter.net/members/" onclick="urchinTracker('/outgoing/www.windhunter.net/members/?referer=');">https://www.windhunter.net/members/</a> 注册后，点击“申请试用”链接 即可获得1小时试用时间。</p>
]]></content:encoded>
			<wfw:commentRss>http://matrix.windhunter.net/blog/2010/03/use-opensouce-software-setup-vpn-servers-171.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>lighttpd的优化</title>
		<link>http://matrix.windhunter.net/blog/2010/03/lighttpd-performance-improvements-163.html</link>
		<comments>http://matrix.windhunter.net/blog/2010/03/lighttpd-performance-improvements-163.html#comments</comments>
		<pubDate>Wed, 03 Mar 2010 15:25:27 +0000</pubDate>
		<dc:creator>matrix</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[lighttpd]]></category>

		<guid isPermaLink="false">http://matrix.windhunter.net/blog/?p=163</guid>
		<description><![CDATA[xrspook是个好筒子，这两天一直忙着优化blog。俺也跟着瞎忙一下吧。 以下内容参考官方优化参考 1.打开compress和expire模块 server.modules = ( ... "mod_compress", "mod_expire", ... ) 2.优化参数 server.event-handler = "linux-sysepoll" server.stat-cache-engine = "simple" server.network-backend = "linux-sendfile" server.max-keep-alive-requests = 4 server.max-keep-alive-idle=4 server.tag="Apache 2.4" server.max-fds=2048 【完】]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.xlanda.net/" onclick="urchinTracker('/outgoing/www.xlanda.net/?referer=');">xrspook</a>是个好筒子，这两天一直忙着优化blog。俺也跟着瞎忙一下吧。<br />
以下内容参考<a href="http://redmine.lighttpd.net/wiki/lighttpd/Docs:Performance" onclick="urchinTracker('/outgoing/redmine.lighttpd.net/wiki/lighttpd/Docs_Performance?referer=');">官方优化参考</a></p>
<p>1.打开compress和expire模块<span id="more-163"></span></p>
<blockquote><p><code>server.modules              = (<br />
...<br />
                               "mod_compress",<br />
                               "mod_expire",<br />
...<br />
)<br />
</code></p></blockquote>
<p>2.优化参数</p>
<blockquote><p><code>server.event-handler = "linux-sysepoll"<br />
server.stat-cache-engine = "simple"<br />
server.network-backend = "linux-sendfile"<br />
server.max-keep-alive-requests = 4<br />
server.max-keep-alive-idle=4<br />
server.tag="Apache 2.4"<br />
server.max-fds=2048<br />
</code></p></blockquote>
<p>【完】</p>
]]></content:encoded>
			<wfw:commentRss>http://matrix.windhunter.net/blog/2010/03/lighttpd-performance-improvements-163.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>blog服务器线路故障以及dropbox更新引起的小问题</title>
		<link>http://matrix.windhunter.net/blog/2010/03/dropbox-auto-upgrade-error-resolve-127.html</link>
		<comments>http://matrix.windhunter.net/blog/2010/03/dropbox-auto-upgrade-error-resolve-127.html#comments</comments>
		<pubDate>Mon, 01 Mar 2010 05:34:48 +0000</pubDate>
		<dc:creator>matrix</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[dropbox]]></category>

		<guid isPermaLink="false">http://matrix.windhunter.net/blog/?p=127</guid>
		<description><![CDATA[我的linux服务器上跑了一份dropbox同步数据。今天早晨，例行的打开笔记本等数据更新，可惜，硬盘等没有如往常一样闪亮忙碌。当时没当回事，忙其他事情了。 10点多，xrspook同学短信到了，说服务器连不上。web/ssh/vpn都是如此。赶紧检查服务器，丢了份ticket给服务商。10分钟后，有回应了： （还不错，米国时间夜里2点半，居然还有值班人员。） Thank you for providing that information, I have forwarded it to our upstream provider for further investigation. We thank you for your continued patience with this matter, please do not hesitate to update this ticket with any questions or concerns you may have in the meantime. 原来是上一级的线路出现问题，故障和服务器完全无关。 12：13分，线路终于恢复了。 可是，我的dropbox依旧没动静。ssh上服务器，重新启动dropbox进程，出现了如下错误： /usr/local/.dropbox-dist-new/dropbox: /lib64/ld-linux-x86-64.so.2: bad [...]]]></description>
			<content:encoded><![CDATA[<p>我的linux服务器上跑了一份dropbox同步数据。今天早晨，例行的打开笔记本等数据更新，可惜，硬盘等没有如往常一样闪亮忙碌。当时没当回事，忙其他事情了。</p>
<p>10点多，<a href="http://www.xlanda.net" onclick="urchinTracker('/outgoing/www.xlanda.net?referer=');">xrspook</a>同学短信到了，说服务器连不上。web/ssh/vpn都是如此。赶紧检查服务器，丢了份ticket给服务商。10分钟后，有回应了：<br />
（还不错，米国时间夜里2点半，居然还有值班人员。）<br />
<span id="more-127"></span></p>
<blockquote><p><code><br />
Thank you for providing that information, I have forwarded it to our upstream provider for further investigation. We thank you for your continued patience with this matter, please do not hesitate to update this ticket with any questions or concerns you may have in the meantime.</code></p></blockquote>
<p>原来是上一级的线路出现问题，故障和服务器完全无关。</p>
<p>12：13分，线路终于恢复了。</p>
<p>可是，我的dropbox依旧没动静。ssh上服务器，重新启动dropbox进程，出现了如下错误：</p>
<blockquote><p>
<code>/usr/local/.dropbox-dist-new/dropbox: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory</code></p></blockquote>
<p>奇怪&#8230;.我安装dropbox的文件夹明明是.dropbox-dist。联想到到Windows版本的dropbox最近有个升级；而这里的文件夹名称变为.dropbox-dist-new。严重怀疑是dropbox瞒着俺偷偷把自己升级了了；怀疑运行错误的故障和此次自动升级有关。</p>
<p>上dropbox网站看了下，果然2月25号有个升级。ok，干掉错误的自动升级，手动升级：</p>
<blockquote><p>
<code>$ /etc/init.d/dropbox stop #先停掉dropbox服务<br />
$ cd /usr/local<br />
$ rm -rf .dropbox-dist<br />
$ rm -rf .dropbox-dist-new<br />
</code>
</p></blockquote>
<p>下载新版本</p>
<blockquote><p><code>$ wget http://dl-web.dropbox.com/u/17/dropbox-lnx.x86-0.7.110.tar.gz </code></p></blockquote>
<p>注意这里是32位版本，64位版本是http://dl-web.dropbox.com/u/17/dropbox-lnx.x86_64-0.7.110.tar.gz<br />
解解包即可：</p>
<blockquote><p><code>$ tar xzf dropbox-lnx.x86-0.7.110.tar.gz </code></p></blockquote>
<p>重新运行dropbox后一切正常。</p>
<p>看来dropbox的自动升级还是不够智能.</p>
]]></content:encoded>
			<wfw:commentRss>http://matrix.windhunter.net/blog/2010/03/dropbox-auto-upgrade-error-resolve-127.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HDChina开放注册</title>
		<link>http://matrix.windhunter.net/blog/2010/02/hdchina-open-register-126.html</link>
		<comments>http://matrix.windhunter.net/blog/2010/02/hdchina-open-register-126.html#comments</comments>
		<pubDate>Sun, 28 Feb 2010 23:55:15 +0000</pubDate>
		<dc:creator>matrix</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[curl]]></category>
		<category><![CDATA[hdchina]]></category>
		<category><![CDATA[rtorrent]]></category>
		<category><![CDATA[screen]]></category>

		<guid isPermaLink="false">http://matrix.windhunter.net/blog/?p=126</guid>
		<description><![CDATA[2月28号，HDChina的2周年生日，开放注册一天。下午2点28分开放注册之后，网站瞬间被挤爆。想注册账户，实在是难上加难。不过，难不住我们Linuxer. cURL是个好工具，可以模拟post数据。可惜，hdchina新的注册页面是带验证码的。去webarchive内找出了08年hdchina.org的注册页面。发现没有验证码识别。嘿嘿不错，直接用curl+POST搞定：(这里的USERNAME/PASSWORD/email都已抹去&#8230;) curl http://hdchina.org/takesignup.php -A "Mozilla/5.0 (Windows; U; Windows NT 5.1; en) AppleWebKit/526.9 (KHTML, like Gecko) Version/4.0dp1 Safari/526.8" -v -d "wantusername=&#038;wantpassword=&#038;passagain=&#038;country=2&#038;email=&#038;faqverify=yes&#038;ageverify=yes&#038;rulesverify=yes" 在console里多按几次return就注册上了(本来还想丢crontab的&#8230;)： < HTTP/1.1 200 OK < Server: nginx/0.6.35 < Date: Sun, 28 Feb 2010 17:50:22 GMT < Content-Type: text/html < Transfer-Encoding: chunked < Connection: keep-alive < X-Powered-By: PHP/5.2.4-2ubuntu5.6 < Refresh: 0; url=ok.php?type=signup&#038;email=XXXXXXXXXXX 去邮箱激活账户。大功告成！ linux [...]]]></description>
			<content:encoded><![CDATA[<p>2月28号，HDChina的2周年生日，开放注册一天。下午2点28分开放注册之后，网站瞬间被挤爆。想注册账户，实在是难上加难。不过，难不住我们Linuxer.<br />
cURL是个好工具，可以模拟post数据。可惜，hdchina新的注册页面是带验证码的。去webarchive内找出了08年hdchina.org的注册页面。发现没有验证码识别。嘿嘿不错，直接用curl+POST搞定：(这里的USERNAME/PASSWORD/email都已抹去&#8230;)<br />
<span id="more-126"></span></p>
<blockquote><p><code>curl http://hdchina.org/takesignup.php -A "Mozilla/5.0 (Windows; U; Windows NT 5.1; en) AppleWebKit/526.9 (KHTML, like Gecko) Version/4.0dp1 Safari/526.8" -v -d "wantusername=<USERNAME>&#038;wantpassword=<PASSWORD>&#038;passagain=<PASSWORD>&#038;country=2&#038;email=<EMAIL>&#038;faqverify=yes&#038;ageverify=yes&#038;rulesverify=yes"</code></p></blockquote>
<p>在console里多按几次return就注册上了(本来还想丢crontab的&#8230;)：</p>
<blockquote><p><code>< HTTP/1.1 200 OK<br />
< Server: nginx/0.6.35<br />
< Date: Sun, 28 Feb 2010 17:50:22 GMT<br />
< Content-Type: text/html<br />
< Transfer-Encoding: chunked<br />
< Connection: keep-alive<br />
< X-Powered-By: PHP/5.2.4-2ubuntu5.6<br />
< Refresh: 0; url=ok.php?type=signup&#038;email=XXXXXXXXXXX</code></p></blockquote>
<p>去邮箱激活账户。大功告成！</p>
<p>linux console里玩bt，绝配是rTorrent+screen. 熟练工就不废话了。这里只记录一下screen和rTorrent的快捷键备查。</p>
<blockquote><p>
添加和删除 torrents<br />
回退键 	用 URL 或者文件路径添加，采用 tab 键查看目录内容并自动完成，支持通配符，例如: ~/torrent/*<br />
回车键 	和回退键一样，但是添加的 torrent 保持非激活( inactive )状态 (用 ^s 激活)<br />
^o 	对选择的 torrent 设置新的下载目录，仅仅对还没有被激活过的 torrent<br />
^s 	开始下载，先运行 hash ，除非已经做过<br />
^d 	停止激活的下载，或者删除一个停止的下载<br />
^r 	初始化 torrent 的 hash 检查</p>
<p>注意： ^s 和 ^q 在 shell 里面经常用来控制屏幕的暂停，这会和 rTorrent 发生冲突，用 stty -a 来检查是否已经被使用，删除的办法是：</p>
<p>stty stop undef<br />
stty start undef</p>
<p>before running rTorrent (or reattaching to screen) to leave them undefined. You could also replace undef with some other code — ^p, say. ^d also usually sends end-of-file but ncurses passes this through to rTorrent. stty eof undef if you are worried.</p>
<p>To fix this, you may also toggle the flow control in screen with ^a ^f until screen displays “-flow” in the bottom left corner.<br />
修改带宽<br />
a/s/d 	增加上传带宽 1/5/50 KB.<br />
z/x/c 	降低上传带宽 1/5/50 KB.<br />
A/S/D 	增加下载带宽 1/5/50 KB.<br />
Z/X/C 	降低下载带宽 1/5/50 KB.<br />
Common Error Messages</p>
<p>Could not parse bencoded data<br />
    This message is caused by bad communication with the tracker, often caused by invalid client authentication (passkey, IP address, etc.)<br />
Could not create download, the input is not a valid torrent<br />
    This message is caused by a corrupted or otherwise non-valid .torrent file. You should redownload the .torrent file or possibly find a new source for it. </p>
<p>浏览<br />
Global Keys<br />
^q 	关闭 rTorrent，再按一次，强行关闭<br />
上下箭头 	选择 torrent<br />
左键 	回到前一个屏幕<br />
主屏幕视图操作<br />
向右键 	切换到下载视图<br />
^r 	检查 hash<br />
+/- 	修改优先度<br />
l 	查看日志，空格退出<br />
1 	显示所有下载<br />
2 	显示所有下载，按文件名排序<br />
3 	显示开始的下载<br />
4 	显示停止的下载<br />
5 	显示完成的下载<br />
6 	显示未完成的下载<br />
7 	显示正在 hash 的下载<br />
8 	显示正在做种的下载<br />
下载视图<br />
right 	Switch to selected view<br />
left 	Switch to view selection or back to main view<br />
1/2 	Adjust max uploads.<br />
3/4 	Adjust min peers.<br />
5/6 	Adjust max peers.<br />
p 	显示 peer<br />
o 	显示 torrent 信息<br />
i 	Display file list<br />
u 	Display tracker list<br />
t/T 	Initiate tracker request. Use capital T to force the request, ignoring the “min interval” set by the tracker.<br />
Peer list View Keys<br />
left 	Switch to view selection<br />
right 	Show peer details<br />
* 	Snub peer (stop uploading to this peer)<br />
k 	Kick peer (disconnect from peer)<br />
File list View Keys<br />
left 	Switch to view selection<br />
right 	Show file details<br />
space 	Change the file priority; applies recursively when done on a directory<br />
* 	Change the priority of all files<br />
/ 	Collapse directories. While collapsed, press right to expand the selected directory.</p>
<p>Priority options are blank (standard priority), hig (high priority) and off (not to be downloaded).<br />
Tracker list View Keys<br />
left 	Switch to view selection<br />
* 	Enable/disable tracker<br />
space 	Rotate trackers in a group
</p></blockquote>
<p>Screen的：</p>
<blockquote><p>
screen -S console_name 新建一个console<br />
Ctrl-a d         断开所有 screen 终端，返回 screen 执行前状态，但 screen 内所有终端的任务都在执行<br />
screen -ls     列出当前用户的所有 screen 实例，包括联接和断开的<br />
screen -R
<pid>    重新联接到已断开的 screen 实例，如果有多个已断开的 screen 实例，则用
<pid> 区分</p>
<p>Ctrl-a :screen <command>    新建 screen 终端，并运行命令<command><br />
Ctrl-a :resize <height>    改变当前窗口高度为<height><br />
Ctrl-a :quit              退出 screen，将关闭所有 screen 终端，结束其中所有任务</p>
<p>Ctrl-a <Esc>        进入选择模式<br />
<PageUp> 或 Ctrl-u      光标上移一页<br />
<PageDown> 或 Ctrl-d    光标下移一页<br />
<Left>  或 h        光标左移一格<br />
<Down> 或 j         光标下移一行<br />
<Up> 或 k           光标上移一行<br />
<Right> 或 l        光标右移一格<br />
<Space>             选择开始，选择结束<br />
<Esc>               退出选择模式
</p></blockquote>
<p>就这样吧.</p>
]]></content:encoded>
			<wfw:commentRss>http://matrix.windhunter.net/blog/2010/02/hdchina-open-register-126.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何利用dropbox的console模式备份linux服务器上的资料</title>
		<link>http://matrix.windhunter.net/blog/2010/02/how-to-use-dropbox-under-console-mode-95.html</link>
		<comments>http://matrix.windhunter.net/blog/2010/02/how-to-use-dropbox-under-console-mode-95.html#comments</comments>
		<pubDate>Wed, 24 Feb 2010 04:48:03 +0000</pubDate>
		<dc:creator>matrix</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[dropbox]]></category>

		<guid isPermaLink="false">http://matrix.windhunter.net/blog/?p=95</guid>
		<description><![CDATA[Dropbox是一款非常好用的网盘工具。其支持的客户端非常多样，支持Windows/mac/linux。基本涵盖了主要的操作系统。对大陆用户来说，最方便的一点是：没有被墙（悲哀&#8230;.） 我们想利用dropbox支持多平台的特点，同步/备份linux服务器上的资料。因为专用的服务器并没有图形界面，所以，我们需要在console模式下运行dropbox。 1，我们安装dropbox： wget -O dropbox.tar.gz http://www.dropbox.com/download?plat=lnx.x86 如果服务器是64位版本，请使用这个链接 2，解包到相关文件夹 $ tar -zxof dropbox.tar.gz $ mv .dropbox-dist ~/.dropbox-dist 3，下载console版本需要的Pythone script $ wget http://dl.dropbox.com/u/6995/dbmakefakelib.py $ wget http://dl.dropbox.com/u/6995/dbreadconfig.py 4，运行 dbmakefakelib.py，以创建dropbox运行所需要的GUI库文件 $ python dbmakefakelib.py adding library libgtk-x11-2.0.so.0 adding library libgdk-x11-2.0.so.0 adding library libatk-1.0.so.0 adding library libgdk_pixbuf-2.0.so.0 adding library libpango-1.0.so.0 adding library libgobject-2.0.so.0 adding library libgmodule-2.0.so.0 adding library libgthread-2.0.so.0 adding [...]]]></description>
			<content:encoded><![CDATA[<p>Dropbox是一款非常好用的网盘工具。其支持的客户端非常多样，支持Windows/mac/linux。基本涵盖了主要的操作系统。对大陆用户来说，最方便的一点是：没有被墙（悲哀&#8230;.）</p>
<p>我们想利用dropbox支持多平台的特点，同步/备份linux服务器上的资料。因为专用的服务器并没有图形界面，所以，我们需要在console模式下运行dropbox。<br />
<span id="more-95"></span><br />
1，我们安装dropbox：</p>
<blockquote><p>wget -O dropbox.tar.gz http://www.dropbox.com/download?plat=lnx.x86</p></blockquote>
<p>如果服务器是64位版本，请使用这个<a href="http://www.dropbox.com/download?plat=lnx.x86_64" onclick="urchinTracker('/outgoing/www.dropbox.com/download?plat=lnx.x86_64&amp;referer=');">链接</a></p>
<p>2，解包到相关文件夹</p>
<blockquote>
<pre>$ tar -zxof dropbox.tar.gz</pre>
<pre>$ mv .dropbox-dist ~/.dropbox-dist</pre>
</blockquote>
<pre>3，下载console版本需要的Pythone script</pre>
<blockquote>
<pre>
<pre>$ wget http://dl.dropbox.com/u/6995/dbmakefakelib.py
$ wget http://dl.dropbox.com/u/6995/dbreadconfig.py</pre>
</pre>
</blockquote>
<pre>4，运行 dbmakefakelib.py，以创建dropbox运行所需要的GUI库文件</pre>
<blockquote>
<pre>
<pre>$ python dbmakefakelib.py
adding library libgtk-x11-2.0.so.0
adding library libgdk-x11-2.0.so.0
adding library libatk-1.0.so.0
adding library libgdk_pixbuf-2.0.so.0
adding library libpango-1.0.so.0
adding library libgobject-2.0.so.0
adding library libgmodule-2.0.so.0
adding library libgthread-2.0.so.0
adding library libglib-2.0.so.0
adding function gtk_tree_view_new
adding function gtk_toolbar_new
adding function g_threads_got_initialized
adding function gtk_grab_remove
adding function gtk_button_new
adding function gtk_frame_new
adding function gtk_major_version
... lots more of this ...
adding function g_static_rw_lock_writer_unlock
adding function g_value_set_boxed_take_ownership
adding function g_boxed_type_register_static
adding function g_datalist_clear
dropboxd ran for 15 seconds without quitting - success?</pre>
</pre>
</blockquote>
<p>如果在这里系统没有反应，也不用担心。</p>
<p>5，现在，我们读取hostid</p>
<blockquote>
<pre>$ python dbreadconfig.py
host_id = 739bfxxxxxxxxxxxxxxxxx20dbe2b //我mark了一下...呵呵...
last_revision = None
schema_version = 6</pre>
</blockquote>
<pre>如果您和我一样不幸读取失败</pre>
<blockquote>
<pre>$ python dbreadconfig.py
File "dbreadconfig.py", line 24
 print row[0], '=', pickle.loads(base64.b64decode(row[1])) if row[1] !=  None else row[1]
 SyntaxError: invalid syntax</pre>
</blockquote>
<pre>那么，用SQLite直接查询：</pre>
<blockquote>
<pre>$ cd .dropbox
$  sqlite3 dropbox.db
SQLite version 3.3.6
Enter ".help" for instructions
sqlite&gt; .dump config #执行这个命令
BEGIN TRANSACTION;
CREATE TABLE config (
id INTEGER PRIMARY KEY,
key TEXT NOT NULL UNIQUE,
value TEXT
);
INSERT INTO "config" VALUES(1, 'schema_version', 'STYKLg==
');
INSERT INTO "config" VALUES(2, 'last_revision', NULL);
INSERT INTO "config" VALUES(3, 'host_id',

'VjZXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxCi4=    //此处的资料被我用xxxx盖住了大部分...
 ');
 COMMIT;</pre>
</blockquote>
<p>现在，我们把hostid解码，官方文档推荐使用 <a href="http://www.opinionatedgeek.com/dotnet/tools/Base64Decode/" onclick="urchinTracker('/outgoing/www.opinionatedgeek.com/dotnet/tools/Base64Decode/?referer=');">http://www.opinionatedgeek.com/dotnet/tools/Base64Decode/</a> decode之后，我们会获取三行字符：</p>
<blockquote><p>V6c19ae63289XXXXXXXXXXXdb7372a8c772    //还是XXXXXX过的&#8230;<br />
p1<br />
.</p></blockquote>
<p>第二/三行忽略，第一行去掉V，现在我们获取了hostid:6c19ae63289XXXXXXXXXXXdb7372a8c772</p>
<p>6，去dropbox网站绑定。</p>
<p>打开https://www.dropbox.com/cli_link?hostid=HOSTID (这里替换成上一步获取的字符串)</p>
<p>7，建立Dropbox文件夹：</p>
<blockquote>
<pre>$ mkdir ~/Dropbox //注意大小写</pre>
</blockquote>
<p>8，后台运行dropbox:</p>
<blockquote>
<pre>~/.dropbox-dist/dropboxd &amp;</pre>
</blockquote>
<p>至此，所有 ~/Dropbox文件夹下的文件自动备份/同步至Dropbox了。</p>
<p>关于备份：</p>
<p>我们可以建立备份脚本，每天凌晨3点将数据都tar至 ~/Dropbox文件夹。cron+shell脚本即可搞定。这里就不多说了。</p>
<p>(我的Dropbox Referrals Link：<a href="https://www.dropbox.com/referrals/NTE2MDg0MDc5" onclick="urchinTracker('/outgoing/www.dropbox.com/referrals/NTE2MDg0MDc5?referer=');">https://www.dropbox.com/referrals/NTE2MDg0MDc5  </a><br />
用此链接注册Dropbox，你我都有空间加成&#8230;欢迎注册&#8230;.)</p>
<p>参考文件：<br />
1.<a href="http://wiki.dropbox.com/TipsAndTricks/TextBasedLinuxInstall" onclick="urchinTracker('/outgoing/wiki.dropbox.com/TipsAndTricks/TextBasedLinuxInstall?referer=');">How To Install Dropbox In An Entirely Text Based Linux Environment</a><br />
2.<a href="http://unixhater.com/487.html" onclick="urchinTracker('/outgoing/unixhater.com/487.html?referer=');">linux下自动备份blog到dropbox</a> (可惜，大部分工作完成后才发现此文)</p>
]]></content:encoded>
			<wfw:commentRss>http://matrix.windhunter.net/blog/2010/02/how-to-use-dropbox-under-console-mode-95.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

