internetTablet

Nokia N810 / N800 / 770 rss


11
Sep
2007

Быстрая расшарка файлов с таблетки через http сервер в одну строку на bash

by dik

Благодаря Alexey Sveshnikov и jetxee а также волшебной сетевой утилите netcat, которая вследствие простоты и универсальности заслужила звание “щвейцарский армейский нож” мы имеем возможность быстрого созданий http сервера для раздачи файлов. При запуске скрипта, который умещается во всего одну строку bash, мы получаем лёгкий http сервер с листингом файлов той директории из которой он был запущен. Вот сам код :

true; while [ $? -eq 0 ];do nc -vlp 8080 -c'(r=read;e=echo;$r a b c;E=NOTYET;while [ ${#E} -gt 0 ];do $r E;E=`$e $E|tr -d "\r\n"`;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 -e $o;ls|(while $r n;do if test -f ${n}; then $e "<a href=\"/$n\">$n</a><br>";fi;done););elif [ -f $f ];then $e -e "$o$c-Type: `file -ib $f`\n$c-Length: `stat -c%s $f`\n";cat $f;else $e -e "$h 404 Not Found\n\n404\n";fi)';done

Что необходимо ?
Устанавливаем netcat :
#apt-get -f install netcat
Качаем скрипт http.sh
Тот же самый скрипт с одной единственной правкой - из команды sed я убрал опцию i (независимость от регистра символов)
sed ’s/[^a-z0-9_.-]//g’
Размещаем его на таблетке в каталоге исполняемых файлов, /usr/bin/
Даём права на выполнение :
#chmod +x /usr/bin/http.sh
Затем, если нам необходимо, заходим в директорию которую необходимо расшарить и даём в ней команду
$http.sh

По ip адресу нашей таблетки и порту 8080 можем наблюдать в браузере листинг файлов, например http://192.168.1.10:8080/
вырубить - по Ctrl+C

А netcat на таблетке пригодится ещё и для проигрывания видео по сети. И для много много чего ещё.

P.S. Если ребята-создатели умеют так же забористо и метко ругаться матом на одном дыхании, как пишут на bash, такие нигде не пропадут :)


Linux-телефоны на LinuxPhone.ru Internet Map Рейтинг GPS Клуба