Linux:实现跳板机功能的shell脚本
实现跳板机之前先了解信号:
信号的种类
信号:即一个进程发送给另一个进程的消息。
Linux系统中有十几种信号,每一种信号都被分配了一个数字和一个名字。常用的信号如下:
kill -l 或 trap -l #查看系统中全部的信号命令
HUP(1) 挂起,通常因终端掉线或用户退出而引发
INT(2) 中断,通常因按下Ctrl+C组合键而引发
QUIT(3)退出,通常因Ctrl+/组合键而引发
ABRT(6)中止,通常因某些严重的执行错误而引发
TERM(15)终止,通常来处理超时
TSTP(20) 停止进程的运行,但该信号可以被处理或忽略,用户键入SUSP字符(通常是Ctrl+Z)发出这个信号
stty -a
trap -l 把所有信号打印出来
trap -p 把当前的trap设置打印出来
trap "" signals 为空表示这个信号失效
trap "commands" signals 收到signals指定的信号,信号功能复位同时执行commands命令
trap signals 没有命令部分,信号复原
注意:提前做好互相或者expect登录
信号取消函数
function trapper(){
trap '' INT QUIT TSTP TERM HUP
}
主机菜单函数
function menu(){
cat <<-EOF
=================HOST List========================
1)192.168.43.175
2)192.168.43.217
3)192.168.43.254
4)192.168.43.31
5)exit
===============================================
EOF
}
主机跳转函数
function host(){
case "$1" in
1)
ssh $USER@192.168.43.175
;;
2)
ssh $USER@192.168.43.217
;;
3)
ssh $USER@192.168.43.254
;;
4)
ssh $USER@192.168.43.254
;;
*)
exit
;;
esac
}
主函数
function main(){
while true
do
trapper
clear
menu
read -p "please select:" num
host $num
done
}
运行函数
main
运行结果: