三无环境(无显示器无固定IP地址无串口线)访问RPI的方法

  • gtrjolin1986
  • LV6工程师
  • |      2013-07-17 09:28:46
  • 浏览量 4655
  • 回复:18

买了RPI之后发现一个问题,家里、公司都没显示器,电视老人还要看,手里就一个笔记本。在公司使用的话,网络环境是DHCP,每次启动获得的IP都不一样,无显示器和键盘,SSH都不知道连哪儿。

不过毕竟玩儿Linux也十多年了,很快思考了一下,梳理了一个思路:

1、每次机器启动的时候自动执行个脚本,把DHCP获取的IP发到我的邮箱;
2、SSH直接联这个IP即可。

原以为很简单,没想到还是折腾了一番功夫。

1、现在淘宝买了根USB转串口的线(连接方式见我另一个帖子),先把RPI连上。







2、写了个超级简单的脚本,得到IP,然后发现Raspbian里面没有sendmail服务,不能直接mail。

3、郁闷ing,考虑给它装个sendmail,又觉得有点大材小用。发现raspbian目录下有python,于是想还是搞个python的脚本。
4、上网一搜,发现竟然有现成的,http://elinux.org/RPi_Email_IP_On_Boot_Debian,于是按照里面写了个mail.py的脚本
5、这下省事了,按照里面的步骤做完,测试了下mail.py这个脚本ok,于是把它加入rc.local里面
6、麻烦来了,调试了半天,rc.local里面的脚本似乎总是不执行。


于是又跟踪进去看了看,发现脚本无错误,似乎raspbian在启动这个rc.local这个脚本的时候还未获得IP地址和环境变量,因此这条路不通。可是也有些网友说他们的脚本执行正常,不知道究竟为什么。


后来在国外的网站上看到有人说,rc.local不能保证每次都正常执行,比较稳妥的方法是在/etc/init.d里面执行。这点也请后来的网友指点了。


7、于是把上面的脚本挪到/etc/init.d/目录下,
sudo chmod 755 /etc/init.d/mail.py
sudo /etc/init.d/mail.py start


测试成功,邮箱收到邮件,然后


sudo update-rc.d mail.py defaults把脚本加入启动清单。重启,成功。


这样每次RPI启动都会给我的邮箱发一个通知,告诉我当前获得的IP地址,然后就可以ssh连接上去。


如果要删除这个服务,
sudo update-rc.d -f mail.py remove
即可。


通过这种方式,无论我是在公司还是在家,只要把RPI连上路由器,就可以从其他机器访问到它,不需要串口线,不需要显示器,也不用设置固定的IP地址,是最节省成本的一个方式。

  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:18
yhxc8979797 2016-07-02
菜鸟来学习了,谢谢分享...
0   回复
举报
发布
test12345 2016-06-30
這個可以參考,謝謝分享!
0   回复
举报
发布
天行客旅 2015-04-14
好好好
0   回复
举报
发布
sonic 2014-03-08

写得不赖,里面以后不少东西可以应用,算是一个简单的基本入门模版。可用,可持续!支持!



奥特飞猪蛋这次厉害哦~

0   回复
举报
发布
hello8kitty 2014-03-06
看看!!!!!!!!!!!
0   回复
举报
发布
小邓 2014-03-05
kjkjhh
0   回复
举报
发布
kongweitong 2014-02-08
0   回复
举报
发布
很自然的宿命 2013-12-15
谢谢分享
0   回复
举报
发布
dimanche 2013-12-14
good!!!!!!
0   回复
举报
发布
ck 2013-12-09
看看
0   回复
举报
发布
查看更多
x
收藏成功!点击 我的收藏 查看收藏的全部帖子