Android监控服务器进程

相信很多同学遇到过在服务器上跑的程序被掐了或者莫名奇妙挂了的情况,特别是长时间运行的程序,如deep learning的训练,白白浪费一天可不好玩。因此我想了各种姿势监控我的程序,比如进程一旦消失就发邮件通知等等,感觉姿势不够美妙,于是最近鼓捣了一下,发现了神器。


Termux

Termux简直太吊了,简直就是一个五脏俱全的debian,你敢信他有apt?也就是可以安装ssh、python、git…..,所有的包可以看github。帅爆了,当时我就把那个弱鸡QPython删了。既然有了python,那能做的事就多了去了。当然也可以使用pip,只是像numpy的库依赖C库的包装不了。一言不合我就在安卓上装了个Flask。来看个Termux跑在Nexus 5上的截图,依次是当计算器的Python,跑了Flask的Python和Flask的网页。

termux flask flask2

 

帅的不能自理。是不是觉得配色有点难看,没事,可以付2.49刀买个Termux:Style,虽然我觉得改个配色应该很简单。这个开发者太有节操了,要钱的都是无关紧要的,不要钱的像Termux,Termux:API都很要紧,为了表示感谢,我买了个Termux:Widget(当然后面也能用到)。ssh就用 apt install openssh 就行了,然后跟普通Linux操作一样设置无密码登录就行了。Easy!备份手机能就变得很方便了,使用神器rsync,就一句命令如 rsync -aXvh --delete -P /sdcard/ "ssh -p port" user@ip:backup ,而且由于是增量备份,只有第一次备份可能需要花一点时间。总之,Termux真是相见恨晚。


定时SSH执行远程命令

回到正事,我要监控服务器,必须能跟服务器通信啊。我不想开个端口,比如HTTP比较容易,但增加一个端口就增加了风险,因此选择SSH来执行远程命令是坠吼的。我经常用的Serverauditor好是好,但是不能命令行运行啊,那不是坑爹吗。或者用CyanogenMod(2016/12/24 网站关闭卧槽!),更像Linux一点,直接内置ssh,但我还是想用原生android的。另外更重要的是要定时啊,类似cron的功能,这个得借助另一个神器Tasker完成。Tasker就强大了,有JuiceSSH的Tasker插件,tm的,太贵了。还可以用connectbot,然后让tasker发起intent,参考此处彼处。我觉得还是Termux靠谱,这时Termux:Widget就派上用场了,通过Tasker调用Secure Settings来执行Termux:Widget中的脚本。好像有点复杂,可以看看作者怎么说(关于发送短信到电脑)。整个Tasker流程如下,关键是执行Shell脚本那步,我是设定每60分钟执行一次,错误就发送通知,还播放雷姆声音提示哦!

tasker

还有很多tasker能做的事情,比如用雷姆声音提醒喝水,记录自己的轨迹(wifi信息),转发短信,自动回复微信等,非常帅!花点钱是值得的。如果你有一个女朋友,可以发送短信给她让她提醒你,用termux-api就能从命令行发送短信了,详见termux-api

 

 

最近高产似母猪啊,要把之前没更的全补回来。