Linux下Expect 完成自动输入密码
今天要开发一个定时任务,然后加入cron列表中。但是有个问题摆在眼前,脚本的执行中需要输入数据库密码(貌似5.1版本以上不允许在-p后直接加密码,会报错)
mysql -u root -p << SQL
use db;
set names utf8;
`cat task.sql`
SQL
运行上述代码后,会提示:
Enter password:
expect可以帮助我们完成这件事情:
将上述代码保存到一个文件中:db.sh
并且编写如下代码保存为db.exp:
#!/usr/bin/expect -f
spawn db.sh
expect "Enter password: "
send "password\n"
interact
第一行指示了这个脚本要用哪个程序来运行;
第二行是重点,在EXPECT下启动了一个我们要执行的程序;
第三行也是重点,我们要告诉expect,当什么信息出现时需要expect帮助我们完成交互;
第四行就是出现输入密码的提示时,要发送的内容;
第五行的意思是保持交互,不要退出。如果没有这一句,脚本成功登录数据库后,会立即退出。
执行
$expect db.exp
补充:
#!/usr/bin/expect -f
set password 123456
spawn ssh tdweb@192.168.99.59
set timeout 300
expect {
"*yes/no" { send "yes\r"; exp_continue}
"*password:" { send "$password\r" }
}
set timeout 300
expect "$*"
send "sudo su\r"
expect "*password for *:"
send "$password\r"
interact
Linux下Expect 完成自动输入密码的更多相关文章
- Linux 下 expect 脚本语言中交互处理常用命令
Linux 下 expect 脚本语言中交互处理常用命令 1. #!/usr/bin/expect 告诉操作系统脚本里的代码使用那一个 shell 来执行.这里的 expect 其实和 Linux 下 ...
- 通过expect免自动输入密码登陆远程服务器
通过expect免自动输入密码登陆远程服务器 1.前提必须已经安装expect 2.新建login.sh,文件内容如下 #!/usr/bin/expect -f spawn ssh root@140. ...
- 解决Linux下SSH超时自动断开
title: 解决Linux下SSH超时自动断开 comments: false date: 2019-08-19 19:22:55 description: Linux 下 SSH 超时自动断开?? ...
- 用了一天的时间,linux下expect实现ssh自动登录服务器记,鄙视下网上各种抄来抄去残段子
因为要对客户方的快30个项目进行特别有顺序的重启,所以不得不想办法写个脚本,网上看了不少段子.真是残缺的可以.没有一段是可以正常运行的.我来按顺序记录一下 脚本的本身 使用expect实现自动登录的脚 ...
- linux下expect环境安装以及简单脚本测试
expect是交互性很强的脚本语言,可以帮助运维人员实现批量管理成千上百台服务器操作,是一款很实用的批量部署工具!expect依赖于tcl,而linux系统里一般不自带安装tcl,所以需要手动安装 下 ...
- Linux使用expect实现自动登录的脚本
前提条件服务器已经安装过tcl和expect, 若未安装:可以先执行 yum install tcl expect 进行安装 第一步.编写以下自动登录脚本login.sh ########### ...
- linux下expect使用教程
一.expect介绍 Expect是Unix系统中用来进行自动化控制和测试的软件工具,由DonLibes制作,作为Tcl脚本语言的一个扩展,应用在交互式软件中如telnet,ftp,Passwd,fs ...
- ssh采用expect实现自动输入密码登录、拷贝
1. 引言 最近做了一个项目,需要频繁与另一台主机进行文件的传输:中间想到了很多方式:FTP.samba.curl等,但是还是感觉scp最好用. SCP使用教程可参阅:http://www.jb51. ...
- 用了一天的时间,linux下expect实现ssh自己主动登录server记,歧视下网上各种抄来抄去残段子
由于要对客户方的快30个项目进行特别有顺序的重新启动,所以不得不想办法写个脚本,网上看了不少段子.真是残缺的能够. 没有一段是能够正常运行的.我来按顺序记录一下 脚本的本身 使用expect实现自己主 ...
随机推荐
- W5100与MCU的连接方式
W5100与MCU的连接方式 W5100与MCU的连接方式主要有直接总线连接.间接总线连接.SPI总线连接这三种连接方法,不同的连接方法适应于不同的场合,应该按需选择最恰当的连接方式. 1)直接总线连 ...
- 代码混淆和dump
首先是安装和使用dump: 下载dump地址 1.选择class-dump-3.5.dmg 下载: 2.下载之后,点击打开,复制class-dump文件, 3.shift+command+G 打开fi ...
- HDU1214 圆桌会议(找规律,数学)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1214 圆桌会议 Time Limit: 2000/1000 MS (Java/Others) M ...
- AngularJS 五 过滤器及验证
AngularJS过滤: AngularJS过滤器允许我们格式化数据以在UI上显示而不改变原始格式. 格式: 一些比较重要的过滤器: Number Filter ...
- antd不想写那么多option怎么办
做项目的时候发现如果下拉列表选项多的时候会写很多的 Option ,但是用到下拉列表的地方又超级多.所以自己写了一个方法,哪需要就放到哪. 记录一下方法.留待以后用 selectStreetIdCha ...
- Question20180106 Java环境变量的配置及为什么要配置环境变量
Question 1 Java环境变量的配置及为什么要配置环境变量 Q1.1为什么要配置环境变量 在学习JAVA的过程中,涉及到多个环境变量(environment variable)的概念,如PA ...
- 2018-03-21 11:34:44 java脚本批量转换java utf-8 bom源码文件为utf-8编码文件
package com.springbootdubbo; import java.io.*;import java.util.ArrayList;import java.util.List; /** ...
- Flask—05-理解掌握flask数据模型(01)
数据模型 数据库回顾 分类: 关系型数据库:MySQL.sqlite.… 非关系型数据库:Redis.MongoDB.… 操作: 执行原生SQL语句,每次都需要拼接SQL语句,非常繁琐而且特别容易出错 ...
- chsh 设置用户禁止登陆
chsh username -s /sbin/nologin ##禁止登陆 chsh username -s /bin/bash ##允许登陆
- js一键勾选所有的checkbox
//一键勾选全部的checkbox function checkAll(){ var obj = document.getElementById("all"); var arr = ...