一段服务器管理的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
}

你可能感兴趣的:(c,linux,log4j,项目管理,配置管理)