使用shell脚本自定义实现选择登录ssh
在系统bin目录中建立两个脚本分别是pssh tssh
pssh
#!/usr/bin/expect -f
set ip [lindex $argv ]
set port [lindex $argv ]
set password [lindex $argv ]
set uname [lindex $argv 3 ]
set timeout
spawn ssh root@$ip -p$port
expect {
"*yes/no" { send "yes\r"; exp_continue}
"*password:" { send "$password\rclear\r\r\r请小心使用,您现在登录的服务器IP是:$ip,服务器名称是:$uname" }
}
interact
tssh
#!/bin/sh
echo "以下是你的所有服务器列表"
echo "1.A服务器 192.168.100.11"
echo "2.B服务器 192.168.100.12"
echo "3.C服务器 192.168.100.13"
echo "回车键退出"
echo "请输入对应数字,选择你要登录的服务器:\c"
read input
test $input = case $input in
)pssh 192.168.100.11 123456 A服务器;;
)pssh 192.168.100.12 admin B服务器;;
)pssh 192.168.100.13 root C服务器;;
esac
记得将给脚本加上可执行权限
然后在终端上执行tssh出现如下结果
以下是你的所有服务器列表
1.A服务器 192.168.100.11
2.B服务器 192.168.100.12
3.C服务器 192.168.100.13
回车键退出
请输入对应数字,选择你要登录的服务器:1
spawn ssh root@192.168.100.11 -p22
CentOS release 6.8 (Final)
Kernel \r on an \m
root@192.168.100.11's password:
Last login: Thu Aug 18 18:34:58 2016 from 192.168.100.2
Welcome to aliyun Elastic Compute Service!
[root@Official ~]#
使用shell脚本自定义实现选择登录ssh的更多相关文章
- 关于nagios系统下使用shell脚本自定义监控插件的编写以及没有实时监控图的问题
关于nagios系统下shell自定义监控插件的编写.脚本规范以及没有实时监控图的问题的解决办法 在自已编写监控插件之前我们首先需要对nagios监控原理有一定的了解 Nagios的功能是监控服务和主 ...
- 利用shell脚本做一个用户登录系统
效果图如下: #!/bin/bash# while truedocat << EOF//======================\\\\| 用户登录系统 |-------------- ...
- 防止shell脚本长时间执行导致ssh超时
在一些对安全性要求较高的场景下.ssh的超时时间是管理员预先设置好的,在闲置一段时间后ssh连接会自己主动断开. 这样的情况下假设通过ssh运行脚本,而脚本运行时间又比較长的话.会导致sshclien ...
- 关于nagios系统下使用shell脚本自定义监控插件的编写
在自已编写监控插件之前我们首先需要对nagios监控原理有一定的了解 Nagios的功能是监控服务和主机,但是他自身并不包括这部分功能,所有的监控.检测功能都是通过各种插件来完成的. 启动Nagios ...
- shell脚本实现无密码交互的SSH自动登陆
ssh连接远程主机时候询问密码,跟su.sudo命令的默认行为一样,是不从stdin读入数据的,据称是为安全考虑,但是有时候在脚本当中确实需要无人守值的登陆. 搜索一下不难找到类似的例子,使用expe ...
- Shell脚本字符串匹配及日常命令工具 - 用法总结(技巧指南)
Shell提供了很多字符串和文件处理的命令,如awk.expr.grep.sed等命令,还有文件的排序.合并和分割等一系列的操作命令.下面重点总结下Shell字符串处理.文本处理以及各类命令及函数用法 ...
- 常用的shell脚本(安全方向)
更多shell脚本参考:https://blog.51cto.com/zero01/2046242 1.拒绝密码撞库攻击的ip shell脚本:实现对登录主机失败10次以上的ip进行拒绝登录 #! / ...
- shell脚本中case的用法
shell脚本中case选择语句可以结合read指令实现比较好的交互应答操作,case接收到read指令传入的一个或多个参数,然后case根据参数做选择操作. case的语法如下 case $char ...
- shell脚本0——”一切皆文件“, 认识Shell
一.”一切皆文件“与“管道” 1)管道:grep foo /path/to/file | grep -n -k 3 | more 实际过程与我们直观认为的相反,最好通过实际过程理解.首先运行的是mor ...
随机推荐
- POJ 3264 RMQ裸题
POJ 3264 题意:n个数,问a[i]与a[j]间最大值与最小值之差. 总结:看了博客,记下了模板,但有些地方还是不太理解. #include<iostream> #include&l ...
- memcached and redis
http://hzp.iteye.com/blog/1872664 http://www.diggerplus.org/archives/190 Redis
- 你我公益模式系统APP开发
你我公益模式系统APP开发(微or电 158.1500.1390 小凡团队)你我公益系统开发,你我公益系统模式定制,你我公益系统开发软件,你我公益平台系统开发. 互联网世界无边无界,互联网创业者应敢于 ...
- Python学习笔记_Chapter 6定制数据对象
1. 有用的BIF a. 判断字符串中是否包含子字符串 if s_a in s_b: b. pop() 描述:从指定的列表位置删除并返回一个数据项. (sarah_name,sarah_dob)=l_ ...
- Llinux环境下编译并使用OpenCV
http://docs.opencv.org/2.4/doc/tutorials/introduction/linux_install/linux_install.html http://stacko ...
- 使用Angular构建单页面应用(SPA)
什么是SPA?看下图就是SPA: 下面说正经的,个人理解SPA就是整个应用只有一个页面,所有的交互都在一个页面完成,不需要在页面之间跳转. 单页面的好处是更快的响应速度,更流畅的用户体验,甚至和桌面应 ...
- Java 中值传递和引用传递 区分
详细参见 http://blog.csdn.net/zzp_403184692/article/details/8184751
- Spring AOP实现声明式事务代码分析
众所周知,Spring的声明式事务是利用AOP手段实现的,所谓"深入一点,你会更快乐",本文试图给出相关代码分析. AOP联盟为增强定义了org.aopalliance.aop.A ...
- java中修饰符及其用法
1. java中的修饰符 a. 权限修饰符 private,默认的,protected,public b. 状态修饰符 static,final c. 抽象修饰符 abstract 2. 类修饰符 p ...
- NOIP2011-普及组复赛-第一题-数字反转
题目描述 Description 给定一个整数,请将该数各个位上数字反转得到一个新数.新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2). 输入 ...