一种带拉杆箱的远程主机登陆方法及系统与流程

文档序号:13427477阅读:304来源:国知局

本发明涉及服务器的技术领域,具体涉及到一种带拉杆箱的远程主机登陆方法及系统。



背景技术:

在软件研发活动中,对软件开发人员来说,登陆远程主机几乎是每天都会重复数十遍的事情。在客户端为unix/linux系统的终端(terminal)上,如果要登陆远程主机,传统的方法就是使用ssh<用户名>@<主机名>的方式,等待登陆过程中出现输入password:的提示符,然后输入密码完成登陆。如果要将本地的一个工具包拷贝到远程主机上,需要使用scp<工具包><用户名>@<主机名>:<目标工具包名>进行拷贝,同样需要等待password:的提示符,然后输入密码完成拷贝。因此,将本地工具包部署到远程主机上去然后再登陆需要输入两次密码。此外,程序员将密码输错无法完成拷贝以及登录的情况屡见不鲜,这无疑将导致工作效率低下。

为了解决密码输入问题,现有的办法无非有两种。第一,在将客户端用户的ssh公钥拷贝到远程主机上从而设置成无密码登陆模式;第二,在客户端用户的ssh默认配置文件中设置长连接(比如720个小时),一旦登陆过远程主机,下一次就无需再输入密码。但是,这两种方法只是解决了因为密码输入错误带来的重复劳动问题,但无法将拷贝工具包和登陆过程合并在一起从而提高软件开发人员的工作效率。

因此,为了解决上述问题,亟需一种更加优化的技术方案。



技术实现要素:

基于上述问题,本发明提出了一种带拉杆箱的远程主机登陆方法及系统。

在登陆之前,将拉杆箱中的工具包拷贝到远程主机,然后登陆到远程主机。一旦完成登陆,将远程主机的控制权交还给发起登陆操作的软件开发人员。在登陆会话关闭(软件开发人员显式输入exit或者通过gui关闭登陆的terminal或者远程主机被重启)之后,拷贝到远程主机的工具包将被自动删除。

本发明本质上是过程改进,将工具包拷贝(通过scp)和远程登陆(通过ssh)这两个过程有机结合起来,并在登陆完成后设置自动清理工具包的钩子程序(hook),保证登陆会话被(正常或异常)关闭后,远程主机上不存在着登陆过程中产生的数据垃圾(这里主要是指拷贝到远程主机的工具包)。对于软件开发人员来说,这无疑将大大提高其从事软件开发及调试的效率,从而为受雇企业节省大量的人力成本。

本发明提供如下技术方案:

一方面,本发明提供了一种带拉杆箱的远程主机登陆方法,包括:

步骤101,验证用户名和密码的正确性,若不正确,则报错;

步骤102,在本地创建一个本地临时目录;

步骤103,查询拉杆箱对应的环境变量值,若环境变量值对应的目录里有bashrc文件,则在此基础上创建钩子程序及别名并添加到全局bashrc文件,若环境变量值对应的目录里无bashrc文件,则在全局bashrc文件创建钩子程序,将所述全局bashrc文件存放到所述本地临时目录中;

步骤104,将拉杆箱里的所有文件拷贝到所述本地临时目录中;

步骤105,将所述本地临时目录拷贝到远程主机的临时目录下,拷贝结束后删除所述本地临时目录;

步骤106,使用ssh登陆到远程主机,一旦完成登陆,执行关键代码。

其中,所述步骤105为使用scp命令将本地临时目录拷贝到远程主机的临时目录下。

其中,在登陆到远程主机之后将终端控制权交还给软件开发人员。

其中,所述关键代码为钩子程序注入的关键代码。

优选的,还包括若登陆会话关闭,则拷贝到远程主机的临时目录下拉杆箱里的所有文件被钩子程序删除。

另外,本发明还提供了一种带拉杆箱的远程主机登陆系统,所述系统包括:

验证模块,用于验证用户名和密码的正确性,若不正确,则报错;

准备模块,用于在本地创建一个本地临时目录;

