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

#Dialog+Shell介绍

Dialog+Shell结合使用,方能体现出Dialog图形化的效果,在运维的时候,使用图形化界面,能给你一个更直观的感受,相信你会喜欢上他的

#创建脚本目录 

[[email protected] ~]# mkdir -p /scripts/tiaoban/{qqandroid,qqios,qqwxandroid,wxios,menu_list}


#禁止普通用户登陆

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

#脚本目录结构

[[email protected] tiaoban]# tree /scripts/tiaoban/
/scripts/tiaoban/
├── menu_list
│   ├── one_menu
│   └── one_option
├── qqandroid
│   ├── three_directory
│   │   ├── ip.txt
│   │   ├── three_1_100_tiaoban.sh
│   │   ├── three_menu
│   │   └── three_option
│   ├── tow_menu
│   ├── tow_option
│   └── tow_tiaoban.sh
├── qqios
├── qqwxandroid
├── tiaoban.sh
└── wxios
6 directories, 10 files


#第一层目录脚本

[[email protected] tiaoban]# cat tiaoban.sh 
#!/bin/bash
while :
do
stty susp ^@#$  #屏蔽Crtl +z
stty intr ^@$#  #屏蔽Ctrl +c
stty quit ^*#$  #屏蔽Ctrl +l
LJ=`dirname $0` 
dialog --title "Menu" --no-cancel --menu "Level directory" 12 35 5 `cat $LJ/menu_list/one_menu` 2> $LJ/menu_list/one_option 
SELECT=`cat $LJ/menu_list/one_option`
if [ "$SELECT" == 1 ];then
        sh $LJ/qqandroid/tow_tiaoban.sh
elif [ "$SELECT" == 2 ];then
        sh $LJ/qqios/tow_tiaoban.sh
elif [ "$SELECT" == 3 ];then
        sh $LJ/wxandroid/tow_tiaoban.sh
else
        sh $LJ/wxios/tow_tiaoban.sh
fi
done

#第一层目录菜单

[[email protected] tiaoban]# cat /scripts/tiaoban/menu_list/one_menu 
1 qqandroid 
2 qqios(功能未开发)
3 wxandroid(功能未开发)
4 wxios(功能未开发)

#第二层目录脚本

[[email protected] tiaoban]# cat /scripts/tiaoban/qqandroid/tow_tiaoban.sh 
#!/bin/bash
while :
do
LJ=`dirname $0`
dialog --title "Menu" --menu "Secondary directory" 13 35 15 `cat $LJ/tow_menu` 2> $LJ/tow_option
SELECT=`cat $LJ/tow_option`
if [ "$SELECT" == 1 ];then
        sh $LJ/three_directory/three_1_100_tiaoban.sh
elif [ "$SELECT" == 2 ];then
        sh $LJ/three_directory/three_101_200_tiaoban.sh
elif [ "$SELECT" -eq 3 ];then
        sh $LJ/three_directory/three_201_300_tiaoban.sh
else 
        sh /scripts/tiaoban/tiaoban.sh
fi
done

#第二层目录菜单

[[email protected] tiaoban]# cat /scripts/tiaoban/qqandroid/tow_menu 
1 qqandroid1-100服
2 qqandroid101-200服(功能未开发)
3 qqandroid201-300服(功能未开发)
4 返回上一级

#第三层目录脚本

[[email protected] tiaoban]# cat /scripts/tiaoban/qqandroid/three_directory/three_1_100_tiaoban.sh 
#!/bin/bash
while :
do
LJ=`dirname $0`
dialog --title "Menu" --menu "Three directory" 13 35 15 `cat $LJ/three_menu` 2> $LJ/three_option
SELECT=`cat $LJ/three_option`
function connect() {
        yh=`id`
        user=`echo $yh | awk -F" " ‘{print $2}‘ | awk -F"gid=" ‘{print $2}‘ | awk -F"(" ‘{print $2}‘ | awk -F")" ‘{print $1}‘`
        ip=`head -$SELECT $LJ/ip.txt | tail -1`
        ssh -p 22 [email protected]$ip
}
if [ "$SELECT" == 1 ];then
        connect
elif [ "$SELECT" == 2 ];then
        connect
elif [ "$SELECT" == 3 ];then
        connect
elif [ "$SELECT" == 4 ];then
        connect 
elif [ "$SELECT" == 5 ];then
        sh /scripts/tiaoban/qqandroid/tow_tiaoban.sh
else
        sh /scripts/tiaoban/tiaoban.sh
fi
done

第三层目录菜单

[[email protected] tiaoban]# cat /scripts/tiaoban/qqandroid/three_directory/three_menu 
1 qq1服
2 qqandroid2服(功能未开发)
3 qqandroid3服(功能未开发)
4 qqandroid...服(功能未开发)
5 返回上一级目录
6 返回首页

#IP文件展示

[[email protected] tiaoban]# cat /scripts/tiaoban/qqandroid/three_directory/ip.txt 
192.168.1.103
192.168.1.104
192.168.1.105
192.168.1.106
192.168.1.107
192.168.1.108
192.168.1.109
192.168.1.110
192.168.1.111
192.168.1.112

#执行效果展示

1)普通用户登陆

2)第一级菜单栏

3)第二级菜单栏

4)第三级菜单栏

