Linux下trap+shell三层目录专业规范跳板机脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下trap+shell三层目录专业规范跳板机脚本相关的知识,希望对你有一定的参考价值。

跳板机安全防范规划:

跳板机-> 中心机 -> 后端服务器

跳板机:用来做跳板登陆中心机用的

中心机:一般用来做分发用的,用来登陆后端服务器

在内网:一般直接连中心机,然后直接连接后端服务器

在外网:为了安全,一般会先通过普通用户连接跳板机,然后再连接中心机,然后再在中心机连接后端服务器

注意:普通用户是不让登陆到跳板机终端的


三层目录跳板脚本实现功能:

1、通过普通用户连接跳板再直接连接后端服务器

2、ssh+key认证,CRT代理转发功能开启,自别识别用户,无需用户再输入用户名、密码和端口

3、trap信号捕捉不允许用户Crtl+C退出脚本,跳板脚本普通用户一登陆就会自动运行

注意:这里只展示qqandroid平台的其中一台服务器的ssh连接,其他平台服务器的ip连接原理一样



#创建脚本目录

mkdir -p /scripts/tiaoban/{qqandroid,qqios,qqwxandroid,wxios}


#禁止普通用户登陆

cat /etc/profile.d/tiaoban.sh
[ $UID -ne 0 ] && . /scripts/tiaoban/tiaoban.sh


#脚本目录结构

[[email protected] /]# tree /scripts/tiaoban/
/scripts/tiaoban/
├── qqandroid
│   ├── 1_100.sh
│   ├── ip.txt
│   └── qqandroid.sh
├── qqios
├── qqwxandroid
├── tiaoban.sh
└── wxios

4 directories, 4 files


#跳板脚本第一层目录,

cat /scripts/tiaoban/tiaoban.sh                             
#!/bin/bash
function trapper() {
trap ‘:‘ 1 2 3 20 15
}
while :
do 
trapper
clear
cat <<menu                       
    1)qqandroid 
    2)qqios(功能未开发)
    3)wxandroid(功能未开发)
    4)wxios(功能未开发)
    5)exit
menu
read -p ‘please select a num:‘ num
case "$num" in
1)
 sh /scripts/tiaoban/qqandroid/qqandroid.sh
 ;;
2)
 sh /scripts/tiaoban/qqios/qqios.sh
 ;;
3)
 sh /scripts/tiaoban/wxandroid/wxandroid.sh
 ;;
4)
 sh /scripts/tiaoban/wxios/wxios.sh
 ;;
5)
 exit
 esac
done


#跳板机脚本第二层目录 

cat /scripts/tiaoban/qqandroid/qqandroid.sh
#!/bin/bash
function trapper() {
        trap ‘:‘ 1 2 3 20 15
}
while :
do
        trapper
        clear
        cat <<menu                     
        1)qq1-100服
        2)qq101-200服(功能未开发)
        3)qq201-300服(功能未开发)
        4)qq301-400服(功能未开发)
        5)返回上一级
        6)exit
menu
read -p ‘please select a num:‘ num
case "$num" in
1)
 sh /scripts/tiaoban/qqandroid/1_100.sh
 ;;
2)
 sh /scripts/tiaoban/qqandroid/101_200.sh
 ;;
3)
 sh /scripts/tiaoban/qqandroid/201_300.sh
 ;;
4)
 sh /scripts/tiaoban/qqandroid/301_400.sh
 ;;
5)
 sh /scripts/tiaoban/tiaoban.sh
 ;;
6)
 exit
 esac
done


#跳板机脚本第三层目录

cat /scripts/tiaoban/qqandroid/1_100.sh
#!/bin/bash
function trapper() {
        trap ‘:‘ 1 2 3 20 15
}
while :
do                                    
        trapper
        clear
        cat <<menu               
        1)qq1服
        2)qq2服(功能未开发)
        3)qq3服(功能未开发)
        4)qq...服(功能未开发)
        5)返回上一级目录
        6)返回首页
        7)退出
menu
read -p ‘please select a num:‘ num
yh=`id`
user=`echo $yh | awk -F" " ‘{print $2}‘ | awk -F"gid=" ‘{print $2}‘ | awk -F"(" ‘{print $2}‘ | awk -F")" ‘{print $1}‘`
case "$num" in
1)
 ip=`head -$num /scripts/tiaoban/qqandroid/ip.txt`
 ssh -p 22 [email protected]$ip
 ;;
2)
 ip=`head -$num /scripts/tiaoban/qqandroid/ip.txt`
 ssh -p 22 [email protected]$ip
 ;;
3)
 ip=`head -$num /scripts/tiaoban/qqandroid/ip.txt`
 ssh -p 22 [email protected]$ip
 ;;
4)
 ip=`head -$num /scripts/tiaoban/qqandroid/ip.txt`
 ssh -p 22 [email protected]$ip
 ;; 
5)
  sh /scripts/tiaoban/qqandroid/qqandroid.sh
 ;; 
6)
  sh /scripts/tiaoban/tiaoban.sh
 ;;
7)
 exit
 esac
done


#ip.txt文件展示

[[email protected] ~]# cat /scripts/tiaoban/qqandroid/ip.txt 
192.168.17.215
192.168.17.216
192.168.17.217
192.168.17.218
192.168.17.219
192.168.17.220
192.168.17.221
192.168.17.222
192.168.17.223
192.168.17.224
192.168.17.225


#脚本执行展示

 1)普通用户登陆

技术分享


 2)第一层目录

技术分享


 3)第二层目录

技术分享


 4)第三层目录和登陆成功展示

技术分享


注意:在三层任意一层普通用户都按crtl+c都是无效的,且在第三层选择exit退出会回到第二层,在第二层选择exit会回到第一层,在第一层选择exit会注销终端重新执行跳板脚本,普通用户是没法登陆到跳板机终端的,周知


本文出自 “wsyht的博客” 博客,请务必保留此出处http://wsyht2015.blog.51cto.com/9014030/1791938

以上是关于Linux下trap+shell三层目录专业规范跳板机脚本的主要内容,如果未能解决你的问题,请参考以下文章

Linux信号和trap命令的使用

Linux的shell脚本trap信号处理

Linux命令——trap

老男孩教育每日一题-第69天-shell脚本知识点:linux系统脚本中trap信号都有哪些,如何进行使用?

每日一题shell脚本知识点

shell从入门到精通(10)信号捕获和处理