Access Amazon EC2 with SSH/putty/SecureCRT

这两天注册了Amazon AWS,体验了一下EC2S3,总体来说很强大,很便宜,绝对是创业公司的首选云产品。

注册AWS需要一张国际信用卡,在注册完毕的时候,跟Apple iTunes一样会测试性地划款1美元,但是最终会退回到你的信用卡里,不必担心。对于AWS新用户,Amazon很大方地给予了一项免费体验套餐。

S3就是一份云存储,可以认为跟Dropbox或者Box.net是一样的东西,可以直接通过AWS Management Console操作。在第一年的每个月都将免费获得5G存储空间,20,000个下载请求, 2,000个上传请求, 15GB下载流量和15GB上传流量。

对于EC2而言,在第一年的每个月都将获得如下图中的免费资源。包括750小时的EC2运行时间,这基本上就是一个月31天每天24小时的免费运行。15G流量,10G存储。本月没有使用完的不会累计到下个月。
AWS Free Tier

本文主要讲述EC2,在某种意义上你可以认为EC2就是虚拟主机,支持Linux和Windows系统,每个虚拟主机就是一个EC2 Instance,一个EC2帐号支持创建多个Instance,每个虚拟主机都是你个人独享的,你可以选择启动/停止/删除。在AWS Management Console中可以通过copy模板(成为Amazon Machine Image,AMI)来很简单地创建自己的EC2 Instance。

免费的EC2套餐支持的Instance硬件情况如下图。Instance Type是Micro,最多1颗CPU,613M内存,8G存储空间。

Free Tier EC2 Instance

创建完毕以后,在AWS Management Console的EC2页面下就可以选择启动该Instance。接下来就是本文的重点,该如何通过工具来连接该虚拟主机呢?

1. SSH
如果是Mac或者Linux用户,那么可以使用命令行方式的ssh,在EC2 Instance上点右键,选择Connect,会出现以下页面提示你该如何通过ssh连接此实例。

Connect Amazon EC2 using SSH

其中第2步提到的Private key file是在创建Instance的时候会要求你创建并下载的,该key file的名称可以随意。
第3步提到的chmod必须要执行,否则ssh时候会报key file权限错误。
在Example中提到的命令如下:

ssh -i kamuskey.pem root@ec2-50-17-88-48.compute-1.amazonaws.com

但是在实际使用中,发现使用root是无法登陆的,必须要使用ec2-user,也许这是免费用户的限制。

ssh -i kamuskey.pem ec2-user@ec2-50-17-88-48.compute-1.amazonaws.com

2. putty
在Windows下没有原生的ssh命令,所以可以选择免费的putty作为ssh工具。
观看AWS EC2 Console Tutorial视频,其中详细描述了该如何使用puttygen来生成putty格式的密钥,并且在putty中该如何设置使用该密钥。

3. SecureCRT
SecureCRT是Windows下(现在也有Mac版了)极受欢迎的ssh工具,它不是免费的。
我们需要通过ssh-keygen命令将AWS的密钥转换成SecureCRT支持的OpenSSH格式密钥,详细教程参看此处

用ec2-user登录。

login as: ec2-user
Authenticating with public key "imported-openssh-key"

       __|  __|_  )  Amazon Linux AMI
       _|  (     /     Beta
      ___|\___|___|

See /usr/share/doc/system-release-2011.02 for latest release notes. :-)
[ec2-user@ip-10-117-45-99 ~]$ pwd
/home/ec2-user 

主盘有8G存储空间,tmpfs只有300M,比较小。

[ec2-user@ip-10-117-45-99 ~]$ df -k
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/xvda1             8256952    901768   7271300  12% /
tmpfs                   305604        40    305564   1% /dev/shm

600M内存。

[ec2-user@ip-10-117-45-99 ~]$ free
             total       used       free     shared    buffers     cached
Mem:        611212      87612     523600          0       7032      40904
-/+ buffers/cache:      39676     571536
Swap:            0          0          0

虽然不可以用root登录,但是sudo命令可以正常使用。

