Ualife.org


Serjio
11

Вход

Ник :

Пароль :

запомнить на 30 дней


Рейтинги лучших


Ник гостя : (want to become a member? click here to join)
Тема :
Текст :

Доступ :
Прикрепить файл : еще
настройки для умных
голосовалка?
уведомлять о всех комментариях
запретить комментарии
не менять размеры картинок
Теги:

Ник гостя : (а может зарегистрируетесь? жмите здесь)
Текст :

уведомлять о комментариях к моим же
уведомлять о всех комментариях
обновить страничку?

Вебсервер одной строкой на Bash

12 May 2008 13:27  · 
Вебсервер одной строкой на Bash
:) Ну что детки .. поразвлекаемся?

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

код:
serjio@kenny scripts $ cat www_bash
#!/bin/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 "`ls -gh $n`";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

serjio@kenny scripts $


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

Как минимум в Fedora Core, Debian и Ubuntu такая опция есть)
 · 2 комментарии  · 10/16 просмотров

комментарии

Дерево  · Список

osa · 12 May 2008 19:31
зачот :)
Serjio · 12 May 2008 22:07
Новее: << о да!
Старее: www.shell >>
вернуться в журнал Serjio

Читатели этой заметки также читают:


Украинская Баннерная Сеть
если не хотите видеть баннеров - регистрируйтесь!



© 2007-2008 UaLife.org
секундочку...