• apache html调用bash脚本案例


    首先安装apache服务,采用yum的方式即可,因为用到的都是apache的基本功能,不需要编译安装

    yum -y install httpd

    然后准备html页面,这个页面其实就是调用bash脚本的页面,提供页面操作然后调用服务器上的脚步文件

    网页布局建议用adobe的软件操作

    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    2. <html xmlns="http://www.w3.org/1999/xhtml">
    3. <head>
    4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    5. <script>
    6. function httpGet(url)
    7. {
    8. var xmlHttp = new XMLHttpRequest();
    9. xmlHttp.open("GET", url, false); // false: wait respond
    10. xmlHttp.send(null);
    11. return xmlHttp.responseText;
    12. }
    13. function f()
    14. {
    15. var url = "http://172.16.61.119:8098/cgi-bin/shell?ram%20"+ document.getElementById('in').value;
    16. document.getElementById('out_f').innerHTML = httpGet(url);
    17. }
    18. function h()
    19. {
    20. var url = "http://172.16.61.119:8098/cgi-bin/shell?addram%20"+ document.getElementById('ID').value+ document.getElementById('NAME').value;
    21. document.getElementById('out_h').innerHTML = httpGet(url);
    22. }
    23. </script>
    24. <title>阿里云RAM用户管理平台</title>
    25. </head>
    26. <body background="img/feicui.jpg">
    27. <table align="center" width="1000" height="500" border="1" bordercolor="black">
    28. <tr> <tr>
    29. <td colspan="3" height="10"><div align="center">
    30. <h2>初始化用户密码<h2/></div> <div align="justify"></div> <div align="left"></div></td>
    31. </tr>
    32. <th width="700" height="50" scope="col"><div align="left"><span > 阿里云ram用户ID(企业邮箱前缀) </span></div></th>
    33. <th width="700" scope="col"><div align="left"><input id='in'></input></div></th>
    34. <th width="700" scope="col"><div align="left"><button onclick='f()'>初始化密码</button></div></th>
    35. </tr>
    36. <tr>
    37. <td colspan="3" height="80"><div align="left"><pre id='out_f'></pre></div> <div align="justify"></div> <div align="left"></div></td>
    38. </tr>
    39. <tr>
    40. <td colspan="3"><div align="center">
    41. <h2>新增用户<h2/></div> <div align="justify"></div> <div align="center"></div></td>
    42. </tr>
    43. <tr>
    44. <td height="50"><div align="left">
    45. <div align="left"><span>阿里云ram用户ID(企业邮箱前缀)</span></div>
    46. </div></td>
    47. <td height="50"><div align="left"><input id='ID'></input></div></td>
    48. <td rowspan="2"><div align="left"><button onclick='h()'>新增用户</button></div></td>
    49. </tr>
    50. <tr>
    51. <td height="50"><div align="left">
    52. <div align="left"><span>中文姓名(必须以中文开头)</span></div>
    53. </div></td>
    54. <td><div align="left"><input id='NAME'></input></div></td>
    55. </tr>
    56. <tr>
    57. <td colspan="3" height="80"><div align="left">
    58. <pre id='out_h'>
    59. </pre></div> <div align="justify"></div> <div align="left"></div></td>
    60. </tr>
    61. </table>
    62. </body>
    63. </html>

    注释

    1、这里调用的脚本其实有两个(定义了两个函数)

    1.1 这里要实现的功能就是初始化ram用户的密码

    可以which ram可以查询到这个脚本文件(可以理解脚本必须在全局变量(PATH里))

    1. function f()
    2. {
    3.         var url = "http://172.16.61.119:8098/cgi-bin/shell?ram%20"+ document.getElementById('in').value;
    4.         document.getElementById('out_f').innerHTML = httpGet(url);
    5. }

    脚本其实就是(这里调用的aliyun的工具是阿里云提供的,我们按照要求配置好即可)

    /usr/local/bin/ram

    1. #cat /usr/local/bin/ram
    2. #!/bin/bash
    3. Password=`openssl rand -base64 16`
    4. UserName=$1
    5. Check_User=`aliyun ram ListUsers --pager --region cn-hangzhou|grep -w $UserName`
    6. if [ "$Check_User" != "" ];then
    7. /usr/bin/aliyun ram UpdateLoginProfile --region cn-hangzhou --UserName $UserName --Password $Password 2>&1 >/tmp/ram.txt
    8. if [ "$?" == 0 ];then
    9. echo "登录地址: https://signin.aliyun.com/yysj.onaliyun.com/login.htm";
    10. echo "登录账号: $UserName@yysj.onaliyun.com";
    11. echo "登录密码(首次登录需要更新密码): $Password";
    12. echo "登录地址: https://signin.aliyun.com/yysj.onaliyun.com/login.htm ; 登录账号: $UserName@yysj.onaliyun.com ; 登录密码(首次登录需要更新密码): $Password" | mailx -s "阿里云ram账号管理" $UserName@taetea.com.cn 2>/dev/null
    13. fi
    14. else
    15. echo "$UserName 并非阿里云子用户 请联系熊运龙添加";
    16. fi

    1.2这里要实现的功能就是新增ram用户

    可以which addram可以查询到这个脚本文件(可以理解脚本必须在全局变量(PATH里))

    这里要实现的功能就是新增ram用户

    1. function h()
    2. {
    3. var url = "http://172.16.61.119:8098/cgi-bin/shell?addram%20"+ document.getElementById('ID').value+ document.getElementById('NAME').value;
    4. document.getElementById('out_h').innerHTML = httpGet(url);
    5. }

    脚本其实就是

    /usr/local/bin/addram(这里调用的aliyun的工具是阿里云提供的,我们按照要求配置好即可)

    1. #cat /usr/local/bin/addram
    2. #!/bin/bash
    3. Parameter=$1
    4. UserName=`echo $Parameter|sed 's/[A-Za-z]\+/& /'|awk '{print $1}'`
    5. DisplayName=`echo $Parameter|sed 's/[A-Za-z]\+/& /'|awk '{print $2}'`
    6. Password=`openssl rand -base64 16`
    7. if [ "$UserName" == "" ] || [ "$DisplayName" == "" ];then
    8. echo "Please Enter ID And Name of User!!"
    9. else
    10. Check_User_Id=`aliyun ram ListUsers --pager --region cn-hangzhou|grep -w $UserName` >/dev/null 2>&1
    11. if [ "$Check_User_Id" == "" ];then
    12. ###创建子用户
    13. aliyun ram CreateUser --region cn-hangzhou --UserName $UserName --DisplayName "$DisplayName" >/dev/null 2>&1
    14. ###创建AK SK
    15. ###开启自主管理密码
    16. aliyun ram SetSecurityPreference --region cn-hangzhou --AllowUserToChangePassword true >/dev/null 2>&1
    17. ###设置密码,并且要求首次登录之后必须修改密码
    18. aliyun ram CreateLoginProfile --region cn-hangzhou --UserName $UserName --PasswordResetRequired true --Password "$Password" >/dev/null 2>&1
    19. echo "登录地址:https://signin.aliyun.com/yysj.onaliyun.com/login.htm";
    20. echo "登录账号:$UserName@yysj.onaliyun.com";
    21. echo "登录密码(首次登录需要更新密码):$Password"
    22. else
    23. echo "$UserName is exist!!!!"
    24. fi
    25. fi

    实际效果图

    PS: 在配置aliyun这个工具的时候有个容易遗漏的地方

    就是  /.aliyun/config.json  阿里云的配置文件需要在根目录下,否则调用不成功

  • 相关阅读:
    kubernetes--数据存储
    一文说清如何使用keepalive实现页面缓存-(已上线)
    【金九银十必问面试题】站在架构师角度分析问题,如何解决TCC中的悬挂问题
    ThreadLocal的应用及原理
    Mathematica导出数据
    前端工程化之:webpack4-1(babel的安装和使用)
    模型部署与剪枝实践
    计算机网络概述
    分享一个使用get_hash_value比对数据脚本
    Java Comparator 自定义复杂排序
  • 原文地址:https://blog.csdn.net/ethnicitybeta/article/details/128198509