首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux一键登录服务器

之前每次登录服务器都是这样的。

1.先登录堡垒机

2.选择服务器

3.输入服务器名或编号

4.先切换到root用户

5.再切换到hdfs用户

具体登录过程如下图(红框的位置需要手动输入内容):

如此这样的话,每一次登录服务器,进行hadoop操作,都需要进行5步操作,如果密码不记得,还得拷贝密码,甚是麻烦,也非常的耽误时间,影响工作效率。

今天研究了一些Linux的expect自动登录功能,非常好用,在这里可以大显身手。先贴一下代码,其中的秘钥,用户名和密码需要替换成自己的。还有expect的内容和send的内容也要根据自己的实际情况进行替换。

#!/usr/bin/expect

set user username

set host 12.26.2.9

set password RFCFk8FCFk8

spawn ssh -i /Users/username/work/username.pem $user@$host

expect "*passphrase*"

send "$password\r"

if { $argc == 0 } {

set servername hadoop001

}

if { $argc == 1 } {

#puts "not two"

set servername [lindex $argv 0]

}

expect "*ID>:*"

send "$servername\n"

expect "*ops@hadoop*"

send "sudo su -\n"

expect "*root@hadoop*"

send "su - hdfs\n"

interact

expect eof

$argc == 0的意思是如果没有参数,那么就默认登录hadoop001服务器。

$argc == 1的意思是如果有一个参数,就去第一个参数[lindex $argv 0]作为登录服务器名。

将上边的内容修改后保存为/usr/local/bin/lg文件,可能还需要使切换到root用户(Mac用户使用sudo su -切换到root用户)。

修改权限

```

chmod 777 /usr/local/bin/lg

```

然后使用直接在命令行使用lg进行登录:

下边是具体的效果:

整个过程就输入了一个lg,然后回车就可以了,是不是很方便。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180905G0CMXR00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券