0. 背景
由于目前经常需要登录数据库查询相关数据
每次进行登录一系列操作,有点费劲
于是乎想着看看怎么自动化
限制:需要在堡垒机进行操作
1. 知识
1.1 expcet
expect是一个自动化交互套件,
主要应用于执行命令和程序时,
系统以交互形式要求输入指定字符串,实现交互通信。
1.2 awk
Awk是一种便于使用且表达能力强的程序设计语言,
可应用于各种计算和数据处理任务。
入门指南
2. 脚本
2.1 自动登录脚本
说明:基于 expect
文件:mysqlLogin.sh
1 2 3 4 5 6 7 8 9 10 11 12 13
| #!/usr//bin/expect -f set ip [lindex $argv 0] set port [lindex $argv 1] set user [lindex $argv 2] set password [lindex $argv 3]
spawn mysql -h$ip -u$user -P$port -p set timeout 1000 expect "Enter password:" send "$password\r" expect ">" send "use xxx_database\r" interact
|
2.2 获取信息并登录
说明:通过 shell 动态获取登录信息
文件:autologin.sh
1 2 3 4 5 6 7 8 9
| #!/usr/bin/bash ips=`get_single_ip_by_domain hisen.me` ip=($(echo $ips | awk '{print $2}')) port=($(echo $ips | awk '{print $3}')) echo "+---------------------------+" echo "| Login to MySQL offline |" echo "+---------------------------+" # 调用上面的脚本,包含 4 个参数 expect /root/soft/login/mysqlLogin.sh $ip $port user pwd
|
2.3 快捷命令设置
设置完成之后,输入 ma 命令,即可自动登录到 MySQL 客户端
1 2
| cat ~/.bashrc alias ma='sh /root/soft/login/autologin.sh'
|
3. 参考文档