Дата: 2011-01-28 12:27:14
Комментариев: 2
Сегодня мы будем устанавливать быстрый и не прихотливый веб-сервер lighttpd, php и perl. Для начала, нужно чтобы наш роутер DIR-320 был прошит прошивкой dd-wrt с поддержкой usb. В прошлой статье я уже об этом писал.
Начнем с установки необходимых пакетов:

/opt/bin/ipkg-opt install lighttpd
/opt/bin/ipkg-opt install php-fcgi
/opt/bin/ipkg-opt install microperl

Отредактируем файл настроек lighttpd.conf:
vi /opt/etc/lighttpd/lighttpd.conf

Нам нужно раскомментировать секцию "cgi.assign", "mod_accesslog", "mod_cgi" и поменять значение переменной server.event-handler на "poll":

server.event-handler = "poll"

Если у меня будет новый телефон то это точно будет Nokia C3. Посмотрите его обзор Nokia C3 Touch and Type

Если вы хотите, чтобы был доступ к вашему веб серверу с внешнего мира, можете переназначить порт, по умолчанию он 8081:
server.port = 80

Сохраняем файл настроек и выходим из vi.
Чтобы можно было достучаться до сервера, прописываем в настройках фаерволла:
/usr/sbin/iptables -I INPUT 1 -p tcp --dport 80 -j logaccept

Также меняем порт для веб-админки маршрутизатора на 81:

nvram set http_lanport=81
nvram commit
reboot

Для возврата по-умолчанию:
nvram set http_lanport=""
nvram commit
reboot

Для запуска, необходимо выполнить команду: /opt/etc/init.d/S80lighttpd start Если у вас возникла такая вот ошибка:
/opt/etc/init.d/S80lighttpd: Permission denied

Выполните:
chmod +x /opt/etc/init.d/S80lighttpd

Сам скрипт статистики:
cat info.cgi
#!/bin/sh
 
run_time=`cat /proc/uptime | awk '{print $1}'`
cnt="<center>"
cnt_end="</center>"
syst="System Info"
if [ "$QUERY_STRING" == "" ]
then
QUERY_STRING="sys"
fi 
 
case "$QUERY_STRING" in
sys) vhead="${syst}"
cnt=""
cnt_end=""
tab="`cat /proc/version`<br>`uptime`<br><center><u>Cpu</u></center><pre>`cat /proc/cpuinfo`</pre>"
tab="${tab}<center><u>Memory</u></center><pre>`cat /proc/meminfo`</pre>"
tab="${tab}<center><u>Filesystem</u></center><pre>`/bin/df -h`</pre>"
tab="${tab}<center><u>Proccess</u></center><pre>`ps`</pre>"
tab="${tab}<center><u>Loaded modules</u></center><pre>`lsmod`</pre>"
tab="${tab}<center><u>Route</u></center><pre>`route -en`</pre>"
tab="${tab}<center><u>Arp</u></center><pre>`cat /proc/net/arp`</pre>"
tab="${tab}<center><u>Hosts</u></center><pre>`cat /etc/hosts`</pre>"
tab="${tab}<center><u>Interfaces</u></center><pre>`ifconfig`</pre>" ;;
net)    vhead="${syst}"
cnt=""
cnt_end=""
tab="${tab}<center><u>Listening ports</u></center><pre>`netstat -lna`</pre>"
tab="${tab}<center><u>Connections</u></center><pre>`cat /proc/net/ip_conntrack`</pre>" ;;
iptab)  vhead="${syst}"
cnt=""
cnt_end=""
tab="${tab}<center><u>Iptables Info</u></center><pre>`iptables-save`</pre>" ;;
log)    vhead="${syst}"
cnt=""
cnt_end=""
tab="${tab}<center><u>System Logfile</u></center><br><pre>`tail -n 5000 /tmp/syslog.log`</pre>"
tab="${tab}<center><u><a href=info.cgi?clog>Clear Log</a><br></u></center>" ;;
 
clog)	vhead="${syst}"
cnt=""
cnt_end=""
tab="${tab}<center><u>Log Empty</u></center><br><pre>`echo "" > /tmp/syslog.log`</pre>" ;;
 
 
soft)   vhead="${syst}"
cnt=""
cnt_end=""
tab="${tab}<center><u>Installed Packages</u></center><pre>`/opt/bin/ipkg-opt list_installed`</pre>" ;;
 
esac
echo "Content-type: text/html; charset=utf-8"
echo
echo "<HTML><HEAD><TITLE>System Info v.1.0.1</TITLE><meta http-equiv=pragma content=no-cache>"
echo "<meta http-equiv=cache-control content=no-cache, no-store, must-revalidate>"
echo "</HEAD><BODY link=#cecece vlink=#cecece alink=#cecece bgcolor=#000000 text=#FFFFFFFF>"
echo "<table cols=1 width=100% border=0>"
echo "<tr><td><center><h3>${vhead}</h3></center></td>"
echo "</center></td></tr></table>"
echo "<center><script language=JavaScript>"
echo "document.writeln(document.lastModified)"
echo "</script></center><br>"
echo "<table width=100% border=0><tr><td valign=top>"
echo "<fieldset><legent>Menu:</legent><br><a href=info.cgi?sys>General</a><br>"
echo "<a href=info.cgi?iptab>Firewall</a><br>"
echo "<a href=info.cgi?net>Network</a><br>"
echo "<a href=info.cgi?soft>Software</a><br>"
echo "<a href=info.cgi?log>Syslog</a>"
echo "</fieldset>"
echo "<td width=100%>${cnt} ${tab} ${cnt_end}</td></table>"
run_time2=`cat /proc/uptime | awk '{print $1}'`
run_time=`echo "$run_time2 $run_time" | awk '{printf "%s\n",$1-$2}'`
echo "<center>Generated in ${run_time} sec.</center>"
echo "</BODY></HTML>"

Закидываем файл info.cgi в папку /opt/share/www/ и проверяем в браузере.
Должно быть что-то вроде этого:


Файлы:
info.cgi.tar.gz
теги: dir320

2 комментария

2012-03-26 23:48:24 awarche

Спасибо большое, пригодилось. Разве что не понимаю, зачем вести логи по хттп, я предпочел /usr/sbin/iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT Ну и закомментил в скрипте большую часть менюшки. Не хочу в мир светить инфой, что запущено у меня на роутере, или на какие сайты я захожу ;)
2012-12-30 15:18:59 uhng

просто надо водить и логи

Оставить комментарий: