服务器sh脚本自动登录(mac)
一不小心自己也有三台虚拟机了,每次都ssh -username@ip 然后在输入密码着实蛋疼,第一反应时脚本登录,但是作为脚本是逐行执行命令,是无法做到等待一个密码提示出现在输入密码的。查到mac下可以通过expect(具体是spawn,expect,send三条功能),win类似也有expect工具。感觉应该是个运维技巧。
ok,安装expect,根据INSTALL,README,要装expect现状tcl(另一个包),http://www.tcl.tk/software/tcltk/download.html,tcl的话解压出来我直接进入的unix目录下,因为macosx下README说mac下当成unix装也没啥事,而且我在macosx下make不过是什么鬼。。。安装没什么注意的,./configure make makeinstall is enough。装完tcl记得看下安装的路径,我的是在/usr/local/lib/。
之后再下载expect包,https://sourceforge.net/projects/expect/files/Expect/5.45/。这里解压之后放到tcl一起,我的话即/usr/local/lib/,然后make时候make expect说是可以只装expect相关组件,难道还有别的???,不管,我直接make之后install了。
然后我们就具备了expect的主要功能了。
代码如下:
#!/usr/bin/expect -f /usr/bin/expect这个路径安装完expect之后 which expect可以查看
set timeout -
set password bugaosuni spawn ssh myname@serverip expect "*assword:*" // 等待密码提示显示
send "$password\r" // 登录 interact //done
然后很受伤的是这个脚本已经不能当普通sh来执行了。得用expect 命令执行。具体就是 expect myLogon.sh 。期间若是不可执行 chmod +x myLogon.sh。

OK 用户密码都在logon.sh里面了。
服务器sh脚本自动登录(mac)的更多相关文章
- 简单易懂的ftp脚本自动登录教程
我在上上篇<nmon脚本--对Linux服务器的监控>的脚本中,使用了ftp的自动登录.结果有人询问,遂决定专门写一篇简单易懂的博客,来说明如何解决ftp的自动登录问题. 一.Window ...
- CentOS 升级 openSSH+ sh脚本自动运维
升级前后对比 openSSH作为linux远程连接工具,容易受到攻击,必须更新版本来解决,低版本有如下等漏洞: OpenSSH 远程代码执行漏洞(CVE-2016-10009) OpenSSH au ...
- shell脚本自动登录服务器
#!/bin/sh function trapper(){ trap 'exit 1' EXIT QUIT; } serverArr=( guard-boot-001,10.1.17.12 guard ...
- 用了一天的时间,linux下expect实现ssh自动登录服务器记,鄙视下网上各种抄来抄去残段子
因为要对客户方的快30个项目进行特别有顺序的重启,所以不得不想办法写个脚本,网上看了不少段子.真是残缺的可以.没有一段是可以正常运行的.我来按顺序记录一下 脚本的本身 使用expect实现自动登录的脚 ...
- mac 利用 sshpass 自动登录
mac 利用 sshpass + 配置文件 实现自动登录 使用方式 https://github.com/vipzhicheng/go 参见此项目 其实原理也就是 脚本 读取配置文件 匹配 参数或 ...
- Linux使用expect实现自动登录的脚本
前提条件服务器已经安装过tcl和expect, 若未安装:可以先执行 yum install tcl expect 进行安装 第一步.编写以下自动登录脚本login.sh ########### ...
- Git学习-->如何通过Shell脚本自动定时将Gitlab备份文件复制到远程服务器?
一.背景 在我之前的博客 git学习--> Gitlab如何进行备份恢复与迁移? (地址:http://blog.csdn.net/ouyang_peng/article/details/770 ...
- linux服务器监控流量sh脚本
服务器可能经常遇到服务器出带宽跑满,不知如何查询被哪个进程占用的情况,有一款开源的英文软件iftop功能比较强大可以查询相关信息,可能刚接触linux系统的朋友不太会使用,在此写了一个功能比较简单无需 ...
- Centos 解决SSH 免密码登录 以及Crontab制作定时SSH自动登录和关闭的脚本
一.SSH免密码登录 假设要登录的机器为192.168.1.100,当前登录的机器为192.168.1.101. 首先在101的机器上生成密钥(如果已经生成可以跳过): $ ssh-keygen -t ...
随机推荐
- 多线程环境的UI控件属性更新
Winform: public delegate void UpadataTextCallBack(string str,TextBox text); public void UpadtaText(s ...
- 删除Kafka的topic
刚接触Kafka,开始认为删除一个topic只是运行一下Kafka-topic.sh的delete命令就行了,但是,事实却不是这样,会出现两种情况:(1) 如果topic没有使用过即没有传输过消息,可 ...
- JavaScript中的splice方法
splice方法根据传入的不同参数可分别实现删除和插入操作 使用splice(pra1,pra2,pra3)方法,需要为其提供如下参数: 1.pra1为其起始索引(即希望开始添加元素的地方) 2.pr ...
- JAVA线程安全总结(转载)
JAVA线程安全总结(一) JAVA线程安全总结(二) 最近想将java基础的一些东西都整理整理,写下来,这是对知识的总结,也是一种乐趣.已经拟好了提纲,大概分为这几个主题: java线程安全,jav ...
- github使用
1.首先登录到https://github.com注册Github帐号,并且创建一个repository. 例如:注册的github帐号名为whu-zhangmin,创建的repository名称为w ...
- 夕甲甲——孔乙己之C++版
欧欧匹代码的格局,是和别的编程模式不同的:首先要有一个构造函数:基类里只定义了函数的形式,可以随时通过派生增加不同的实现.那些程序员们,每每学会了继承和多态,便可以接一个项目,——这是十年前的事,现在 ...
- Nuget包之间的依赖
为什么我们使用依赖呢??原因是某些资源是基于某些资源的基础上才可以运行的,比如bootstrap基于Jquery,EntityFramework.zh-Hans基于EntityFramework,如果 ...
- [转载]GlassFish 的安装及设置命令
移步: http://blog.csdn.net/joyous/article/details/8008870
- HDU 4937 Lucky Number(2014 Multi-University Training Contest 7)
思路:先枚举 a*bas +b = n 求出 bas 在sqrt(n)到n的 (bas>a&&bas>b) 再枚举 a*bas*bas+b*bas+c =n 求出 ...
- java打jar包,引用其他.jar文件
大家都知道一个java应用项目可以打包成一个jar,当然你必须指定一个拥有main函数的main class作为你这个jar包的程序入口. 具体的方法是修改jar包内目录META-INF下的MANIF ...