linux shell写cgi,使用shell脚本编写cgi

非常简单

示例1:recv脚本接收http post数据

#!/bin/sh

read buf

echo "Content-type:text/html;charset=UTF-8"

echo

echo $buf

使用curl命令进行测试:

curl --data "name=abc" http://10.236.5.128/cgi-bin/recv

抓包得到http消息如下:

POST /cgi-bin/recv HTTP/1.1

User-Agent: curl/7.19.7 (i386-redhat-linux-gnu) libcurl/7.19.7 NSS/3.16.2.3 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2

Host: 10.236.5.128

Accept: */*

Content-Length: 8

Content-Type: application/x-www-form-urlencoded

name=abc

HTTP/1.1 200 OK

Date: Wed, 11 Feb 2015 06:43:29 GMT

Server: Apache/2.2.15 (CentOS)

Content-Length: 9

Connection: close

Content-Type: text/html;charset=UTF-8

name=abc

示例2:接收http post上传文件

#!/bin/sh

while read buf

do

echo $buf >> data

done

echo使用curl命令进行测试:

curl -F password=@/etc/passwd http://10.236.5.128/cgi-bin/backup

抓包得到http消息如下:

POST /cgi-bin/backup HTTP/1.1

User-Agent: curl/7.19.7 (i386-redhat-linux-gnu) libcurl/7.19.7 NSS/3.16.2.3 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2

Host: 10.236.5.128

Accept: */*

Content-Length: 2136

Expect: 100-continue

Content-Type: multipart/form-data; boundary=----------------------------ebae583d2488

HTTP/1.1 100 Continue

------------------------------ebae583d2488

Content-Disposition: form-data; name="password"; filename="passwd"

Content-Type: application/octet-stream

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

games:x:12:100:games:/usr/games:/sbin/nologin

gopher:x:13:30:gopher:/var/gopher:/sbin/nologin

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

nobody:x:99:99:Nobody:/:/sbin/nologin

dbus:x:81:81:System message bus:/:/sbin/nologin

usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin

avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin

vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin

rtkit:x:499:497:RealtimeKit:/proc:/sbin/nologin

ntp:x:38:38::/etc/ntp:/sbin/nologin

avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin

pulse:x:498:496:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin

abrt:x:173:173::/etc/abrt:/sbin/nologin

saslauth:x:497:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologin

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

haldaemon:x:68:68:HAL daemon:/:/sbin/nologin

apache:x:48:48:Apache:/var/www:/sbin/nologin

gdm:x:42:42::/var/lib/gdm:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

tcpdump:x:72:72::/:/sbin/nologin

tony:x:500:500:LinuxServer:/home/tony:/bin/bash

ldap:x:55:55:LDAP User:/var/lib/ldap:/sbin/nologin

named:x:25:25:Named:/var/named:/sbin/nologin

jenkins:x:496:493:Jenkins Continuous Build server:/var/lib/jenkins:/bin/false

rpc:x:32:32:Rpcbind Daemon:/var/cache/rpcbind:/sbin/nologin

rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin

nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash

------------------------------ebae583d2488--

HTTP/1.1 200 OK

Date: Thu, 12 Feb 2015 02:11:28 GMT

Server: Apache/2.2.15 (CentOS)

Content-Length: 0

Connection: close

Content-Type: text/plain; charset=UTF-8

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值