效果
输入命令,选择一个序号登录服务器
$ aoel
(1) first 192.168.1.1
(2) 第二台机器 192.168.1.2
配置文件
1. 填写服务器信息 computerInfo.ini
#ip port user password description
192.168.1.1 22 root 123456 first machine
192.168.1.2 22 root 123456 第二台机器
2. 使用 expect 自动回复 yes 输入密码 core.ex
#!/usr/bin/expect
set ip [lindex $argv 0]
set port [lindex $argv 1]
set username [lindex $argv 2]
set password [lindex $argv 3]
set timeout -1
spawn ssh -p $port $username@$ip
expect {
“password” {send “$password\r”;}
“yes/no” {send “yes\r”;exp_continue}
}
interact
3. 登录脚本 login.sh
#!/bin/bash
file=”computerInfo.ini”
#显示机器信息 过滤第一行和空行
awk ‘{if (NR > 1 && $1 != “”){printf “%-2s %-45s %-15s \n”,”(“NR-1″)”,$5,$1}}’ $file
echo “please choose which machine to login:”
read number
number=$[number+1]
#将信息存入变量
read ip port user password <<< $(echo `awk ‘NR==”‘$number'”{print $1,$2,$3,$4}’ $file`)
./core.ex $ip $port $user $password
4. 使用 alias 定义自己的命令
./bashrc # 仅当前用户有效
/etc/bashrc # 所有的用户都有效
source .bashrc # 让我们的环境生效
alias aoel=’/login_server/login.sh’
参考文章
Linux Expect 简介和使用实例
Linux自定义命令指令 | alias
Linux alias命令的使用