给托管了Feed的FeedBurner用户和Feedsky用户的solution

这是一篇与Feed托管有关的解决方案,如果你觉得有用,并且打算当天自己搞一个独立域名玩BLOG,请收藏。

昨天晚上,解决了一个烦恼很久的问题,正好昨天FeedBurner被GFW屏蔽了IP,我觉得我解决问题的过程对某些人有用,就写出来吧,哪怕被GFW的技术人员看到,说不定他们又想出应对方法整得我的个人新闻台失去功力。

我的BLOG是独立域名的BLOG,订阅地址是基于我自己的域名的,我认为我不需要FeedBurner 或Feedsky给的一个固定URL来作为FEED地址,也不需要统计功能。我对网络赚钱也没什么兴趣,所以不在乎网站访问量和FEED的订阅数,很长一段时间内,我都不使用FeedBurner 或Feedsky的统计服务,直到现在也不在Feed中放FeedBurner 或Feedsky投放的广告。后来,在今年三月份的时候,我正使劲推广OPENID,Feedsky的吕欣欣找到我,说以Feedsky响应支持OPENID(身份网址),并且希望我使用他们提供域名绑定服务,我就使用了。结果正好后来碰上我报道重庆最牛钉子户,我的网站的weblog目录被BLOCK,有一个用了三年的Feed失效了 ,国内的阅读器抓取不到 https://www.zuola.com/weblog/feedrss2.asp 的内容。幸好我有feed.zuola.com,我便改用上了http://feed.zuola.com 这个不受GFW影响的FEED地址。我甚至还得寸进尺的要求Feedsky把我的这个地址放在他们的绑定域名的示范案例中,这有助于我提高我的个人新闻台的“功力“,这是后话暂且不提。

我把Feed.zuola.com的DNS的A记录指向61.4.177.3就可以使用http://feed.zuola.com了,别人可以订阅这个地址,由于Feedsky的IP是国内的,不会被GFW,国内网友可以很方便的订阅到这个地址。即使如果feedsky被GFW的话,我就可以把IP指向另一个地址,不用再麻烦读者更改订阅地址了。要知道,也许有些网友本来就看我不顺眼,也许趁着你要求他改订阅地址的机会把你的RSS退订了,所以,千万不能让读者感到不便,不要给他们添麻烦。所以啊,使用Feedsky的免费的域名绑定FEED的功能,这是一种很健壮的方案,很安全,不用老麻烦别人换FEED订阅地址。我在这里推荐一下他们的服务和这个方案。

当然,如果遇到连Feedsky也罢工的情况怎么办呢?我昨天晚上的工作就是解决这个问题,提供了一个应急的预案。

我先找一个主机,让他能够在feedsky的IP61.4.177.3罢工的时候能替代它,更改feed.zuola.com 的IP到这个主机的IP上时能够让读者继续得到feed.zuola.com的RSS内容。这个工作一定要未雨先绸缪,到了Feedsky罢工的时候再做这个工作就会手忙脚乱了,趁着现在有时间,做一下这个工作是有必要的,万一feedsky出了事,我只要上网改一下feed.zuola.com这个二级域名的IP指向就是了。

用过Blogger.com的人就知道Blogger.com有一个FTP发布的功能。我从Blogger.com得到启发,觉得可以利用Ftp和crontab还有wget来实现RSS同步,我昨天晚上解决的也是一个利用FTP自动发布来实现RSS同步。主要用到了Linux下的sh和crontab。我其实也不懂Linux命令,但被逼得没办法,只好动脑筋解决这个问题。

解决方案如下:
介绍方法之前我说一下sh脚本,我个人认为sh脚本和我以前学过的DOS的批处理差不多,可以让电脑按一定的顺序做一些事情。
要实现这个必须有一个支持SSH的主机上的帐号。我是Dreamhost用户,当然有SSH帐号了。这个方法的思路就是:用wget下载FeedBurner的RSS内容,然后用sh脚本启动FTP命令把RSS内容上传到国内的空间,再用crontab定期运行SH脚本,这样就可以实现每隔十五分钟把RSS同步到国内了,这样就可以逃过GFW对FeedBurner的封锁了。这种方法对在FeedBurner有Feed广告发布的solidot或cnbeta有帮助,这样就不影响RSS页内的广告展示了。

autoftp.sh的内容:

#!/bin/sh
cd /home/zuola/Maildir/new/
rm *.*
cd /home/zuola/
rm index.xml
wget https://www.zuola.com/index.xml
ftp -i -n feed.zuola.com <<!
user zola fuckgfw&gcd
cd www
prompt
ascii
put index.xml
close
bye
!

上面代码的第一行#!/bin/sh是注明用什么来解释这段脚本,
第二行和第三行是为了删除crontab成功运行命令后系统发给用户的邮件
第三行和第四行是为了清除原来的rss,如果不删除的话,wget下来的文件不会覆盖原来的文件而生成index.xml.1
第五行是为了下载原始feed内容,如果你下载的是FeedBurner的内容,你可能要rename一下再push到另一个FTP站点里。
第六行,开始上传文件到feed.zuola.com的备用主机的,这里可使用域名或IP,最好使用IP,可省去域名解析过程。需要特别指出的是后面的<<!这段内容,这个叹号可以改为任意字母或单词,那bye后面的叹号也必须对应改。两个地方必须一致。这似乎是UNIX下的一个特性,如果没有这样处理一下,FTP的任务就不能完成。-n 这个参数是让FTP忽略.nertc文件,.netrc是中指定的主机名和密码之类的信息,ftp命令在执行时会去寻找.netrc的文件,如果此文件存在并且其中有FTP命令行,则会执行.netrc文件中命令行。
第七行是输入用户名,用户名和密码之间用空格间开.
第八行是进入某个目录
第九行是关闭提示
第十行是把传输类型改为ascii,不要改为binary了,RSS内容全是文字字符,不是二进制代码。
第十一行是上传文件
第十二行是关闭链接
第十三行是退出FTP程序。
然后把autoftp.sh的属性chmod 为755,我也不知道改成700能不能执行。
运行crontab -e后加一行
0-59/15 * * * * /home/zuola/autoftp.sh
我昨天晚上浪费很多时间,开始我设置15分钟执行一次,用的代码是
*/15 * * * * /home/zuola/autoftp.sh
结果这样不执行,最后我用笨办法一一排除才知道用0-59/15才是每隔15分钟执行的正确方法,也许在其它crontab中能执行,我在Draemhost中就只能用0-59/15这种表达方式。

对了,其实,FTP PUSH过程中用.netrc的方式有更高的安全性。我懒得去试验使用netrc来登录FTP了。已经解决自动FTP都已经很高兴了,要知道,自从我的网站被GFW之后,我为了让GFW的怀抱内的抓虾和Feedsky能获得到我的FEED内容,我都是用手工下载再用FTP上传的办法把FEED内容转移到防火长城内,用手工的办法来维持两份内容完全相同的FEED。现在我总算可以省下一道工序了。希望我的办法对其它BLOG建立在国外的Blogger有帮助作用,你也可以用这种办法为GFW内外的人们提供两个订阅地址。

用Fenng提供的办法也很“健壮”,只公布一个属于自己的域名下的订阅地址,然后用rewite temp方式用http 301重定向到feedsky或FeedBurner 提供的feed地址,同样可以享受到统计服务,也不怕天灾人祸。

我以前也介绍过“Feedburne的另类用法“,这个方法的具体描述在这(英文介绍)
健壮的FEED
使用这种方法后,别人订阅的是本机提供的Feed,实际获得的Feed却是重烧过的,万一FeedBurner被GFW屏蔽,还是可以直接获得本机Feed提供的内容。我早说过feedburner有被GFW的危险了,不知道那篇文章有没有帮助到人。

BTW:feedburner被GFW,我有点高兴,为啥?我心理阴暗呗,凭啥我一个人先受难?现在好了,有难大家当了,反对GFW不是我一个人的事了,也不会再有傻逼冒出来教训我:可怜之人必有可恨之处。妈的,似乎GFW来整我还是我的不对。现在这傻逼应该能明白“倾巢之下 焉有完卵”的意义了吧。还是那句话,弄点钱,有空起诉GFW去,这才是终极solution。

逼的。

关于 Zola

湖南省宁乡县煤炭坝镇居民,初中文化程度,无党派人士,已婚。喜欢旅行,喜欢网络上好玩的应用,喜欢黑莓手机,喜欢苹果设备,自称为艺术家,目前已经有多个行为艺术作品。略有薄名,已知的是被重庆市人民政府新闻办公室的互联网信息采集分析系统列入“特重”监控名单。2012年有幸被列在被称之为”活埋名单“的约200人”最高级别的维稳对象名单“里。
此条目发表在 软件评测 分类目录。将固定链接加入收藏夹。 1,441 人气值
市场和技术变化蕴含新的商机。

给托管了Feed的FeedBurner用户和Feedsky用户的solution》有 5 条评论

  1. dupola 说:

    对于有SSH账号的主机的朋友们来说,这个很实用。

  2. 第三行的rm *.*可以简单的用rm *代替。UNIX下文件系统没有扩展名这个概念的,所谓.后面的字符纯是为了方便人们识别用的。

  3. kaku 说:

    feedburner对中国互联网影响似乎没有想想中那样的严重。

    因为大部分读者是用GoogleReader 和抓虾等RSS阅读器,不受影响。

  4. seven 说:

    v2ex也加入了gfw列表,,惨。。

  5. Pingback 引用通告: 佐拉Ⓥ

发表评论

电子邮件地址不会被公开。 必填项已用*标注

你可能会看到这些提示:
1、与主题无关的留言请前往 留言簿 发表。
2、如果你想攻击具体的人,如果附上理性的证明过程就有可能被允许显示。
3、如果通过使用OpenID发表的留言没有马上显示,那是因为你没有曾被审核通过的留言,请不要尝试重复发表。
4、请不要发表长篇转载文章来证明你的观点,如果你有BLOG,请写在你的BLOG上,然后发送引用通知到本站相关日志。


*