[ec2-user@ip-10-117-45-99 ~]$ sudo ifconfig
eth0      Link encap:Ethernet  HWaddr 12:31:3D:03:22:99
          inet addr:10.117.45.99  Bcast:10.117.45.255  Mask:255.255.255.0
          inet6 addr: fe80::1031:3dff:fe03:2299/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:937 errors:0 dropped:0 overruns:0 frame:0
          TX packets:935 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:99655 (97.3 KiB)  TX bytes:139821 (136.5 KiB)
          Interrupt:9

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

Cheers.

Sync Twitter to Sina/QQ/Fanfou etc. with tw2other Step by Step

Update@2011-06-05
对于使用了以前版本(Tw2other Version 0.90.2及以前版本)的tw2other,需要更新到新版本(编写本文时最新版本为Tw2other Version 0.92)的朋友,请注意以下几点。
1. 请将以前目录中的tweet.id文件copy到新版目录中,否则配置完毕以后,tw2other会重新同步以前已经同步过的推文,导致新浪微博等同步站点产生刷屏。
2. config.php文件有了一些改动,建议使用新版的config-sample.php文件,将以前的内容再重新修改一遍。
3. 不要忘记修改新版的cron.php,填入tw2other的Web访问URL。
4. 需要在浏览器里面访问一次tw2other/sina和tw2other/qq,完成这两个微博的OAuth验证。如果之前已经做过腾讯微博OAuth认证,确认原来的oauth目录还在,那么就无需再次访问tw2other/qq来获取认证。

正文修改版@2011-06-05

本文中某些链接需要翻墙才能访问,不过在现在这个社会,不会翻墙应该都不好意思跟人打招呼吧。

如果你觉得本文有用,请在twitter中fo @cluries,他是本文中主角tw2other的作者,当然fo我@kamusis也很欢迎。

需求:
Twitter使用者,但是鉴于某些需要交流的朋友仍然定居在新浪微博/腾讯微博/饭否等国内微博站点的,希望能够通过某种方法将Twitter上的推文自动同步到这些国内微博中。

前提条件:
1. 有一个在墙外的支持php的虚拟主机,这是最方便的,比如Dreamhost/Linode。
2. 有Twitter帐号
3. 有你想要同步的国内微博帐号

步骤:
1. 下载Tw2other:主页下载地址

2. 将zip文件上传到虚拟主机的某个目录中,该目录应该可以在Web上被访问到,解压,会生成Tw2other目录。

3. 注册Twitter OAuth App
登录Twitter Dev站点。
选择Register an Application。
Application Name随意填写,最好比较特别一些,保证和其他人不重复。
Application Type选择默认的Browser。
Callback URL填写可以在Web访问的tw2other中callback.php的地址,比如http://yourdomain/Tw2other/callback.php。(注意:默认解压出来的目录是Tw2other,不是tw2other,大小写敏感的)
Default Access type选择Read & Write。
提交并成功以后,在新页面会显示Settings信息,其中Consumer keyConsumer secret在后面的配置中会用到,请记好。

4. 如果要同步到新浪微博,需要注册新浪微博API,如果不需要同步到新浪微博,可以跳过此步。
点击此处申请新浪微博AppKey。
申请完毕以后,需要创建一个新App。基本上与申请Twitter App的界面很像。我的设置参看下图。
Create Sina Weibo App

注册完毕以后,在应用状态页面可以看到App Key,在后面的配置中会用到,请记好。

Update@2011-06-05:在Tw2other 0.92版本以后,还将使用到App Secret。

5. 修改Tw2other配置
将config-sample.php改名为config.php。修改config.php中的以下项:

//注意,在Twitter注册Application的时候,Application Type这一项要选中Browser 
define ( 'CONSUMER_KEY', '此处填入上面注册的Twitter OAuth App的Consumer key' );
define ( 'CONSUMER_SECRET', '此处填入上面注册的Twitter OAuth App的Consumer secret' );

//填写tw2other的url,注意目录的大小写 。
define ( 'TW2OTHER_URL', '此处填入tw2other的URL比如http://yourdomain/Tw2other/' );

//填写为你自己申请的SINA API KEY和API Secret
define ( 'SINA_API_KEY', '此处填入上面注册的新浪微博 App的AppKey' );
define ( 'SINA_API_SECRET', '此处填入上面注册的新浪微博 App的AppSecret');

填入自己的新浪微博用户名和密码

Update@2011-06-05:在Tw2other 0.92版本以后,由于同步新浪微博也使用OAuth认证,因此不再需要在config.php中再填入新浪微博的用户名和密码了。但是需要如5.1中描述完成OAuth验证

