tech memo: September 2007 存档
前段时间,Feedburner的feeds.feedburner.com二级域名被封,导致 Greatnews、周博通等桌面版的RSS阅读器无法抓取 Feedburner 烧制的 Feed 地址的内容,只能把订阅地址改为网站本身的原始 Feed,GoogleReader、抓虾等Web版RSS阅读器则不受影响。但对于使用了Feedburner服务的Blog网站本身来说,则有了不大不小的麻烦——最明显的就是网站上的Feedburner订阅数统计图标无法显示。
因为Feedburner订阅数统计图标的内容来自feeds.feedburner.com,一般格式为http://feeds.feedburner.com/~fc/用户名?bg=99CCFF&fg=444444&anim=1。Fenng给出的办法是在后台做一个 crontab 脚本,定期 wget 那个订阅数字图片到本地来,然后直接引用本地图片地址。当然,前提是你的网站是建在国外虚拟主机上的。我的Blog空间是DH的,前提条件自然是满足,但是我连 crontab 是什么都不知道。。。没办法,硬着头皮在网上找了一些关于 crontab 的资料(推荐 Dreamhost 的官方Wiki),恶补了一下,接着又参考了zuola 的办法,写了一个.sh脚本并上传到空间的根目录,并更改其权限为755:
#!/bin/sh
wget -nc http://feeds.feedburner.com/~fc/ZhouHongquan?bg=99CCFF&am p;fg=444444&anim=1
cp -f /home/hongquan/ZhouHongquan?bg=99CCFF /home/hongquan/zhouhongquan.com/feedburnercount.gif
其实也就是很简单的三行代码:第一行#!/bin/sh是注明用 shell 来解释这段脚本;第二行执行 wget 命令下载 Feedburner 的订阅数图片内容到本地的根目录下,-nc 选项表示不要覆盖存在的文件或使用.#前缀;第三行则用复制命令 cp 把订阅数图片的内容复制到域名所在的目录,-f 表示若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。
有了 .sh 脚本,接下来就用 crontab 创建程序来定期执行 .sh 脚本。用PuTTY登录到DH空间,输入 crontab -e 进入crontab编辑界面,输入 30 * * * * /home/hongquan/auto.sh >/dev/null 2>&1 (表示每小时的第30分钟执行一次auto.sh脚本,格式说明请参见这里),需要注意的是,crontab 创建的每条JOB执行完毕之后,系统会自动将输出发送邮件给当前系统用户,所以每条 JOB 命令后面进行重定向处理是非常必要的: >/dev/null 2>&1 ,最后按 Crtl + O 保存,并按Ctrl + X 退出。
生活点滴还给出了另外一个解决的办法,经试用,也能够正常工作。
除了订阅数图标无法显示的问题,如果你激活了 Feedburner 的 FeedFlare 服务。并把代码放到了单篇日志中,则会严重影响网页显示的速度,所以最好是关闭掉这项服务。





