html5执行shell,利用nginx执行Shell 脚本
通过远程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 脚本相关推荐
- SHELL编写NGINX自动部署脚本
1.功能描述 1. 安装支持包,从软件源下载自定义的NGINX包,创建NGINX用户和用户组. 2. 安装并初始化NGINX配置. 3. 运行NGINX并检测运行状态. 2.实现 源码如下: #!/b ...
- php怎么获取权限操作 shell,利用php利用root权限执行shell脚本必须进行以下几个步骤...
这几天弄的东西涉及到php利用shell脚本与Linux的交互,我们知道利用php运行脚本来访问Linux是以Apach的身份来执行的,因此它自己能够所做的事情很少的,因为没有足够的权限,这里就涉及到 ...
- linux shell命令分布执行,Linux学习笔记:bash特性之多命令执行,shell脚本
今天我们学习了bash特性多命令执行包括各个命令之间的逻辑关系.其中包含"与""或""非"命令的执行.下面即为我们所学习的这些逻辑命令关系之 ...
- linux 定时执行搅拌,Linux上定时shell脚本
本文主要介绍在Linux系统上部署定时器,定时执行shell脚本,通过脚本执行sql文件 sql文件 -- 创建表 create table if not exists iot_test.iot_ta ...
- 服务器免密码传输文件,CentOS7,使用 scp 命令, ssh 连接方式,免密码传输文件到远程服务器,免密执行远程服务器上的 shell 脚本...
如题 如果提示:-bash: scp: command not found, 执行下面的命令安装:1 yum install -y openssh-clients 免密码配置通常用 scp 命令通过 ...
- mongo shell连接到mongoDB及shell提示符下执行js脚本
同mysql数据库类似,mongoDB也可通过mongo客户端连接到mongod服务器来进行绝大多数日常管理.这个命令行工具就是mongo,在mysql中则是mysql.通过mongo命令可以连接到本 ...
- linux用户开机.bashrc,验证linux shell在启动时会自动执行用户主目录下的.bashrc脚本...
在本文中, 我们来一起验证linux shell在启动时会自动执行用户主目录下的.bashrc脚本(注意是.bashrc而不是bashrc). 如果你的主目录下没有.bashrc, 那也不要担心,自己 ...
- linux脚本调用db2存储过程,LINUX定时执行含有DB2存储过程的SHELL脚本
<LINUX定时执行含有DB2存储过程的SHELL脚本>由会员分享,可在线阅读,更多相关<LINUX定时执行含有DB2存储过程的SHELL脚本(6页珍藏版)>请在人人文库网上搜 ...
- 关于shell unix下,直接执行shell与sh 执行 或加 . 脚本 的区别及含义
今天遭遇到一个问题 写了一小段脚本想增加一个环境变量 atest.sh 代码如下 #!/bin/bash dir=${PWD} echo "export PATH=/$PATH:${dir} ...
最新文章
- 深入推荐引擎相关算法 - 聚类
- 路劲寻找-八数码问题(判重)
- 获取浏览器高度_QQ浏览器违法收集用户信息,你的浏览器还安全吗?
- Func 与Action
- 某计算机系统20位地址线 8位数据线,同济大学2009-2010(1)微机原理期终考试试题(B卷)...
- SharePoint v3:忘掉模拟用户Impersonate,SPSecurity.RunWithElevatedPrivileges来了
- CC视频CTO栗伟:CDN系统架构及CC视频应用实践
- 【cornerstone】多边形标注组件(FreehandRoi)的Area悬浮文本项的消除
- python心跳包原理_Python 用心跳(UDP包)探测不活动主机
- 【深度学习】什么是深度学习-2
- 最新免费计算机编程视频教程
- 高质量论文配图配色(附RGB值及16进制码)
- 9张图看懂AI人工智能现状!从事AI职业女性稀缺!
- 城市轨道交通运营管理属于什么院系_城市轨道交通运营管理专业
- Android机顶盒M1上ANR问题的排查方法和应对方案
- UOJ449 集训队作业2018 喂鸽子
- SQL(Oracle) 日期转换为英文年月格式
- 登陆注册小Demo实现
- PackageManagerService Android 8.1 源码解读 02
- NISP一级考试题目复习
热门文章
- centos6.5下的mysql5.6.30安装
- LeetCode 3sum 问题
- 关于SRAM,DRAM,SDRAM,以及NORFLASH,NANDFLASH
- 面向过程与面向对象 程序设计
- compareto方法_Java ArrayList 的不同排序方法
- .net 批量更新_云子批量命名电脑版|云子批量命名PC版下载_v2021
- java struts2 mvc_struts2的MVC模式
- 宁夏师范大学本科计算机理工,2019年宁夏师范学院区内二批普通本科理工类(录取905人,共16个专业)...
- 实惠星扫地机器人不能开机_扫地机器人不能承受的重量,14kg法斗坐在上面,它旋转后死机...
- 设计灵感|海报设计常见中看起来很高级的文字排版