5)成功登陆展示

提示:在用普通用户登陆跳板机连接后端服务器的时候,普通用户按Crtl+c和Ctrl+z是没有效果的,所以普通用户只能直接连接到后端的服务器而不能直接登陆到跳板机终端

时间: 2024-10-25 15:10:00

Linux下Dialog+Shell三层目录专业规范跳板机脚本的相关文章

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

跳板机安全防范规划: 跳板机-> 中心机 -> 后端服务器 跳板机:用来做跳板登陆中心机用的 中心机:一般用来做分发用的,用来登陆后端服务器 在内网:一般直接连中心机,然后直接连接后端服务器 在外网:为了安全,一般会先通过普通用户连接跳板机,然后再连接中心机,然后再在中心机连接后端服务器 注意:普通用户是不让登陆到跳板机终端的 三层目录跳板脚本实现功能: 1.通过普通用户连接跳板再直接连接后端服务器 2.ssh+key认证,CRT代理转发功能开启,自别识别用户,无需用户再输入用户名.密码和端口

Linux下的shell编程入门

通常情况下,我们从命令行输入命令每输入一次就能够得到系统的一次响应.一旦需要我们一个接着一个的输入命令而最后才得到结果的时候,这样的做法显然就没有效率.要达到这样的目的,通常我们利用shell程序或者shell脚本来实现. 一.简介 Shell编程有很多类似C语言和其他程序语言的特征,但是又没有编程语言那样复杂.Shell程序就是放在一个文件中的一系列Linux命令和实用程序,在执行的时候,通过Linux一个接着一个地解释和执行每个命令. 下面我们来看一个简单的shell程序: 1.首先建立一个

Linux下的shell脚本编程-变量-算术表达式-判断语句-if分支语句

Linux下的shell脚本编程-变量-算术表达式-判断语句-if分支语句 一:实验环境 1):虚拟机 2):linux系统 二:实验目标 1): shell 基本语法 2):变量 3):表达式 4):判断语句 5): if表达式 三:实验脚本 第一块 一个简单的shell脚本程序 [[email protected] ~]# mkdir test [[email protected] test]# vim example1.sh #!/bin/bash #This is to show wha

linux下的shell命令的编写,以及java如何调用linux的shell命令(java如何获取linux上的网卡的ip信息)

程序员都很懒,你懂的! 最近在开发中,需要用到服务器的ip和mac信息.但是服务器是架设在linux系统上的,对于多网口,在获取ip时就产生了很大的问题.下面是在windows系统上,java获取本地ip的方法.贴代码: package com.herman.test; import java.net.InetAddress; /** * @see 获取计算机ip * @author Herman.Xiong * @date 2014年5月16日 09:35:38 */ public class

Linux下挂载Windows共享目录

$ sudo mount.cifs //windows-ip/shared  /media/ -o user=username password=password 该命令挂载Windows下的shared共享目录到本地/media目录下. Windows的用户名是username, 密码是password (作相应的修改) 这里的CIFS(Common Internet File System)协议是SMB协议的后续版本. Linux下挂载Windows共享目录,布布扣,bubuko.com

Linux下添加shell脚本使得nginx日志每天定时切割压缩

Linux下添加shell脚本使得nginx日志每天定时切割压缩一 简介 对于nginx的日志文件,特别是access日志,如果我们不做任何处理的话,最后这个文件将会变得非常庞大 这时,无论是出现异常时查日志,还是使用"GoAccess"等工具对日志进行分析都将会变得非常麻烦.因此,每天定时对nginx日志进行切割压缩就非常有必要了 二 实现 我的实现思路是每天晚上接近12点时定时执行脚本.其脚本内容就是将当前的nginx日志先按照当天日期进行重命名接着进行压缩,最后是新建空白的ngi

linux下的shell和脚本

1.各种Unix shell linux下的shell基本是从unix环境中的shell发展而来,贴一下wiki:其中我们常用的,可归类为Bourne Shell(/usr/bin/sh或/bin/sh).Bourne Again Shell(/bin/bash).C Shell(/usr/bin/csh).K Shell(/usr/bin/ksh).Shell for Root(/sbin/sh),等等 第一个Unix shell是由肯·汤普逊,仿效Multic上的shell所实现出来,称为s

Linux下最快速共享目录的方法

Linux下最快速共享目录的方法 作者:chszs,未经博主允许不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs 搭建FTP,或者是搭建网络文件系统,这些方法都能够实现Linux的目录共享.但是FTP和网络文件系统的功能都过于强大,因此它们都有一些不够方便的地方.比如你想快速共享Linux系统的某个目录给整个项目团队,还想在一分钟内做到,怎么办? 很简单,使用SimpleHTTPServer. 各种Linux发行版通常都内置了Python,故使用此

[转] 关于linux下通过shell命令(自动)修改用户密码

关于linux下通过shell命令(自动)修改用户密码 2012-04-23 18:47:39 分类: 原文地址:关于linux下(自动)修改用户密码 作者:ubuntuer 本文章总结了如何手动.自动修改本地用户密码及远程机器的用户密码.对做自动化测试提供了自动修改用户密码的原理及方法. 修改本地用户密码:1.交互配置本地用户:以root用户: passwd <username>Changing password for user dewang.New UNIX password: BAD