`
chenhua_1984
  • 浏览: 1251873 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

一段服务器管理的linux的shell程序

阅读更多
#!/bin/sh

function sig_int(){
  echo "could not use ctrl-c to escape capaa authenticate"
}

trap "sig_int" INT

CAPAA_JAAS_HOME=/opt/capaa/jaas

CLASSPATH=$CAPAA_JAAS_HOME/bin/capaa-jaas.jar:$CAPAA_JAAS_HOME/lib/commons-codec.jar:$CAPAA_JAAS_HOME/lib/commons-logging.jar:$CAPAA_JAAS_HOME/lib/commons-httpclient-3.1.jar:$CAPAA_JAAS_HOME/lib/log4j-1.2.15.jar:$CAPAA_JAAS_HOME/bin

#echo $CLASSPATH

osuser=`who am i | awk '{ print $1}'`
date=`who am i | awk '{ print $3}'`
time=`who am i | awk '{ print $4}'`
ip=`who am i | awk '{ print $5}'`

 shell的东西,我自己很弱,基本没怎么写过,项目里有个模块,是用来管理linux服务器的,主要是用来在操作系统验证用户密码以后加入我们自己的验证逻辑。写的不多,现在把 写的东西做个注释,备忘:

#!/bin/sh

 这是linux的注释方式,用#号.

function sig_int(){
  echo "could not use ctrl-c to escape capaa authenticate"
}

trap "sig_int" INT

这里表示的是一个函数,名称是sig_int,没有参数,函数的作用是输出一句话。echo后面跟字符串,变量等,表示用来输出。变量一般用$表示。

trap "sig_int" INT ,这里的trap 是linux 的关键字,INT表示的是Ctrl+C,这句话的意识是当用户输入Ctrl+c的时候,可以被捕获掉,然后去执行这个函数sig_int。提示不能这么做。这里相当于把linux的ctrl+c操作重定向掉了。

CAPAA_JAAS_HOME=/opt/capaa/jaas
CLASSPATH=$CAPAA_JAAS_HOME/bin/capaa-jaas.jar:$CAPAA_JAAS_HOME/lib/commons-codec.jar:$CAPAA_JAAS_HOME/lib/commons-logging.jar:$CAPAA_JAAS_HOME/lib/commons-httpclient-3.1.jar:$CAPAA_JAAS_HOME/lib/log4j-1.2.15.jar:$CAPAA_JAAS_HOME/bin

#echo $CLASSPATH

这几句话是定义一个变量CAPAA_JAAS_HOME,值是一个路径。CLASSPATH在赋值的时引用了这个变量,使用的是$ 符号。这里指向我们自己开发的jar文件,这里有个bin目录,是应为有个属性文件要读取(classpath里面可以是jar,也可以是配置文件)

 

osuser=`who am i | awk '{ print $1}'`
date=`who am i | awk '{ print $3}'`
time=`who am i | awk '{ print $4}'`
ip=`who am i | awk '{ print $5}'`

这几句话是定义一些变量并用管道结合awk函数进行赋值,主要是取osuser,date,time,ip地址。

 

 


 

下面这段代码做如下事情

提示用户输入用户和密码,程序读取到,用stty -echo用来设置用户的输入不显示,不能被看到。然后执行java代码,并且往Main函数里传参数。$?可以被用来获取上一个操作的输出,并且中间不能有别的操作!最后判断结果,加入不等于0,就退出

 

#echo $osuser
#echo $date
#echo $time
#echo $ip

function do_authenticate(){

  printf "please input capaa username:\n"
  read username

  printf "please input password:\n"
  stty -echo
  read password
  stty echo

  #echo $username
  #echo $password

  java -classpath $CLASSPATH -Djava.security.auth.login.config=/opt/capaa/jaas/bin/security.conf com.mchz.capaa.jaas.Main "$username" "$password" $osuser $date $time $ip

  #echo $?

  if [ $? -ne 0 ]; then
    exit
    #echo
  fi
}
  • 大小: 68.6 KB
  • 大小: 8.1 KB
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    linux shell编程与服务器管理 范例程序与数据文件

    在“Linux Shell编程与服务器管理”中,范例程序与数据文件提供了丰富的学习资源,帮助理解并掌握Shell脚本的编写技巧和服务器管理的基本概念。 首先,让我们探讨Linux Shell的基本概念。在Linux系统中,Shell是一...

    linux shell 实验(1)

    例如,你可以使用`if`检查某个条件,如果满足则执行一段代码;`for`循环常用于遍历数组或文件列表。 函数也是Shell脚本中常用的部分,可以封装重复使用的代码块。定义函数的格式为`function funcname { commands; }...

    linux shell的java操作实现

    下面是一段基本的Java代码示例,展示了如何使用JSch连接到远程Linux服务器并执行一个简单的Shell命令: ```java import com.jcraft.jsch.*; public class SSHExecutor { public static void main(String[] args) ...

    linuxshell

    实验任务一: 编写一个Shell过程完成如下功能(必须在脚本中使用函数): 1、合并两个$1、$2文件为$3,并显示。 2、如果缺少$3,那么先报告缺少$3,然后将合并后的内容输出到mydoc.txt。如果有$3,就合并到...

    基于Linux操作系统的Shell程序设计实践教学研究.pdf

    【Linux 操作系统】Linux 是一个免费开源的类 Unix 操作系统,因其实时性、多用户性质和强大的网络功能而被广泛应用,特别是在嵌入式技术和服务器领域。 【Shell 程序设计】Shell 是 Linux 操作系统中的命令解释器...

    linux大作业报告

    ”字符串,主进程休眠一段时间后,在主进程中结束子进程,随后主进程也退出。 9、编写程序,在程序中使用命令行形式显示程序所在当前文件夹下的内容。 10、编写程序,得到当前进程的标识号,并将它打印输出,随后...

    linux shell

    构建一个能够支持全网段邮件收发服务的企业级邮件服务器。 **具体步骤** 1. **选择邮件服务器软件**:例如Postfix或Exim。 2. **安装软件**:使用包管理器安装所选的邮件服务器软件。 3. **配置邮件服务器**:编辑...

    Linux Shell编程学习

    在Linux中,Shell是一个程序,它为用户提供了一个与操作系统内核交互的接口。常见的Shell有Bash(Bourne-Again SHell)、Sh、Csh、Ksh和Zsh等。Bash是目前最广泛使用的Shell,它继承了Sh的功能,并添加了许多增强...

    linuxshell脚本

    5. **循环结构**:`for`、`while`等循环语句可以用来重复执行一段代码。 6. **函数定义**:可以通过`function`关键字定义函数,将一系列操作封装起来。 7. **逻辑运算符**:如`&&`(与)、`||`(或)用于组合多个...

    嵌入式实验, ,实验一:shell 脚本程序设计.doc

    Shell脚本是Linux或Unix系统中用于自动化任务的一种强大工具。在实验一中,你需要掌握以下知识点: 1. **Shell基础**:了解Bash Shell的基本语法,如变量赋值、条件语句(if-else)、循环(for, while)和函数定义...

    Linux Shell小常识.pdf

    总的来说,了解和掌握Linux Shell的小常识,以及如何利用PAM和日志系统进行安全管理,对于任何Linux用户或系统管理员来说都是非常重要的技能。这些知识不仅有助于日常操作,而且在系统维护和故障排查时也能发挥关键...

    Linux基础13:学习SHELL编程

    在IT领域,Linux系统是广泛应用于服务器和开发环境的操作系统,而Shell编程是与Linux紧密相关的技能之一。本文将深入探讨“Linux基础13:学习SHELL编程”这一主题,帮助你掌握如何利用Shell脚本自动化日常任务,提高...

    shell_ip_orangewgz_linux_shell_shell编程_shell脚本_

    在IT行业中,Shell编程是一种非常重要的技能,尤其是在Linux系统管理中。本文将深入探讨标题"shell_ip_orangewgz_linux_shell_shell编程_shell脚本_"所提及的利用Shell编写判断IP地址合法性的脚本这一主题。我们将...

    Learning Linux Shell Scripting.pdf

    - **Shell 的概念**:在 Linux 系统中,Shell 是一个命令解释器,它接收用户输入的命令,并将这些命令传递给操作系统内核去执行。Shell 也是用户与操作系统之间交互的主要方式之一。 - **Shell 脚本语言**:Shell ...

    LINUX与UNIX SHELL编程指南(很全)

    16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 155 17.3 字符串测试 155 17.4 测试数值 156 17.5 expr用法 157 17.5.1 增量计数 158 17.5.2 数值测试 ...

    linux shell脚本编程

    通过编写Shell脚本,用户可以更高效地管理服务器、处理数据以及完成日常任务。Shell脚本编程对于Linux系统管理员、开发人员甚至是普通用户来说都是非常有用的技能。 #### 二、Shell脚本的基础概念 ##### 2.1 Sha-...

    Linux程序设计_严冰.zip

    - 编写简单的shell程序,实现基本的命令解析和执行。 - 实现简单的服务器和客户端通信程序,了解网络编程基础。 - 利用IPC机制实现多进程或线程协作完成任务。 通过《Linux程序设计》的学习,读者不仅能掌握...

    linux编程SHELL编程实验报告.pdf

    Linux Shell 编程是Linux操作系统中非常重要的一部分,它允许用户通过命令行接口与操作系统进行...这不仅对于日常的系统管理有帮助,也为未来涉及服务器配置、自动化任务或者嵌入式系统开发等工作打下了坚实的基础。

Global site tag (gtag.js) - Google Analytics