#!/usr/bin/env python
#coding=utf8 '''
用于多机器间相互跳转,如有新机器加入,需要更新ip_list文件
''' from prettytable import PrettyTable
from sh import cat
import os
import re class GO(): def __init__(self):
self.base_path = "/home/xxx/"
self.ip_list = (cat(self.base_path + "ip_list")).split("#") def servers_ip_list(self):
infos = []
self.ip_list.remove("\n")
for i in self.ip_list:
print i
info = {}
info["lan_ip"] = i.split("|")[2]
info["wan_ip"] = i.split("|")[1]
info["modules"] = i.split("|")[0]
infos.append(info) print infos
return infos def go(self):
servers_ip_list = self.servers_ip_list()
infos = PrettyTable(["编号", "模块名称", "内网ip", "外网ip"])
infos.align = "l" for index,i in enumerate(servers_ip_list, 1):
if i["modules"] != "":
infos.add_row([index, i["modules"], i["lan_ip"], i["wan_ip"]])
print infos
in_ip = raw_input("请输入内网IP或编号,进行连接 :") # 如果输入的是编号, 需要先查询对应IP
if not re.match(r"^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$", in_ip):
if int(in_ip) <= len(servers_ip_list) and int(in_ip) > 0:
in_ip = servers_ip_list[int(in_ip)-1]["lan_ip"]
else:
print "ip_list文件中没有该主机信息, 请更新"
exit(1) for i in self.ip_list:
if in_ip == i.split("|")[2]:
try:
port = i.split("|")[3]
except Exception:
print "ip_list文件没有该主机对应的端口, 请更新"
exit(1) cmd = "ssh -p %s -o 'StrictHostKeyChecking no' %s" % (port, in_ip)
os.system(cmd) if __name__ == "__main__":
go = GO()
go.go()
  • ip_list文件
test-1|12.12.12.12|10.10.10.10|22#test-2|12.12.12.13|10.10.10.11|22#test-3|12.12.12.14|10.10.10.12|22#

linux 多主机间快速跳转脚本的更多相关文章

  1. ctags-vim代码间快速跳转

    ctags-vim代码间快速跳转 1.说明 在Linux环境下使用vim进行驱动程序编写和维护的时候,会经常需要调用Linux内核的函数或宏定义,在驱动程序和kernel代码之间频繁跳转是件很繁琐的事 ...

  2. [转帖]Linux下主机间文件传输命令

    Linux下主机间文件传输命令 https://yq.aliyun.com/articles/53631?spm=a2c4e.11155435.0.0.580ce8ef4Q9uzs   SCP命令: ...

  3. 【Linux学习笔记】用nc实现两台主机间的文件传输(不需要输密码)

    通常,可以用scp完成两台主机间的文件传输任务,但在主机间未建立信任关系的情况下,scp每次都需要输入密码,用起来感觉不是很方便,之前这篇笔记介绍过不用输入密码执行脚本或传输文件的方法,但对于一些临时 ...

  4. Linux make menuconfig查找并快速跳转指定驱动选项

    /********************************************************************** * Linux make menuconfig查找并快速 ...

  5. scp 可以在 2个 linux 主机间复制文件

    Linux scp命令用于Linux之间复制文件和目录,具体如何使用这里好好介绍一下,从本地复制到远程.从远程复制到本地是两种使用方式.这里有具体举例: ================== Linu ...

  6. linux下expect环境安装以及简单脚本测试

    expect是交互性很强的脚本语言,可以帮助运维人员实现批量管理成千上百台服务器操作,是一款很实用的批量部署工具!expect依赖于tcl,而linux系统里一般不自带安装tcl,所以需要手动安装 下 ...

  7. apache用户认证、默认主机、301跳转

    我更正论坛一个同学帖子(今天坑我一下午):原文http://www.apelearn.com/bbs/foru ... 3%BB%A7%C8%CF%D6%A4 apache用户认证.默认主机.301跳 ...

  8. 挂载Linux云主机硬盘到本地计算机

      现在移动硬盘已经是每个人的生活必需品了,当然网络也是我们生活的必需品,我们现在就是要用网络存储代替硬盘存储,当然再实际使用过程中需要考虑到以下两个问题: 网络延迟 云主机磁盘IO   以上两个关键 ...

  9. 让你快速学会Shell脚本

    Shell脚本,就是利用Shell的命令解释的功能,对一个纯文本的文件进行解析,然后执行这些功能,也可以说Shell脚本就是一系列命令的集合.Shell可以直接使用在win/Unix/Linux上面, ...

随机推荐

  1. [转] css3制作图形大全

    Square   #square {     width: 100px;     height: 100px;     background: red; } Rectangle   #rectangl ...

  2. Mybatis 一对多 配置文件

    当一个Entity中包含的属性有对象和对象集合时,用mybatis映射时要在Entity中添加一个字段来唯一标识当前的Entity对象.否则查询的Entity集合中的对象会被覆盖掉. 如下一个POJO ...

  3. XF 列表视图绑定集合

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...

  4. 用Delphi将数据导入到Excel并控制Excel

    一.调用Excel的方法:一般情况下有两种方法调用Excel:1.  直接使用Delphi自带的组件:在Form中分别放入ExcelApplication, ExcelWorkbook和ExcelWo ...

  5. 【Python】Camera拍照休眠唤醒测试

    #!/usr/bin/python # -*- coding: UTF-8 -*- import os import sys import time rebootCount = int(input(& ...

  6. murmurhash2算法 和 DJB Hash算法是目前最流行的hash算法

    murmurhash2算法 和 DJB Hash算法是目前最流行的hash算法 1.DJB HASH算法 1 2 3 4 5 6 7 8 9 10 11 /* the famous DJB Hash ...

  7. 微信小程序把玩(十四)button组件

    原文:微信小程序把玩(十四)button组件 button按钮用的算是最普遍的组件之一. 主要属性: wxml <!--按钮默认样式,点击事件--> <button type=&qu ...

  8. Android零基础入门第67节:RecyclerView数据动态更新

    列表的数据往往会跟随业务逻辑不断刷新,所呈现出来的数据需要动态更新,那么RecyclerView是如何动态更新数据的呢? 之前在学习ListView的时候如果数据改变,需要调用notifyDataSe ...

  9. 解决xp越来越慢的办法(其中有些自动备份的功能)

    1.减少磁盘空间占用2.终止不常用的系统服务3.安全问题4.另外一些技巧 首先问一下,你是不是很想激活XP,不...准确的说你是不是想在ms的站上能够升级.如果答案是肯定的话,那我们就先来探讨一下安装 ...

  10. Python 2, Python 3, Stretch & Buster

    Python 2.7的终止支持时间为2020年,现在已经是2015年了,然而Debian中仍然有大量软件包是基于Python 2的实现.Debian的维护者开始认真讨论淘汰Python 2.开发者Pa ...