相信你遇到过这样的场景,在浏览器网页中点击QQ图标咨询,就能唤起本机的装的qq或tim,下载百度网盘的资源的时候,点击链接浏览器会启动本地百度云进行下载。
 
最近因为项目需要,也要实现类似的操作,不过需求是在界面版的Linux系统上,网上大多数的教程都是Windows版的内容,Linux的讲解比较少,下面我们就一起来看下,Web调用Linux客户端remmina实现ssh、sftp或vnc登录的过程,从编写执行到打包安装的一条龙服务是怎么实现的。
 
let's start~

先来大概了解下原理,web界面如何通过浏览器隔山打牛调用到本地的remmina客户端,而且不存在浏览器的兼容问题 ,是怎么实现的。
 
在浏览器的地址栏上, 除了我们常见的协议有http, https,ftp外,我们还可以使用 自定义协议即URL protocal,通过在安装应用程序时,向系统注册私有自定义协议,然后就可以在网页端通过url的方式打开本地应用程序。在网页文本中它的常见格式为:
 <a href="protocolName://数据参数字符串" ></a>

例如:

<a href="thunder://QUFmdHA6Ly95Z2R5ODp5Z2R5OEB5ZzQ1Lm..."/>打开迅雷</a>
<a href="baiduyunguanjia://evoked-download/?bddxxxx">打开百度云盘</a>
<a href="tencent://AddContact/?uin=1079190033xxx">打开腾讯QQ</a>

可以直接在浏览器地址栏中输入tencent://123 或者baiduyunguanjia://123,进行实验

有效果  

还不错哦

如图发现可以唤起一个打开应用程序的弹窗时,说明你的windows系统中就已经注册好该协议了,win+R输入regedit打开系统注册表,在计算机\HKEY_CLASSES_ROOT\路径下可以找到对应的协议名, 协议名文件夹下指示了该协议启动的应用程序的路径,URL Protocol协议就在那里:

而Linux系统是怎样的呢?
linux系统是创建一个Desktop Entry(启动器配置文件),该文件以".desktop"为后缀名的桌面快捷方式,这些 Desktop Entry 文件通常被存放在 /usr/share/applications/目录下,

在*.desktop文件里面定义了应用程序的路径后,然后再注册到 /share/applications/mimeapps.list中,在浏览器里面输入相应的Desktop Entry 文件的名字就可以启动相对应的应用程序啦。

具体实现步骤 如下:
1.cd /usr/share/applications/ 进入到应用目录,创建 myapp.desktop文件
#vi myapp.desktop
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false #软件打开时是否启动终端
Exec=/usr/bin/myapp %u #应用程序执行路径修改 %u为接收参数
Name=运维助手 #快捷方式显示的名称
Comment=运维助手
Icon= #应用程序显示的图标路径
Categories=Application;#应用程序在菜单中显示的类别
MimeType=x-scheme-handler/myapp; #应用类型

 2.执行命令:

update-desktop-database

 3.注册自定义协议到mimeapps.list:

xdg-mime default myapp.desktop x-scheme-handler/myapp

 4.编写myapp的脚本给执行权限

#!/bin/bash
touch 1.txt

 以上完成了一半,接下来就是对remmina的操作

1.在Linux桌面上打开remmina,保存一个ssh连接

添加完成后可以看到保存后生成的配置文件存放路径

2.打开终端到该路径下,

输入remmina -h命令可以看到,通过-c 参数可以连接该配置文件,
输入命令,
#格式为 remmina  -c  当前路径/*.remmina
remmina -c /root/.local/share/remmina/1561189454729.remmina

 然后就可以连接到远程服务器了

此时,你可能已经想到了,将该命令放入到我们之前建的shell脚本myapp中,再通过浏览器触发,就可以实现web调用linux客户端运维登录了,可以先高兴好一小会儿了,毕竟革命已经完成了一大步了。
高兴完后,我们将需要处理一些复杂的细节,
后续的部分将在第二部分应用编写篇为你娓娓道来。

