文档章节

shell及python脚本方式登录服务器

yangjianzhou
 yangjianzhou
发布于 07/20 22:39
字数 345
阅读 36
收藏 4

一、问题

在工作过程中,经常会遇见需要登录服务器,并且因为安全的原因,需要使用交互的方式登录,而且shell、python在工作中也经常用到,并且可以提供交互的功能。都是利用了expect、spawn、send、interact等命令。

二、实现

1、shell方式

#!/usr/bin/expect -f
set timeout 1
spawn ssh -A iwill@192.168.0.101
expect "Password:"
send "123456\r"
interact

2、python方式

#! /usr/bin/python

import sys
import pexpect

def servers_name():
   servers = ['sample_app_one','sample_app_two']
   return servers

def sample_app_one_ips():
    tcs_ips = ['192.168.0.101','192.168.0.102']
    return tcs_ips

def sample_app_two_ips():
    bsn_ips = ['192.168.0.101','192.168.0.102']
    return bsn_ips

def connect_server(ip):
    cmd="ssh root@{}".format(ip)
    child = pexpect.spawn(cmd)
    child.expect ('password:')     
    child.sendline('123456')
    child.interact()

def main():
 print "server list show below : "
 servers=servers_name()
 index = 0
 for server in servers:
    index = index + 1
    print '%d : %s'%(index,server)
 show_msg='please select server(1...%d) : '%index
 server_index = input(show_msg)
 server_name=servers[server_index-1]
 print 'the %s ips are below : '%server_name
 server_ips_cmd= 'ips=%s_ips()'%server_name
 exec(server_ips_cmd)
 #print server_ips_cmd
 #ips=tcs_dubbo_ips()
 index = 0
 for ip in ips :
     index = index +1
     print '%d : %s'%(index,ip)
 show_msg='please select ip(i...%d) : '%index
 ip_index = input(show_msg)
 ip=ips[ip_index-1]
 connect_server(ip)

if __name__=="__main__":
   main()

三、扩展

写这些脚本,可以锻炼自己的脚本能力。

 

© 著作权归作者所有

共有 人打赏支持
yangjianzhou
粉丝 15
博文 10
码字总数 16049
作品 0
闵行
程序员
shell与python判断文件是否存在

  日常运维中,我们会存在每日备份的现象,针对这一种情况可能会要求监控文件是否存在。比较笨拙的方法就是登录上服务器到某个路径下查看文件是否存在,除此之外,我们可以利用shell或者p...

南部小城y
08/06
0
0
1. 文本处理加速(利用多核优势进行文本的并列处理)

人生苦短,我用Python!然后学学使用Shell。 任务要求 在写爬虫或是做文本数据清洗的时候,有的时候发现我们用python写的处理程序会遇到速度过慢的问题,造成这个的原因可能如下: Python 自...

北静王
08/13
0
0
[雪峰磁针石博客]python3快速入门教程11命令行自动化工具与pexpect

[雪峰磁针石博客]python3快速入门教程 命令行自动化与pexpect 简介 Pexpect 是一个用来启动交互式命令行子程序并对其进行自动控制的 Python 工具模块。 Pexpect 可以用来和像 ssh、ftp、pas...

Python测试开发人工智能
07/25
0
0
Jenkins安装与配置(Flask+Gunicorn及React)

服务器:阿里云 操作系统:Ubuntu16.04 后台:python,Flask+gunicorn 前端:react 安装Java Jenkins依赖java,因此必须先安装java。 输入 出现版本号则安装成功。 安装Jenkins 如果遇到下面...

刘开心_8a6c
10/09
0
0
websocket shell

Websocket Shell ======================= web目录可以部署在任意的http服务器上,打开页面的浏览器需要跟server.py运行服务器在一个内网,因为他们需要建立socket链接 客户端的JavaScript通...

逐浪人
2015/07/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

谈谈如何学Linux和它在如今社会的影响

昨天,还在农耕脑力社会,今天已经人工智能技术、大数据、信息技术的科技社会了,高速开展并迅速浸透到当今科技社会的各个方面,Linux日益成为人们信息时代的到来,更加考验我们对信息的处理程...

linuxCool
10分钟前
0
0
SpringBoot内置定时任务

springBoot内置定时任务 应用场景 业务监控,定时发送邮件,定时删除缓存等等。 Spring Boot 内置定时 pom 包配置 <dependencies> <dependency> <groupId>org.springframework.b......

Grittan
15分钟前
2
1
在 Linux 中基于密钥认证的 SSH的配置方法

什么是基于 SSH 密钥的认证? 众所周知,Secure Shell,又称 SSH,是允许你通过无安全网络(例如 Internet)和远程系统之间安全访问/通信的加密网络协议。无论何时使用 SSH 在无安全网络上发...

linuxprobe16
32分钟前
0
0
sed命令

10月17日任务 9.4/9.5 sed 1.sed(上)(下) 1.sed 匹配功能 #sed -n ‘/root/’ p test.txt 将带有root的内容打印出来 同时支持 . * 还有 + 不过需要脱译,或者在前面选项加r。 支持{ } 支...

hhpuppy
43分钟前
1
0
day120-20181018-英语流利阅读-待学习

千禧一代注意了:一大波公司正向你的钱包袭来 Daniel 2018-10-18 1.今日导读 这几年,你有没有发现,不管是在微信公众号还是在抖音,有越来越多的商家和品牌开始玩起了网络用语和表情包,从卖...

飞鱼说编程
52分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部