апреля 9 2008 09:06 пп

HTTP сервер на BASH

Есть много способов поделится файлами с друзьями, например поднять у себя HTTP сервер, но устанавливать что то желания нет, данный скриптик поможет вам реализовать задуманное за пару секунд. Простой HTTP Сервер написанный на Bash который занимает всего одну строчку…

Код скрипта приведен ниже:
Код:


:;while [ $? -eq 0 ];do nc -vlp 8080 -c'(r=read;e=echo;$r a b c;z=$r;while [ ${#z} -gt 2 ];do $r z;done;f=`$e $b|sed 's/[^a-z0-9_.-]//gi'`;h="HTTP/1.0";o="$h 200 OK\r\n";c="Content";if [ -z $f ];then($e $o;ls|(while $r n;do if [ -f "$n" ]; then $e "<a href=\"/$n\">`ls -gh $n`</a><br>";fi;done););elif [ -f $f ];then $e "$o$c-Type: `file -ib $f`\n$c-Length: `stat -c%s $f`";$e;cat $f;else $e -e "$h 404 Not Found\n\n404\n";fi)';done

После запуска по URL http://ваш_ip:8080/ можно получить доступ ко всем файлам, находящимся в текущим каталоге. Очевидных и прямолинейных способов сменить каталог нет. Протестировано и работает под Linux, bash 3.2.13, и с хоббитовским netcat v1.10 с поддержкой опции -с (запустите netcat -h и посмотрите. Как минимум в Ubuntu, Debian и Fedora Core такая опция есть).

Сайт автора http://alexey.sveshnikov.ru/blog





Комментариев нет »


No Responses to “HTTP сервер на BASH”

  1. Root on 13 Апр 2008 at 18:03 #

    спасибо, полезная штука

  2. Коля on 26 Апр 2008 at 13:54 #

    Интересная статья

    PS Поздравляю Вас с Праздником Пасхи.

  3. Stepanoff on 26 Апр 2008 at 17:49 #

    Спасибо! Вас тоже с праздником =)

Trackback URI | Comments RSS

Leave a Reply

You must be logged in to post a comment.


« | »



Server load average: 0.01, 0.01, 0.00
Server uptime: 20 days, 5:47
Your IP is: 54.225.57.89.