美文网首页
自动登入服务器脚本

自动登入服务器脚本

作者: woniu95 | 来源:发表于2018-08-18 22:07 被阅读0次

    在平时,我们使用ssh来登入服务器的时候都是这样的:

    ssh @ xxx.xxx.xxx.xxx
    

    然后等待连接,接着输入密码,这样就登入成功了。

    但是,对于一个爱偷懒的程序员来说,每次都要输入ssh xxx,然后接着输入密码,而且密码还不是明文显示的,密码稍微复杂一点的话还是比较容易写出错的。

    这时候就想到了expect命令,我们可以用它来处理我们的自动登入的流程,脚本如下:

    #!/usr/bin/expect
    set timeout 3
    //①
    spawn ssh root@***.***.***.***
    //②
    expect "*password*"
    //③
    send "***\r"
    //④
    interact
    

    ①用spawn来启动新的线程,接下来的expect和send命令都是用来和这个线程进行交互的

    ②expect用来匹配spawn输出是否包含password,如果有就返回,没有就等待,等待的时候是设置的timeout

    ③send:当expect匹配到相应的结果是,使用send命令进行发送引号之中的东西,\r用来发送enter,也就是我们输入命令之后需要按一下enter。

    ④interact是把控制权交给控制台,也就是交还给我们。

    我们把我们这个脚本命名为login.sh,放在/usr/local/shell下,于是,我们以后登入服务器就可以使用这个命令:

    sh /usr/local/shell/login.sh
    

    这样是不是比以前方便多了,也不用担心密码输入错误,但是,这样还是有点麻烦,每次都需要输入一大串的命令。这时候,我们就想到了我们的别名,通过使用别名我们可以轻松的做到在任何页面输入自己定制的命令,在~/.bash_profile文件中加入一行命令:

    alias sshTest=/usr/local/shell/login.sh
    

    alias后面跟的是我们自定义的命令,随便输入什么都可以,保存之后再执行:

     source ~/.bash_profile
    

    之后,在任何的目录下,我们都可以使用sshTest命令来进行连接服务器操作了。

    相关文章

      网友评论

          本文标题:自动登入服务器脚本

          本文链接:https://www.haomeiwen.com/subject/qorfiftx.html