加钩模块,用于查询拉杆箱对应的环境变量值,若环境变量值对应的目录里有bashrc文件,则在此基础上创建钩子程序及别名并添加到全局bashrc文件,若环境变量值对应的目录里无bashrc文件,则在全局bashrc文件创建钩子程序,将所述全局bashrc文件存放到所述本地临时目录中拷贝模块,用于将拉杆箱里的所有文件拷贝到所述本地临时目录中,将所述本地临时目录拷贝到远程主机的临时目录下,拷贝结束后删除所述本地临时目录;

登陆模块,用于使用ssh登陆到远程主机,一旦完成登陆,执行关键代码。

其中,所述拷贝模块使用scp命令将本地的临时目录拷贝到远程主机的临时目录下。

其中,在登陆到远程主机之后将终端控制权交还给软件开发人员。

其中,所述关键代码为钩子程序注入的关键代码。

优选的,所述系统还包括若登陆会话关闭,则拷贝到远程主机的临时目录下拉杆箱里的所有文件被钩子程序删除。

本发明提供了一种带拉杆箱的远程主机登陆方法及系统,将存放在拉杆箱里的工具包拷贝到远程主机,然后使用ssh登陆到远程主机,一旦登陆成功后,设置一个钩子程序自动清理存放在远程主机上的工具包,把远程主机终端控制权交还给软件开发人员,本发明的技术方案避免了软件开发人员重复大量的手工劳动,将开发人员的从低产出的手工劳动中解放出来,让开发人员能在远程主机上使用与本地相同或类似的开发环境,从而提高工作效率,降低公司的人力成本。

附图说明

图1是本发明的方法流程图。

图2是本发明的操作过程图。

图3是本发明的系统结构框图。

具体实施方式

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

本发明采用tcl/expect语言进行算法描述。具体实现可使用expect或者python支持的pexect。

一方面,本发明的实施方式提供了一种带拉杆箱的远程主机登陆方法,附图1为本发明的方法流程图,包括:

步骤101,验证用户名和密码的正确性,若不正确,则报错;

拉杆箱名称为login_dbox,其值是一个系统目录;

步骤102,在本地创建一个本地临时目录;

在本地创建一个临时目录login_tmpdir;

步骤103,查询拉杆箱对应的环境变量值,若环境变量值对应的目录里有bashrc文件,则在此基础上创建钩子程序及别名并添加到全局bashrc文件,若环境变量值对应的目录里无bashrc文件,则在全局bashrc文件创建钩子程序,将所述全局bashrc文件存放到所述本地临时目录中;

下面的代码使用tcl实现,直接操作全局的bashrc文件,第二条为设置钩子程序的bash代码:puts$fd"aliasvlogin=$::dst_vlogin"puts$fd"trap'cd/tmp&&rm-rf$::dst_tmpdir'exit";

步骤104,将拉杆箱里的所有文件拷贝到所述本地临时目录中;

将拉杆箱里的所有文件拷贝到所述临时目录login_tmpdir中;

步骤105,将所述本地临时目录拷贝到远程主机的临时目录下,拷贝结束后删除所述本地临时目录;

使用scp将本地的临时目录login_tmpdir拷贝到远程主机的/tmp临时目录下,拷贝结束后删除本地临时目录login_tmpdir;

步骤106,使用ssh登陆到远程主机,一旦完成登陆,执行关键代码。

执行下面的关键代码:send"execbash\r"send"source$bashrc&&rm-f$bashrc\r";执行钩子程序注入,若登陆会话关闭,则拷贝到远程主机的临时目录下拉杆箱里的所有文件被钩子程序删除。

然后使用expect支持的interact命令将终端控制权交还给软件开发人员。

至此,本发明的带拉杆箱的远程主机登陆方法的完整过程就结束了。因为我们在远程主机上设置并启动了钩子程序,所以在任何情况下,只要登陆会话被关闭,拷贝到远程主机的工具包都会被自动删除掉,避免了垃圾数据的产生。另外,因为我们也设置了登陆工具的别名并将环境变量login_dbox保存到了全局的bashrc中,所以从远程主机1跳转到远程主机2,拉杆箱里的工具包也将被如法炮制地传递到远程主机2上去。而且,这一过程可以无限地重复下去。

如附图2的操作过程图所示,具体实现完成后的程序名为vlogin,本地主机名为idorax9,远程主机名为idorax0;典型的登陆执行过程附图2所示。

