通过短信在树莓派上运行终端命令

本文由 极客范 - 陈舸 翻译自 Steven Hickson。欢迎加入极客翻译小组,同我们一道翻译与分享。转载请参见文章末尾处的要求。

如果你家里有一台24小时在线的计算机,比如一台家用服务器,那么你很可能需要通过终端运行一些命令来控制它,比如启动进程、定位问题等等。DIY极客Steve想出了一种方法,可以通过发送手机短信来在树莓派上运行终端命令。

ku-xlarge

 

Steve使用了Google Voice服务,通过一个简单的程序每分钟检查一次发送的信息。如果他通过手机发送的短信以“cmd”开头,他的目标计算机就会运行之后的命令。简单的说,这套机制允许Steve通过SMS来SSH到他的电脑上。你可能不会用这种方式来完成一些复杂的任务,但是当你不在家又希望能控制电脑时,这种方法就非常实用。

附上Steve的博文:

下面这个程序能让你通过短信息来控制计算机,把它当成SSH over短信就好了。设计这个是为了能快速智能化地查看未读的Google Voice信息。如果传送了特定的参数,树莓派就会运行你发送的命令并返回结果。这个程序需要用到curl和libboost1.50-regex。安装脚本会自动安装curl和boost-regex。

注意:该程序能工作在任何Linux系统上,但我是在树莓派上使用它的,因此如果你使用的是别的平台,那么你就要自行编译了(记得要修改Makefile中的flags)。

github上的稳定版本地址:

https://github.com/StevenHickson/PiAUISuite

这里可以找到副本源:

http://stevenhickson-code.googlecode.com/svn/trunk/AUI/TextCommand/

很不幸的是Google Voice并没有可用的API,所以我只能自己写了。我觉得这个这个页面上有不错的参考,可是它们都无法正常工作,所以我只有依据这些参考自己实现。安装脚本会自动加载它们,你可以自由地免费使用,只要你引用我的名字并遵循GPLv3协议就可以了。

这个程序通过cron来每隔一分钟运行一次脚本。脚本检查你未读的消息,并使用curl来确保满足某些安全参数。如果出现了特定的参数,比如一个合法的电话号码以及命令,那么程序就会运行你输入的命令。命令执行后的结果将通过短信发送给你。这个程序不能同交互式的命令如more和man一起工作。

photo (1)

安装步骤(需要git)

升级步骤

程序代码中还包含有一些其他的脚本,你可以忽略它们。脚本中会询问你有关用户名的一些细节。这就是你的Google Voice用户名,密码,关键字以及合法的号码。

你的Google Voice用户名就是你的e-mail,比如:John.Doe@gmail.com

密码就是你的Google Voice密码: ThisIsntMyPassword

关键字就是合法的命令标识,用来表示发送给计算机的命令。比如,我选择的命令标识是Cmd,所以我在手机上编辑:Cmd ls,发送后就可以得到当前目录的统计信息。至于那个合法的电话号码,这就是你希望Google Voice接收发来的命令的手机号码(注,不是你的Google Voice号码!)你必须输入国家编码,但不带符号‘+’,比如:1555333xxxx

设置完之后就应该能正常工作了。

注意,我修复了安装脚本中的几个bug,已经重新提交了。所以确保你拿到的是最新版哦。

 

 



原文链接: Steven Hickson 翻译: 极客范 - 陈舸

译文链接: http://www.geekfan.net/2299/

[ 转载请保留原文出处、译者和译文链接。]

陈舸
通信人,从事网络设备开发。技术方向:Linux/VxWorks、网络协议、C/C++,尤爱Python。热爱互联网,移动应用,开源软件。译有《算法精解:C语言描述》,《Linux/UNIX系统编程手册》(下册)新浪微博:@bigsh1p

4 评论

  1. Y.S  /  2013 年 7 月 12 日, 上午 9:58 回复

    既然能24小时在线,又何必用短信呢?动态域名+端口映射能够直接使用专业SSH客户端。

    Thumb up 0 Thumb down 0

    • Tink  /  2013 年 7 月 12 日, 下午 3:26 回复

      没有你想的这么简单,移动端的SSH客户端体验很差

      Thumb up 2 Thumb down 1

  2. benhuan  /  2013 年 7 月 22 日, 下午 8:45 回复

    这东西做远程遥控很high

    Thumb up 0 Thumb down 0

  3. Alexfree  /  2013 年 9 月 12 日, 上午 12:37 回复

    GoogleVoice 怎么用??。。。

    Thumb up 0 Thumb down 0

发表评论

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

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">