5.1 完成新浪微博OAuth验证
在浏览器里访问tw2other下的sina目录,比如:http://yourdomain/Tw2other/sina/,跟随页面提示,将会带你去新浪完成认证。

6. 授权tw2other访问Twitter
在浏览器里面访问tw2other,就是访问在config.php中定义的TW2OTHER_URL。打开页面如下图。
tw2other

点击“Sign in with Twitter”,进入twitter授权页面,这个页面大家应该很熟悉了,点击“Allow”就OK了。
Twitter authoriza

7. 如果要同步到腾讯微博,那么需要使用腾讯OAuth,不同步到腾讯微博的,跳过这步。
在浏览器里面访问tw2other下的qq目录,比如:http://yourdomain/Tw2other/qq/
认证方式跟上一步认证twitter相仿,不再赘述。

在完成了twitter,新浪微博,腾讯微博三个OAuth认证以后,在oauth目录中将存在以下三个文件。该目录通常在tw2other目录的上两层目录中,../../oauth/,由config.php中的OAUTH_DIR参数定义。

$ ls -l
total 12
-rw-r--r-- 1 wiskyorg pg480077 218 2011-03-21 00:34 tw2other.oauth
-rw-r--r-- 1 wiskyorg pg480077 156 2011-06-05 08:58 tw2other_qq.oauth
-rw-r--r-- 1 wiskyorg pg480077 163 2011-06-05 08:47 tw2other_sina.oauth

8. 如果要同步到饭否,需要修改config.php,不同步饭否的,跳过此步。
填入自己的饭否用户名和密码:

"fanfou" => array ('username' => 'your_username', 'password' => 'your_password'

9. 其他还可以同步的微博包括嘀咕,豆瓣,follow5等都是需要修改config.php,填入用户名密码即可。

10. 最后一步,也是最重要的一步,需要设置tw2other被定期调用,这样才能完成定期同步的功能。
修改tw2other下的cron.php文件,填入tw2other的Web访问URL。

$url = "http://yourdomain/Tw2other/index.php";

修改完毕的cron.php文件必须被某种机制定期调用,才能完成定期同步的功能,在Linux主机中通常通过crontab来完成。

一般带cPanel的主机都自带crontab job设置界面,但是在Dreamhost的cPanel界面中设置只能最小设置到10分钟运行一次程序,这不满足我们的需求,我们想1分钟同步一次,而Dreamhost是支持ssh登录的,因此可以直接在命令行中设置。

在任意目录中创建crontab.tw文件,文件名随意,文件内容如下。

$ cat crontab.tw
# tw2other
MAILTO="your_mail_address"
*/1 * * * * /usr/local/bin/php /yourdirectory/Tw2other/cron.php

然后执行以下命令,将cron配置更新到crontab中。

$ crontab crontab.tw

在配置到crontab中之前,可以手工执行/usr/local/bin/php /yourdirectory/Tw2other/cron.php这个命令,看看是否能够同步成功。

注意:其中的MAILTO表示每次cron执行以后都会将结果发送到指定邮件地址,这是为了在一开始测试使用,在tw2other功能正常以后,将此行删除,否则每分钟收到一封邮件很恐怖。
在收到的邮件里,邮件内容是no update或者Can’t update now!都是正常的,前者表示没有需要同步的内容,后者表示在指定的间隔时间内多次更新了,tw2other的默认更新时间间隔是50秒,由config.php中的INTERVAL变量控制,通常我们会保持默认值50秒不变。

至此,整个tw2other算是设置完毕。

更多的资源请访问:tw2other主页 | 作者cluries主页 | 作者cluries Twitter ID

Post from Windows Live Writer

MSN Space(早已改名为Live Space)要关闭了,在微软宣布这个消息以后,全世界哗然。微软说,2011年1月以后用户将不再可以在MSN Space中发文,2011年3月完全关闭,在这之前希望所有用户迁移到wordpress.com上去,并且提供了迁移页面。

WordPress是很强大的blog发布系统,比起原先的MSN Space来说确实功能强大很多,而WordPress.com则是出品Wordpress的公司用该程序搭建起来的公共blog服务站点。但是非常可惜的是,不知道什么原因Wordpress.com在国内是被GFW掉的,也就是如果不翻墙你可能连迁移都无法正常完成,即使正常完成了,日后你的blog基本上无法被国内的亲朋好友们访问。这对于中国用户来说是一个很SB的解决方案。据说,微软已经意识到这个问题,将会给中国的MSN Space用户提供另外一套方案,但是国内有什么好的blog提供商?新浪?腾讯?网易?算了吧,还是转到自己管理的虚拟主机上的Wordpress更靠谱一些。

具体方法参看Eygle帮他老婆迁移MSN Space的步骤

该方法简单高效,但是只能迁移文章和留言,另外有一个问题就是迁移完毕以后在Wordpress后台管理界面中(仅仅是在后台中,前台页面一切正常)看到的Comments似乎是双倍的,按时间排序的很奇怪(如果有朋友知道解决方法或者原因请告知),当然这不是大问题,多几个新留言之后这些问题就看不见了。

Google Latitude



夫妻结婚以后,签订协议,双方都要在Google Latitude中允许对方查看自己的Location,这样新时代的夫妻应该会减少很多互相撒谎的机会吧。:)

