shell 与java组合

http://www.maiziedu.com/wiki/linux/java/

客户端机器硬件信息收集

客户端硬件信息收集:

1.编写脚本

参考文件:get_machine_code.sh

结合脚本程序,了解如下资源搜集的方法

1)搜集主板ID编号;

2)搜集网卡MAC 地址;

3)硬件信息与自定义字符串加密;

脚本文件内容:

2.调试脚本

[root@WLJY01 lesson12]# sh get_machine_code.sh 
41cec063968d5a4412f753778107c554   #机器码加密后的字符串

调试结果:

3.对脚本进行加密

[root@WLJY01 lesson12]# shc  -v -r -T -f  get_machine_code.sh
[root@WLJY01 lesson12]# mv get_machine_code.sh.x get_machine_code
[root@WLJY01 lesson12]# ./get_machine_code 
41cec063968d5a4412f753778107c554

4.脚本注意的地方

字符串转换和删除的用法:

tr - translate or delete characters
echo "${baseboard_sn}${adapter0_physical_addr}"|tr '[a-z]' '[A-Z]'|tr -d ':'|tr -d '-'|tr '[0-9]' '[A-J]'

授权服务器为客户端授权

授权服务器为客户端授权:

1.了解授权服务器工作原理

这个环境使用的服务端为一台存储校验信息的数据库服务器,在启动服务前,会比较本地机器码与服务端存储的信息是否一致,一致则代表授权成功

2.授权服务器端将客户端提供的机器码信息入库

这个过程相当于服务端对客户端的授权,参考客户端硬件信息收集脚本的结果。

#创建授权验证表
mysql> create table server_auth_info(id int AUTO_INCREMENT,server_name char(50), auth_code char(50) , primary key(id,server_name));

# 为主机名cloud_app1 的客户端IP地址进行授权
mysql> insert into server_auth_info(`server_name`,`auth_code`) values('cloud_app1','41cec063968d5a4412f753778107c554');
Query OK, 1 row affected (0.00 sec)

在授权服务器器上编写授权校验脚本

1.编写授权校验脚本

[root@WLJY01 lesson12]# cat check_middleware_auth.sh

注意观察如何与服务端做机器码对比

脚本文件内容:

2.调试授权校验脚本

[root@WLJY01 lesson12]# sh check_middleware_auth.sh
True

调试结果:

思考:

如果返回结果为true ,则代表什么?//true 有成功授权

如果返回结果为false,又代表什么?//false 没有过成功授权

3.加密授权检验脚本

[root@WLJY01 lesson12]# shc  -v -r -T -f  check_middleware_auth.sh 
[root@WLJY01 lesson12]# mv check_middleware_auth.sh.x  check_middleware_auth

注意:java 程序调用的是加密的授权检验脚本。

客户端java程序调用授权检验脚本完成服务启动

JAVA程序调用授权脚本验证是否成功授权

1.编写java 程序

/root/test/src/Authorize.java

核心地方是java 如何调用shell程序

Process process = null;
process =Runtime.getRuntime().exec(“/bin/sh/home/liutaostdio/myscript/lesson12/callcmd.sh”);

Java文件源代码:

2.编译java程序

[root@WLJY01 src]# cat compile_java.sh

其中最主要的是如下两行:

javac -d ../bin/ ./Authorize.java

编译:

3.执行class文件

/root/test/exec_class.sh

Class文件内容:

#!/bin/sh
for jarfile in  / root / test / lib / * . jar
  do
    CLASSPATH = $CLASSPATH : $ jarfile
  done

#echo $CLASSPATH

java -cp . : $ { CLASSPATH } com / lesson 12 / platform / callshell / Authorize

执行方法最主要的参考如下:

java -cp .:${CLASSPATH} com/lesson12/platform/callshell/Authorize

如果脚本返回值为true ,则代表获得授权成功,则启动本地服务。

你可能感兴趣的:(操作系统)