shell 与java组合

本文介绍了一种通过编写Shell脚本来收集客户端硬件信息的方法,并实现了客户端与授权服务器之间的交互验证流程。具体包括如何获取主板ID编号、网卡MAC地址等信息,并将其用于授权验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

客户端机器硬件信息收集

客户端硬件信息收集:

1.编写脚本

参考文件:get_machine_code.sh

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

1)搜集主板ID编号;

2)搜集网卡MAC 地址;

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

脚本文件内容:

java1.png

2.调试脚本

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

调试结果:

java2.png

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

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

脚本文件内容:

java3.png

2.调试授权校验脚本

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

调试结果:

java4.png

思考:

如果返回结果为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文件源代码:

java5.png

java6.png

2.编译java程序

[root@WLJY01 src]# cat compile_java.sh

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

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

编译:

java7.png

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

java8.png

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值