由于经常需要到服务器上执行些命令,有些命令懒得敲,就准备写点脚本直接浏览器调用就好了,比如这样:

  

  因为线上有现成的Apache,就直接放它里面了,当然访问安全要设置,我似乎别的随笔里写了安全问题,这里就不写了。

  

vim /etc/httpd/conf/httpd.conf

LoadModule cgid_module modules/mod_cgid.so

AddHandler cgi-script .cgi .py

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

<Directory "/var/www/cgi-bin">
AllowOverride None
Options +ExecCGI
Order allow,deny
Allow from all # Options Indexes FollowSymLinks MultiViews +ExecCGI
# AllowOverride None
# Options None
# Order allow,deny
# Allow from all
</Directory>
chmod -R 755  /var/www/cgi-bin/

  

#!/usr/bin/python
#coding=utf-8 print "Content-type:text/html"
print
print '<html>'
print '<head>'
print '<title>Hello</title>'
print '</head>'
print '<body>' import sys
import subprocess reload(sys)
sys.setdefaultencoding('utf-8')
print subprocess.call(["/bin/grep", "exception", "/var/log/error/20160706.log"])
print "<br>"
result1 = subprocess.Popen(["/bin/grep exception /var/log/error/20160706.log"], shell=True, stdout=subprocess.PIPE)
result = subprocess.Popen(["grep","not"],stdin=result1.stdout, stdout=subprocess.PIPE)
out,err = result.communicate()
print out.encode('utf-8')
print "<br>"
print err print '</body>'
print '</html>'

  配置好后,用浏览器访问:

  

  因为之前目录不是在www下,而是/var/www/html/cgi-bin/,于是就怀疑suexec:

  

  

  然而改成/var/www/cgi-bin/依然不行,而且suexec也并木有错误日志,看Apache的错误日志:

  

  既然有第二句,那找不到文件应该不是aaa.py找不到,于是我直接执行了一下py脚本:

  

  这就很明显了,这python后面多了点东西,这明显是编码之类的问题,vim进aaa.py,用:set ff看了一下,原来因为这个脚本是在windows上创建的,所以格式是fileformat=dos,用:set ff=unix改一下文件格式然后保存就可以了。

最新文章

  1. 推荐15款创建漂亮幻灯片的 jQuery 插件
  2. 常见的JavaScript函数
  3. jquery实现on/off开关按钮
  4. c# HttpClient禁止缓存
  5. 超链接的那些事(二): 属性href
  6. box_shadow
  7. C/C++的参数传递机制
  8. linux下无线网卡的ioctl 接口
  9. Oracle-11g-R2(11.2.0.3.x)RAC Oracle Grid &amp; Database 零宕机方式升级 PSU(自动模式)
  10. 一个ShellExecute的超全说明(www.phidels.com这个网站很多内容)
  11. HTTP1.1协议中文版-RFC2616
  12. 查看.a架构文件
  13. C#函数式程序设计之函数、委托和Lambda表达式
  14. Java基础学习 —— 线程
  15. Unity C#用WWW操作数据库
  16. Android RecyclerView 快速平滑返回顶部
  17. Android OS 源码 引入和编译 jar / so库
  18. python学习笔记(11)--文件与数据格式化
  19. Python3练习题系列(05)——设计和调试规则
  20. jmeter之最佳实践

热门文章

  1. Jquery的点击事件,三句代码完成全选事件
  2. 在Linux虚拟机下配置tomcat
  3. 在线浏览PDF之PDF.JS (附demo)
  4. 【WCF】自定义错误处理(IErrorHandler接口的用法)
  5. Android 获取系统相册中的所有图片
  6. ASP.NET MVC5+EF6+EasyUI 后台管理系统(80)-自由桌面
  7. ASP.NET MVC5+EF6+EasyUI 后台管理系统(75)-微信公众平台开发-用户管理
  8. 做一个gulp+webpack+vue的单页应用开发架子
  9. 自己实现一个javascript事件模块
  10. node模块加载层级优化