前段时间做一个hadoop+Spark的性能监控页面时,需要一个web控制台远程登陆到master节点上去,后来发现这方面资料太少,于是自己参照着零散的东西修修改改,终于做出了一个简单的web shell,记录一下以免时间长了忘记。大概像这个样子的:
这样就可以在网页上直接访问linux服务器了,初衷是用来远程关闭正在运行的spark任务的,做发现出来之后一般的linux命令都能执行。
首先讲一下后台实现:
1.建立ssh连接,并定义一些流用于收发命令,由于篇幅只贴关键代码,源码在csdn里面。
2.其次定义是一个接收命令和返回结果的方法,因为linux每次返回一行,所以我这里存入List返回给前台处理。
3.页面后台调用前面初始化方法和执行命令的方法,这个方法叫getLinux(),主要是和前台页面交互。我在这个方法命名为linux,即@RequestMapping("/linux"),前台就可以通过linux.do识别了。
4.接下来看页面,页面很简单:主要是定义
列表来接收命令,因为发送的命令占一行,回来的结果为一行或多行,所以
列表很合适。
这是原来的页面中增加的一个模态框,通过按钮触发。当然也可以新建一个页面专门来做控制台,代码都一样,如图:
5.页面调用后台代码的部分都是一样的,linux.do就会调转到前面提到的getLinux()方法。
ok, 本文主要从后台到前台的顺序讲了如何实现一个简单web shell。
完。
我准备写一个公众号技术博客,回顾我学大数据以来的个人经验,希望和大家一起每天进步一点点!刚刚开始写,请大家多多支持,如有不足之处多多包含,最后多多关注哈哈哈。
领取专属 10元无门槛券
私享最新 技术干货