Update WordPress to 2.7.1

昨天将一直在使用的Wordpress2.1版本升级到了2.7.1,升级过程非常简单。

1. 禁用所有的plugin,以防升级以后不兼容导致问题。

2. 登陆到dreamhost的shell中。

wget http://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz
cp -rpf ./wordpress/* ./wordpress_directory

此处注意备份自己使用的theme相关文件,特别是如果使用的是经过自己修改的default theme,那么这些文件将被覆盖,务必备份出来。

3. 登陆wordpress后台管理界面,提示需要升级数据库,按照提示一路next下去,升级完毕。

新版本的Wordpress自动支持Tag,并且使用了很久的Ultimate Tag Warrior 3插件也不再兼容,因此需要将UTW中的tag导入到Wordpress中,这很容易实现。在后台管理界面中,Tools -> Import -> Ultimate Tag Warrior,一共4步,非常简单。

新版本的Tools -> Export可以将所有已经发布的文章下载为一个xml文件,这对于大家备份自己的blog又多了一个选择。

放弃了之前的三栏页面,选择了iNove,这是一个很优秀的仿Mac页面布局,并且天生支持Gravatar和Quote Comment,这两个插件就不再需要了,另外UTW也不再需要,后台插件数减少到7个。

Custom Smilies:在回复栏前添加自定义的笑容图标,比如 😀
Dean’s Permalinks Migration:重定向不同格式的permalinks
Google Analytics:在站点中自动添加Google Analytics代码
Google XML Sitemaps:自动生成易于Google抓取的站点结构图
Spam Karma 2:垃圾留言屏蔽
WP-DBManager:提供多样的Wordpress后台MySQL数据库的管理
WP-PageNavi:提供文章分页
WP-Syntax:提供代码高亮

Google Chrome!

Google正式推出了自己的浏览器 – Google Chrome

按照Google的解释,这是一个全新开发的多进程的浏览器,每个Tab都跑在自己的Structure上,一个Tab如果因为某些原因崩溃了,不会影响到其它的Tab。

除了IE, Firefox, Opera,现在我们又有了Google Chrome,一个全新的开源浏览器产品?并不是全新的,但是它融合了多方的技术,在浏览器的关于里面,我们可以看到:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US)
AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27
Safari/525.13

不管如何,这只是一个测试版,问题不少。

1. 太简洁了。。。简洁到我不知道收藏夹在哪里?即使我选择导入Firefox的收藏夹,我仍然不能在Chrome的任何地方找到它们。

2. 即使我选择了英文版本,但是在我的机器上,仍然显示了中文版本,而且我不知道在哪里可以修改,并且中文版本中默认的浏览器字体仍然不敢恭维。

3. 多进程的浏览器说,一个Tab崩溃了,其它Tab没事儿,但是Chrome在我试用的十几分钟内,却有一次强健到即使我点关闭按钮,它也仍然自顾自地运行在我的桌面上,唯一的办法是,Task Manager里面直接Kill掉它。。。这。。。强健的有些过头了。

4. 如果我在Chrome里面点击“Get bookmark Add-ons”,会把我扔到Firefox的Addons下载界面去,但是我无论如何也不知道该如何在Chrome里面把Addons安装上,点击下载,它就真的下载了xpi文件,我尝试用Chrome打开这个xpi文件,结果它又重新帮我copy了一份同样的xpi。

最后还是有好话的,启动速度确实快,页面渲染速度也确实快,闪电一样,只是不知道等什么时候装完十几个Addons以后会怎样,要知道FF3刚下载安装以后,启动速度也是惊人的。那时候如果Chrome还能闪电一样打开,我立刻抛弃Firefox,但是现在,我还是先把Chrome放到脑后吧。

哦,还有,将某个网页创建成桌面快捷方式,也是挺好玩的一件事情,一个单独的Google Reader界面和一个单独的Gmail界面,完美的Desktop Application和Web Application的结合。

Google Guys,尽快地release一个更少问题的版本吧。面对FF3,还有一段路需要追赶。

Update@2008-9-4
今天继续试用Chrome。
1. 对于它的速度实在是没有任何可以诟病的地方。
2. 没有Tab的控制,无处设置新的Tab创建在什么地方,无法设置地址栏中输入地址是要启动一个新的tab还是刷新当前Tab,也无法设定鼠标双击Tab页标签就可以关闭Tab页。表明推出的有些仓促,想当年谷歌输入法推出的时候就已经是一个很成熟的产品了。
3. 关于导入收藏夹的问题,我想是因为我的Firefox是Portable版本的,所以Chrome找不到他的具体位置,但是很明显应该设置一个可以从HTML文件中带入收藏夹的选项。
4. 内存占用可绝对不低,每个打开的新页面都是一个chrome进程,那些习惯一下子开十几个窗口的兄弟们要掂量一下自己的机器了。

看到一则比较有趣的评析。

Chrome将主要从哪一款浏览器手中抢夺用户?

《华尔街日报》专栏作家Kara Swisher撰文称,Google选在这一时刻发布浏览器是由于担心微软的IE8损害自身的搜索和广告业务。因此,Google将很乐于见到IE用户转向Chrome。不过,实际上火狐浏览器目前的用户更容易转向Chrome,因为火狐浏览器用户对浏览器的性能更重视,他们原本就是从IE转向火狐的。预计火狐浏览器的占有率将会下降。

Update@2008-9-6
忽然间看着快捷工具栏里面酷似腾讯浏览器图标的GC图标有些烦躁,心想,FF3挺好的,不支持网银就用Avant Browser,要这个劳什子GC作甚?于是手一抖,删除之。GC在我这里的颇似Opera,估计以后也是屡次安装屡次卸载的遭遇。

Zoho

Zoho应该说是最著名的线上办公软件提供商了,Zoho Writer感觉一般,但是Zoho Sheet确实功能强大,他的产品线还包括Zoho Show(类似于Powerpoint),Zoho Wiki,Zoho Notebook,Zoho Meeting(类似于Outlook),Zoho Planner(类似于Google Calendar),Zoho Chat,Zoho Creator(线上程序创建,可以创建带数据库的小型网站)。

下面是Zoho Chat提供的可以嵌在网页内的Shouterbox。

另外,这里有20多个在线操作系统(WebOS),有兴趣的去玩玩吧。

淘宝挂了?

今天晚上开始,淘宝就只能登录首页,其它一切操作都不行,总是说页面找不到。
已经持续了好几个小时了,各位在taobao的兄弟们,能告诉我些内幕吗? 🙂

Laurent Schneider in China

在自己的Dreamhost主机上安装了PHProxy,通过这个可以访问被GFW挡在门外的国外站点,之所以这样做的起因是在公司里面我可以浏览Laurent Schneider的blog,但是回家以后却无法访问,这让我很窝火。虽然通过Google Reader可以订阅,但是无法查看留言也是一件憋屈的事情。

Laurent Schneider是瑞士的Oracle OCM,Oracle ACE,在他的个人blog上时常有一些有趣的技术文章。本来跟他商量是在我的DH主机上镜像一个他的站点,但是由于他使用的godaddy主机只提供FTP访问,因此并不能直接从internet上访问他的wordpress后台读取的mysql数据库,因此也没办法mirror一个完全独立的站点。

感谢Fenng告诉我有PHProxy这个东西,很好用。现在可以通过这里直接访问Laurent Schneider的blog。