• 幕客老师召集小伙伴
  • 运维高手36项修炼
  • python自动化运维项目实战
  • nginx从入门到实战
  • 阿里云与Centos7实战

SecureCRT实现一个登录运行python脚本

我们在登录linux服务器时,如果登录需要通过跳板机,或者执行很多相同的命令。

典型的例子,如果需要跳转到很多组的机器上,可以通过python的脚本实现。脚本如下:

# $language = "python"
# $interface = "1.0"

#跳板机配置
STEP_HOST = "跳板"
STEP_USER = "用户"
STEP_PASSWD = "密码"


#目标服务器配置
USER = "目标服务器用户"
PASSWD = "密码"

HOSTS_MAP = {
'api': [
'10.10.28.141',
'10.10.28.142',
'10.10.28.143',
'10.10.28.144',
'10.10.28.145',
'10.10.28.146', ],

'sdk_api': [
'10.10.2.11',
'10.10.2.12',
'10.10.2.13',
'10.10.2.14', ],

'sdk_user': [
'10.10.2.21',
'10.10.2.22',
'10.10.2.23',
'10.10.2.24', ],

}


def main():
#select hosts
host_info = '\n'.join(HOSTS_MAP.keys())
#创建选择对话框
host_key = crt.Dialog.Prompt(
"选择服务器组:\n %s" % host_info,
"Login", "", False,)

for host in HOSTS_MAP.get(host_key,):

#登陆到跳板机
cmd = "/SSH2 /L %s /PASSWORD %s /C 3DES /M MD5 %s" % (
STEP_USER, STEP_PASSWD, STEP_HOST
)
tab = crt.Session.ConnectInTab(cmd)
tab.Screen.WaitForString("Select server:")
tab.Screen.Send("1\n")

#登陆具体机器
tab.Screen.WaitForString("bash-4.1$")
crt.Sleep(1000)
ssh_cmd = "ssh %s@%s\n" % (USER, host)
tab.Screen.Send(ssh_cmd)
waiting_for_string = "%s@%s's password:" % (USER, host)
tab.Screen.WaitForString(waiting_for_string)
tab.Screen.Send(PASSWD)

main()

SecureCRT实现一个登录运行python脚本

Pingbacks已打开。

引用地址

暂无评论

发表评论