Web调用Linux客户端remmina运维的更多相关文章

  1. Linux轻量级自动运维工具-Ansible浅析【转】

    转自 Linux轻量级自动运维工具-Ansible浅析 - ~微风~ - 51CTO技术博客http://weiweidefeng.blog.51cto.com/1957995/1895261 Ans ...

  2. 关于Linux主流框架运维工作剖析

    LINUX是开源的,这也是最主要的原因,想学Windows,Unix对不起,没有源代码.也正是因为这样,LINUX才能够像雪球一样越滚越大,发展到现在这种规模.今天将为大家带来关于Linux主流框架运 ...

  3. Linux轻量级自动运维工具-Ansible浅析 转

    转自 Linux轻量级自动运维工具-Ansible浅析 - ~微风~ - 51CTO技术博客http://weiweidefeng.blog.51cto.com/1957995/1895261 Ans ...

  4. Linux云自动化运维第四课

    Linux云自动化运维第四课 一.vim 1.vim光标移动 1)在命令模式下 :数字  ###移动到指定的行 G  ###文件最后一行 gg  ###文件第一行 2)在插入模式下 i  ###光标所 ...

  5. Linux云自动化运维第五课

    Linux云自动化运维第五课 一.进程定义 进程就是cpu未完成的工作 二.ps命令 ps a ###关于当前环境的所有进程 x ###与当前环境无关的所有进程 f ###显示进程从属关系 e ### ...

  6. Linux云自动化运维第三课

    Linux云自动化运维第三课 一.正则表达式 1.匹配符 * ###匹配0到任意字符 ? ###匹配单个字符 [[:alpha:]] ###匹配单个字母 [[:lower:]] ###匹配单个小写字母 ...

  7. 老男孩Linux.shell.RHCE运维初中高级50G附解压密码

    学习Linux,好的教程.使学习事半功倍! 老男孩Linux.shell.RHCE运维初中高级 下载地址: http://pan.baidu.com/s/1hsQOb2W 密码: h4hs 解压密码: ...

  8. 工作中常用Linux命令--服务器运维

    工作中常用Linux命令--服务器运维 lsof查看端口使用情况 lsof -i:8080更多lsof命令使用说明:http://www.cnblogs.com/peida/archive/2013/ ...

  9. Linux主流架构运维工作简单剖析

    转载:http://wgkgood.blog.51cto.com/1192594/1586259 随着IT运维的不断发展,尤其的Linux的飞速发展,越来越多的企业开始使用Linux操作系统平台,例如 ...

随机推荐

  1. codeforces 816 B. Karen and Coffee(思维)

    题目链接:http://codeforces.com/contest/816/problem/B 题意:给出n个范围,q个查询问查询区间出现多少点在给出的n个范围中至少占了k次 题解:很显然的一道题目 ...

  2. 【Nginx】实现负载均衡的几种方式

    要理解负载均衡,必须先搞清楚正向代理和反向代理. 注: 正向代理,代理的是用户. 反向代理,代理的是服务器 什么是负载均衡 当一台服务器的单位时间内的访问量越大时,服务器压力就越大,大到超过自身承受能 ...

  3. 一文看尽Java-多线程概念

    一.前言 主要讲解一下多线程中的一些概念,本文之后就开始针对JUC包的设计开始解读: 二.概念     线程安全     1.存在共享数据(临界资源):2.多个线程同时操作共享数据:只有同时出现这两种 ...

  4. 携程PMO--小罗说敏捷之WIP限制在制品

    转自本人运营的公众号“ 携程技术中心PMO”(ID:cso_pmo)         WIP是什么?   WIP(work in progress)指的就是工作中心在制品区.在经过部分制程之后,还没有 ...

  5. Flink文章测试

    Flink文章测试 Flink文章测试 Flink文章测试 Flink文章测试 Flink文章测试 Flink文章测试 Flink文章测试 Flink文章测试 Flink文章测试 Flink文章测试 ...

  6. virtualbox下给centos7固定ip

    在virtualbox桥接连接模式下,固定虚拟机的ip. 修改/etc/sysconfig/network-scripts/ifcfg-ens33文件 添加如下信息: 保存 重启网卡: sudo se ...

  7. oracle用imp导入dmp文件

    oracle命令行登录 sqlplus 用户名/密码 创建用户 create user 用户 identified by 密码 ; 创建表空间 create tablespace 表空间名 dataf ...

  8. [系列] go-gin-api 路由中间件 - Jaeger 链路追踪(五)

    概述 首先同步下项目概况: 上篇文章分享了,路由中间件 - 捕获异常,这篇文章咱们分享:路由中间件 - Jaeger 链路追踪. 啥是链路追踪? 我理解链路追踪其实是为微服务架构提供服务的,当一个请求 ...

  9. CCF 模拟试题——出现次数最多的数 官方答案解析及自己写的正确答案

    前几天知道的CCF计算机职业资格认证考试,觉得好像比软考含金量高一些,就去了解了一下,做了模拟试题中的 “出现次数最多的数” 这道题,我的算法和官方答案算法不同,个人觉得觉得官方的好一点,没那么繁琐, ...

  10. Dubbo Spring Cloud 之 HTTP 实战

    上一篇文章<Spring Cloud Alibaba | Dubbo 与 Spring Cloud 完美结合>我们介绍了Dubbo Spring Cloud的基本使用,使用的服务中心为Sp ...