从附图2中,可以看到存放在拉杆箱login_dbox(=/home/veli/vlogindbox)中的工具包toolkit.tar.gz被拷贝到远程主机idorax0的过程,这一过程正是本发明最为突出的技术亮点。

本发明提供了一种带拉杆箱的远程主机登陆方法,将存放在拉杆箱里的工具包拷贝到远程主机,然后使用ssh登陆到远程主机,一旦登陆成功后,设置一个钩子程序自动清理存放在远程主机上的工具包,把远程主机终端控制权交还给软件开发人员,本发明的技术方案避免了软件开发人员重复大量的手工劳动,将开发人员的从低产出的手工劳动中解放出来,让开发人员能在远程主机上使用与本地相同或类似的开发环境,从而提高工作效率,降低公司的人力成本。

另一方面,本发明的实施方式提供了一种带拉杆箱的远程主机登陆系统,附图3为本发明的系统结构框图,所述系统包括:

验证模块201,用于验证用户名和密码的正确性,若不正确,则报错;

拉杆箱名称为login_dbox,其值是一个系统目录;

准备模块202,用于在本地创建一个本地临时目录;

在本地创建一个临时目录login_tmpdir;

加钩模块203,用于查询拉杆箱对应的环境变量值,若环境变量值对应的目录里有bashrc文件,则在此基础上创建钩子程序及别名并添加到全局bashrc文件,若环境变量值对应的目录里无bashrc文件,则在全局bashrc文件创建钩子程序,将所述全局bashrc文件存放到所述本地临时目录中;

下面的代码使用tcl实现,直接操作全局的bashrc文件,第二条为设置钩子程序的bash代码:puts$fd"aliasvlogin=$::dst_vlogin"puts$fd"trap'cd/tmp&&rm-rf$::dst_tmpdir'exit";

拷贝模块204,用于将拉杆箱里的所有文件拷贝到所述本地临时目录中,将所述本地临时目录拷贝到远程主机的临时目录下,拷贝结束后删除所述本地临时目录;

将拉杆箱里的所有文件拷贝到所述临时目录login_tmpdir中;

使用scp将本地的临时目录login_tmpdir拷贝到远程主机的/tmp临时目录下,拷贝结束后删除本地临时目录login_tmpdir;

登陆模块205,用于使用ssh登陆到远程主机,一旦完成登陆,执行关键代码。

执行下面的关键代码:send"execbash\r"send"source$bashrc&&rm-f$bashrc\r";执行钩子程序注入,若登陆会话关闭,则拷贝到远程主机的临时目录下拉杆箱里的所有文件被钩子程序删除。

然后使用expect支持的interact命令将终端控制权交还给软件开发人员。

至此,本发明的带拉杆箱的远程主机登陆系统结构已经完整呈现。因为我们在远程主机上设置并启动了钩子程序,所以在任何情况下,只要登陆会话被关闭,拷贝到远程主机的工具包都会被自动删除掉,避免了垃圾数据的产生。另外,因为我们也设置了登陆工具的别名并将环境变量login_dbox保存到了全局的bashrc中,所以从远程主机1跳转到远程主机2,拉杆箱里的工具包也将被如法炮制地传递到远程主机2上去。而且,这一过程可以无限地重复下去。

如附图2的操作过程图所示,具体实现完成后的程序名为vlogin,本地主机名为idorax9,远程主机名为idorax0;典型的登陆执行过程附图2所示。

从附图2中,可以看到存放在拉杆箱login_dbox(=/home/veli/vlogindbox)中的工具包toolkit.tar.gz被拷贝到远程主机idorax0的过程,这一过程正是本发明最为突出的技术亮点。

本发明提供了一种带拉杆箱的远程主机登陆系统,将存放在拉杆箱里的工具包拷贝到远程主机,然后使用ssh登陆到远程主机,一旦登陆成功后,设置一个钩子程序自动清理存放在远程主机上的工具包,把远程主机终端控制权交还给软件开发人员,本发明的技术方案避免了软件开发人员重复大量的手工劳动,将开发人员的从低产出的手工劳动中解放出来,让开发人员能在远程主机上使用与本地相同或类似的开发环境,从而提高工作效率,降低公司的人力成本。

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1