通过远程url调用

首先自行安装openresty,不做介绍了就.

假如我们安装路径为:/southtv/openresty

1 首先安装sockprocgit clone https://github.com/juce/sockproc

cd sockproc

make

./sockproc /tmp/shell.sock

chmod 0666 /tmp/shell.sock

sockproc 是一个服务器程序, 侦测unix socket 或者 tcp socket , 并把收到的命令,传递给子进程执行,执行完毕后,把结果返回给客户端, 我们就让sockproc 侦测/tmp/shell.sock 的套接口有没有数据到来.

2 安装lua-resty-shell模块.

它是一个很小的库, 配合openresty 使用, 目的是提供类似于os.execute 或io.popen的功能, 唯一区别它是非阻塞的, 也就是说即使需要耗时很久的命令,你也可以使用它git clone https://github.com/juce/lua-resty-shell

cd lua-resty-shell

cp lib/resty/shell.lua /southtv/openresty/lualib/resty/ 这是你的项目路径

3 创建自己的命令调用lua 脚本vim /southtv/openresty/lualib/command.lua --名字我起名为command.lua

local shell = require "resty.shell"

local args = {

socket = "unix:/tmp/shell.sock", --这是第一步的unxi socket

}

local status, out, err = shell.execute("ls", args) --ls 是想调用的命令,

ngx.header.content_type = "text/plain"

ngx.say("Result:\n" .. out) -- 命令输出结果

4 更改nginx 配置vim /southtv/openresty/nginx/conf/nginx.conf

#增加一个localtion 配置

location = /api/ls {

content_by_lua_file /southtv/openresty/lualib/command.lua;

}

重启 nginx

/southtv/openresty/nginx/sbin/nginx -s reload

1

5 测试效果了

可以用浏览器直接打开:

版权属于:逍遥子大表哥

按照知识共享署名-非商业性使用 4.0 国际协议进行许可,转载引用文章应遵循相同协议。

html5执行shell,利用nginx执行Shell 脚本相关推荐

  1. SHELL编写NGINX自动部署脚本

    1.功能描述 1. 安装支持包,从软件源下载自定义的NGINX包,创建NGINX用户和用户组. 2. 安装并初始化NGINX配置. 3. 运行NGINX并检测运行状态. 2.实现 源码如下: #!/b ...

  2. php怎么获取权限操作 shell,利用php利用root权限执行shell脚本必须进行以下几个步骤...

    这几天弄的东西涉及到php利用shell脚本与Linux的交互,我们知道利用php运行脚本来访问Linux是以Apach的身份来执行的,因此它自己能够所做的事情很少的,因为没有足够的权限,这里就涉及到 ...

  3. linux shell命令分布执行,Linux学习笔记:bash特性之多命令执行,shell脚本

    今天我们学习了bash特性多命令执行包括各个命令之间的逻辑关系.其中包含"与""或""非"命令的执行.下面即为我们所学习的这些逻辑命令关系之 ...

  4. linux 定时执行搅拌,Linux上定时shell脚本

    本文主要介绍在Linux系统上部署定时器,定时执行shell脚本,通过脚本执行sql文件 sql文件 -- 创建表 create table if not exists iot_test.iot_ta ...

  5. 服务器免密码传输文件,CentOS7,使用 scp 命令, ssh 连接方式,免密码传输文件到远程服务器,免密执行远程服务器上的 shell 脚本...

    如题 如果提示:-bash: scp: command not found, 执行下面的命令安装:1 yum install -y openssh-clients 免密码配置通常用 scp 命令通过 ...

  6. mongo shell连接到mongoDB及shell提示符下执行js脚本

    同mysql数据库类似,mongoDB也可通过mongo客户端连接到mongod服务器来进行绝大多数日常管理.这个命令行工具就是mongo,在mysql中则是mysql.通过mongo命令可以连接到本 ...

  7. linux用户开机.bashrc,验证linux shell在启动时会自动执行用户主目录下的.bashrc脚本...

    在本文中, 我们来一起验证linux shell在启动时会自动执行用户主目录下的.bashrc脚本(注意是.bashrc而不是bashrc). 如果你的主目录下没有.bashrc, 那也不要担心,自己 ...

  8. linux脚本调用db2存储过程,LINUX定时执行含有DB2存储过程的SHELL脚本

    <LINUX定时执行含有DB2存储过程的SHELL脚本>由会员分享,可在线阅读,更多相关<LINUX定时执行含有DB2存储过程的SHELL脚本(6页珍藏版)>请在人人文库网上搜 ...

  9. 关于shell unix下,直接执行shell与sh 执行 或加 . 脚本 的区别及含义

    今天遭遇到一个问题 写了一小段脚本想增加一个环境变量 atest.sh 代码如下 #!/bin/bash dir=${PWD} echo "export PATH=/$PATH:${dir} ...

最新文章

  1. 深入推荐引擎相关算法 - 聚类
  2. 路劲寻找-八数码问题(判重)
  3. 获取浏览器高度_QQ浏览器违法收集用户信息,你的浏览器还安全吗?
  4. Func 与Action
  5. 某计算机系统20位地址线 8位数据线,同济大学2009-2010(1)微机原理期终考试试题(B卷)...
  6. SharePoint v3:忘掉模拟用户Impersonate,SPSecurity.RunWithElevatedPrivileges来了
  7. CC视频CTO栗伟:CDN系统架构及CC视频应用实践
  8. 【cornerstone】多边形标注组件(FreehandRoi)的Area悬浮文本项的消除
  9. python心跳包原理_Python 用心跳(UDP包)探测不活动主机
  10. 【深度学习】什么是深度学习-2
  11. 最新免费计算机编程视频教程
  12. 高质量论文配图配色(附RGB值及16进制码)
  13. 9张图看懂AI人工智能现状!从事AI职业女性稀缺!
  14. 城市轨道交通运营管理属于什么院系_城市轨道交通运营管理专业
  15. Android机顶盒M1上ANR问题的排查方法和应对方案
  16. UOJ449 集训队作业2018 喂鸽子
  17. SQL(Oracle) 日期转换为英文年月格式
  18. 登陆注册小Demo实现
  19. PackageManagerService Android 8.1 源码解读 02
  20. NISP一级考试题目复习

热门文章

  1. centos6.5下的mysql5.6.30安装
  2. LeetCode 3sum 问题
  3. 关于SRAM,DRAM,SDRAM,以及NORFLASH,NANDFLASH
  4. 面向过程与面向对象 程序设计
  5. compareto方法_Java ArrayList 的不同排序方法
  6. .net 批量更新_云子批量命名电脑版|云子批量命名PC版下载_v2021
  7. java struts2 mvc_struts2的MVC模式
  8. 宁夏师范大学本科计算机理工,2019年宁夏师范学院区内二批普通本科理工类(录取905人,共16个专业)...
  9. 实惠星扫地机器人不能开机_扫地机器人不能承受的重量,14kg法斗坐在上面,它旋转后死机...
  10. 设计灵感|海报设计常见中看起来很高级的文字排版