之前写的大多数python文章比较粗糙,以后尽量写的深入一点。


1.脚本内容

[root@python ~]# cat blj_login.py 

#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
Date:2017-03-11
Author:Bob
'''

import os
ip_dict = {}
n = 0
with open('blj_ip.txt', 'r') as f:
    while 1:
        n += 1
        #遍历文本的每一行内容,长度为0时退出
        line = f.readline()
        if len(line) == 0:
            break
        #必须把n转换成str类型,否则在if那段输入的时候会出现死循环
        ip_dict[str(n)] = line
#print ip_dict

while 1:
    try:
        #对字典的key进行排列,初始化为一个列表
        ip_list = sorted(ip_dict.iteritems(), key=lambda x:x[0])
        for k, v in ip_list:
            #打印列表的key和value
            print '{}: {}'.format(k,v),
            #print '%s: %s' % (k,v),
        option = raw_input("Please select server:")
        if option in ip_dict.keys():
            print ip_dict[option]
            user = raw_input("Please input username:").strip()
            cmd = 'ssh {}@{}'.format(user, ip_dict[option])
            #cmd = 'ssh %s@%s ' % (user, ip_dict[option])
            os.system(cmd)
        elif option == "exit":
            break
        else:
            print 'wrong number input!'
    except ValueError, e:
        print 'error' + str(e)


2.存放服务器ip的文本

[root@python ~]# cat blj_ip.txt 

10.1.1.1
10.1.1.2
192.168.182.128


3.验证登录堡垒机的过程

[root@python ~]# python blj_login.py 

1: 10.1.1.1
2: 10.1.1.2
3: 192.168.182.128

Please select server:6
wrong number input!
1: 10.1.1.1
2: 10.1.1.2
3: 192.168.182.128

Please select server:3
192.168.182.128

Please input username:root
The authenticity of host '192.168.182.128 (192.168.182.128)' can't be established.
RSA key fingerprint is d3:b8:fa:f0:84:48:d9:1d:49:28:0b:d7:61:54:5b:a7.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.182.128' (RSA) to the list of known hosts.
[email protected]'s password: 
Last login: Sat Mar 11 20:08:25 2017 from 192.168.182.1

[root@localhost ~]# exit
logout
Connection to 192.168.182.128 closed.
1: 10.1.1.1
2: 10.1.1.2
3: 192.168.182.128
Please select server:exit