美文网首页
nginx + fcgiwrap 创建一条运行远程 shell

nginx + fcgiwrap 创建一条运行远程 shell

作者: michael_jia | 来源:发表于2016-10-11 01:32 被阅读747次

有时候,可能有这样一种情况:即通过访问一个 http 请求,运行一下某台远程机器上的一个 shell 脚本,比如:用来启动一个测试,用来发送一个邮件,或者短信通知一下管理员,诸如此类的一个任务,等等;

安装 python,或者 php 这类脚本当然可以实现这类需求,其实还有一个更简单的做法,就是 fcgiwrap;本文就简单说一下其原理。

环境
安装 fcgiwrap
install -d -m 755 /usr/local/sbin
install -m 755 fcgiwrap /usr/local/sbin
install -d -m 755 /usr/local/man/man8
install -m 644 fcgiwrap.8 /usr/local/man/man8
nginx.conf 片段示例
  location ~ (\.sh|\.lua)$ {
    root /home/example/autotest;

    include fastcgi_params;
    fastcgi_pass unix:/var/run/fcgiwrap.socket;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  }
cpuinfo.sh 示例
#!/bin/sh
# -*- coding: utf-8 -*-
NAME="cpuinfo"
echo -e "X-Test-Author: Michael\r\n"
echo "<html><head>"
echo "<title>$NAME</title>"
echo '<meta name="description" content="'$NAME'">'
echo '<meta name="keywords" content="'$NAME'">'
echo '<meta http-equiv="Content-type" content="text/html; charset=UTF-8">'
echo '<meta name="ROBOTS" content="noindex">'
echo "</head><body><pre>"
echo -e "`date`\n"
echo -e "uname -a"
uname -a
echo -e "\ncpuinfo"
#cat /proc/cpuinfo
echo "</pre></body></html>"
参考资料

相关文章

网友评论

      本文标题:nginx + fcgiwrap 创建一条运行远程 shell

      本文链接:https://www.haomeiwen.com/subject/ryqlyttx.html