Archív

Archív pro ‘Linux návody’ Kategorie

ladění funkcí a příkaz tail -f

02.09.2009 Bez komentářů

Pokud, na linuxu obecně, cokoliv ladíte či upravujete, případně jen sledujete chování je velice užitečný příkaz tail.
Není třeba nic doinstalovávat, jedná se o obecný příkaz.

V případě, že potřebujete soubor průběžně sledovat (Follow) použijte jej s parametrem -f, pokud tedy chcete monitorovat hlavní log routeru – syslog, použijte následující příkaz:

tail -f /usr/tmp/syslog.log

Tail vypíše posledních 10 řádků souboru a bude je dále aktualizovat. Běh programu ukončíte stiskem Ctrl+C.
Tail je užitečné mít spuštěný v druhé konzoli a sledovat tak dopad vašich kroků v logu.
Logy které se vyplatí monitorovat:

  • tail -f /usr/tmp/syslog.log
  • tail -f /opt/var/log/lighttpd/error.log
  • tail -f /opt/var/log/lighttpd/access.log
  • a další …

Sledování lze dotáhnout k dokonalosti třeba pomocí doplňku pro PuTTY s názvem PuTTY Connection Manager. Mezi použitelné funkce patří spouštění příkazů ihned po připojení a více konzolí v jednom okně.

PuTTY Connection Manager screen
Ke stažení PuTTY Connection Manager 0.7.1.136beta .

Categories: Asus WL-500gP, Linux návody Tags:

Webcamera

17.05.2009 komentáře 3

Router je již od výrobce připraven pro připojení USB kamery. Podporovány jsou pouze již nevyráběné kamery s ovladači PWC 9.0.2 a OV51x 1.65-1.12. Většina současných kamer včetně těch levných spolupracuje s ovladačem SPCA5xx.
1. vypněte podporu USB webových kamer v administraci: USB Application – Web Camera – Enable Web Camera? – Disabled

2. telnet my.router (192.168.1.1)

3. ipkg install palantir

4. cd /opt/usr/lib

5. wget http://koppel.cz/cdmawifi/postupy/USBwebcam/spca5xx.o

6. wget http://koppel.cz/cdmawifi/postupy/USBwebcam/spcadecoder.o

7. přidejte následující doinit.usb nano /opt/init.usb

insmod videodev
insmod /opt/usr/lib/spcadecoder.o
insmod /opt/usr/lib/spca5xx.o
sleep 5
/opt/bin/palantir -C /opt/etc/palantir.conf >/dev/null&

8. případně upravte konfigurační soubor kamery /opt/etc/palantir.conf a restartujte router: reboot

9. po restartu je steam videa dostupný na adrese my.router:8000

10. nahrajte do root složky www serveru /opt/share/www/lighttpd balíček[2] s nástroji pro zobrazení kamery ve www stránkách.

Možné problémy: pokud se dočkáte v systémovém logu chybového hlášení „…DEALLOC error on init_Isoc“ je problém s propustností sběrnice USB. Nejčastějším řešením je připojení kamery přímo do USB portu routeru, nikoliv přes USB rozbočovač. A to i přesto, že má externí napájení[3].

 


 

[1]Konkrétně byla použita webová kamera Logitech QuickCam Express podporována ovladačem SPCA561A. Aktualizovaný seznam podporovaných kamer je dostupný na internetové adrese http://mxhaard.free.fr/spca5xx.html

[2]HTML verze pohledu na kameru, Java applet a Win32 aplikace ke stažení na počítač http://koppel.cz/cdmawifi/postupy/USBwebcam/www.zip

[3]Odzkoušeno s rozbočovačem MAXXTRO/ GEMBIRD USB2.0 Hub UHB-C247

Categories: Linux návody, software Tags:

Zabezpečení chodu systému

15.05.2009 Bez komentářů

Může nastat stav, kdy z neznámého důvodu nenastartují některé služby. Pokud považujeme za nejvíce kritickou službu webového serveru s PHP, můžete zjištění jejího stavu a případný restart zabezpečit následovným způsobem:

Vytvořte soubor /opt/share/www/lighttpd/testweb.php s jednoduchým kódem:

<?php
$info = gd_info();
echo $info[„GD Version“];
?>

Dále budete potřebovat konzolový prohlížeč webových stránek lynx

ipkg install lynx

vytvořte soubor /opt/usr/local/testweb/testweb.sh s kódem, který kontroluje funkčnost php skriptu testweb.php a v případě chyby 500 – Internal server Error router restartuje. Výsledky zapisuje do vlastního logu.

#!/bin/sh
if lynx -dump 192.168.1.1/testweb.php | grep "500 - Internal Server Error" > /opt/usr/local/testweb/nullx
then
date >> /opt/usr/local/testweb/web_err.log
echo "Test PHP serveru - nedostupny.....REBOOT" >> /opt/usr/local/testweb/web_err.log
/sbin/reboot
fi;
date >> /opt/usr/local/testweb/web.log && echo "Test PHP serveru - OK" >> /opt/usr/local/testweb/web.log

Použitím jednoho znaménka > v posledním řádku zajistíte přepisování logu úspěšných kontrol.

Nastavte souboru testweb.sh spustitelný příznak:
chmod +x /opt/usr/local/testweb/testweb.sh

zajistěte zápisem do CRONu – /opt/etc/crontab spouštění kontroly například každou hodinu 30 minut po celé: 30 * * * * admin /opt/usr/local/testweb/testweb.sh

CRON a statistiky

13.05.2009 1 komentář

Abyste dokázali načasovat spouštění různých, nebo opakujících se úloh potřebujete aplikaci cron, která zabezpečuje automatické spouštění úloh, jako jsou statistiky, zálohování a podobně.

ipkg install cron

Jedna z možností jak řídit CRON je pomocí konfiguračního souboru /opt/etc/crontab.

Poté můžete crontab prohlížet příkazem crontab -l , případně editovat crontab -e . Pokud stále používáte editor vi, opusťte jej bez uložení příkazem a :q a editujte pomocí editoru nano.

Pokud budete potřebovat spouštět příkazy i pod účty jiných uživatelů, je třeba jim v souboru/var/cron.allow povolit spouštění příkazů:
echo user1 > /etc/cron.allow
crontab -u user1 /opt/etc/crontab

Categories: Linux návody, software Tags:

Redakční systému s databází SQLITE

13.05.2009 Bez komentářů

Vzhledem k tomu, že router není nijak výkonné zařízení, jsou možnosti nasazení redakčního systému poněkud omezené. Velmi nenáročný a jednoduchý redakční systém, který lze na routeru bez problémů provozovat se nazývá K:CMS[1].

Stáhněte archiv redakčním systémem a obsah složky nakopírujte do složky /opt/share/www/lighttpd/kcms/.

Povolte zápis do potřebných adresářů příkazem: chmod 777 /opt/share/www/lighttpd/kcms/gallery && chmod 777 /opt/share/www/lighttpd/kcms/gallery/thumbs && chmod 777 /opt/share/www/lighttpd/kcms/files && chmod 777 /opt/share/www/lighttpd/kcms/backups && chmod 666 /opt/share/www/lighttpd/kcms/config.php

Otevřete webovou stránku http://my.router/kcms/install.php a projděte jednoduchým instalačním procesem.


[1] Redakční systém K:CMS http://kcms.matl-soft.cz/ doporučená verze pro použití s SQLITE je 1.53

Categories: Linux návody, software Tags:

Zprovoznění lepšího FTP serveru vsftpd

12.05.2009 Bez komentářů

Na serveru již běží jednoduchý FTP klient, ale mnohem lepším řešením s pokročilejším nastavením je vsftpd. Proveďte následující příkazy: ipkg install xinetd <enter> ipkg install vsftpd <enter> mkdir -p /opt/usr/share/empty <enter> rm /opt/etc/xinetd.d/telnetd <enter> rm /opt/etc/xinetd.d/ftp-sensor <enter>

editujte, případně vytvořte, konfigurační soubor opt/etc/xinetd.d/vsftp:

# description: The vsftpd FTP server serves FTP connections.
# it uses normal, unencrypted usernames and passwords for auth
service ftp
{
disable = no
socket_type = stream
user = admin
server = /opt/sbin/vsftpd
server_args = /opt/etc/vsftpd.conf
wait = no
nice = 10
only_from = 0.0.0.0/0
}

Spusťte killall stupid-ftpd <enter> /opt/etc/init.d/S10xinetd < enter >

Nakonfigurujte vsftpd server pomocí uvedených soborů: /opt/etc/vsftpd.conf, /opt/etc/vsftpd.chroot_list (seznam uživatelů) a /opt/etc/vsftpd.user_list.

Pro snadnější konfiguraci je v archivu k dispozici soubor vsftpd.zip, jehož obsah nakopírujte do /opt/etc.

Dále je nutné přidat do /etc/passwd souboru uživatele pro vsftpd server, např.:

ftp:$1$uOopDAdf$5csTDxcV.wwvRzHTcgSt30:0:0::/opt/share/www/:/bin/sh
user1:$1$.T.y.=user1=oIb8G1qJDp1gC9.:0:0:ftp:/opt/share/www/lighttpd/user1:/bin/sh

Zeditujte hesla uživatelů příkazem: passwd user1 <enter> nastavte heslo pro user1 a totéž udělejte pro případné další uživatele.

Aby po restartu zůstal soubor passwd tak, jak jste jej zeditovali, musíte do souboru /usr/local/.files zapsat cestu k souboru s uživateli. Tímto zajistíte ukládání uvedených souborů do flashfs. Například:

/etc/passwd
/etc/group
/usr/local/sbin/hosts

Následně je třeba vytvořit všem uživatelům odpovídající adresáře v /opt/share/www/lighttpd/

Vytvořte adresář /opt/etc/vsftpd_user_conf a v něm soubor user1 s kódem
local_root=/opt/share/www/lighttpd/user1

V tomto souboru uživatele definujete složky, ke kterým má uživatel práva přistupovat. Obdobně postupujte pro konfiguraci dalších uživatelů

Vše uložte na flash: flashfs save && flashfs enable && flashfs commit (tento postup je třeba zopakovat pokaždé, když se mění soubory mimo adresář /opt) následuje restart reboot <enter>

Categories: Linux návody, software Tags:

Instalace Lighttpd – www serveru + PHP

11.05.2009 1 komentář

Určitě hlavním důvodem k modifikaci routeru je poskytování informací. K tomuto poslouží především webový server s podporou PHP, FTP serveru a SQL databází, který bude sloužit jako hlavní informační kanál.

Přihlaste se telnetem k routeru a nainstalujte potřebné balíky:

ipkg update <enter> dále nainstalujte následující balíčky:

  • ipkg install openssl
  • ipkg install lighttpd
  • ipkg install php-fcgi
  • ipkg install unzip
  • ipkg install libsigc++
  • ipkg install libgd
  • ipkg install php-gd
  • ipkg install php-mbstring
  • ipkg install microperl
  • a v případě potřeby i databázi ipkg install sqlite

Pokud chcete všechny úkoly vložit v rámci jedné fronty, spojte je pomocí znaků &&.

Založte adresář cache a compress a nastavte práva zápisu:
mkdir /opt/share/www/lighttpd/cache <enter> mkdir /opt/share/www/lighttpd/cache/compress <enter> mkdir /opt/share/www/cgi-bin <enter> chmod 777 /opt/share/www/lighttpd/cache <enter> chmod 777 /opt/share/www/lighttpd/cache/compress <enter> chmod 777 /opt/share/www/lighttpd/* <enter> chmod +x /opt/etc/init.d/S80lighttpd <enter>

Nakonfigurujte lighttpd server, nejrychlejší a nejistější variantou je použití WinSCP.

Stačí nakonfigurovat lighttpd server pomocí /opt/etc/lighttpd/lighttpd.conf. Pokud nepotřebujete nic měnit, je výchozí nastavení funkční.

Výtah z konfigurace, kde jsou typy indexů a adresář, pod kterým nám běží web.

## a static document-root, for virtual-hosting take look at the
## server.virtual-* options
server.document-root = „/opt/share/www/lighttpd/“

## where to send error-messages to
server.errorlog = „/opt/var/log/lighttpd/error.log“

# files to check for if …/ is requested
index-file.names = ( „index.php“, „index.html“,
„index.htm“, „default.htm“ )

## bind to port (default: 80)

server.port = 8081

v případě že by server nešel nastartovat a hlásil chybu:

2010-09-02 00:11:04: (log.c.166) server started
2010-09-02 00:11:04: (fdevent_linux_sysepoll.c.134) epoll_create failed (Function not implemented), try to set server.event-handler = „poll“ or „select“
2010-09-02 00:11:04: (fdevent.c.41) event-handler linux-sysepoll failed, try to set server.event-handler = „poll“ or „select“
2010-09-02 00:11:04: (server.c.1112) fdevent_init failed

přepište ještě

## set the event-handler (read the performance section in the manual)

server.event-handler = „select“ # needed on OS X

Konfigurace php: Vytvořte soubor /opt/etc/init.d/S45php příkazem:

echo „#!/bin/sh“ >> /opt/etc/init.d/S45php a vložte do něj tento kód:

#!/bin/sh
export PHP_FCGI_CHILDREN=1

PORT=1260
BIN=/opt/bin/php-fcgi

case $1 in
start)
$BIN -b $PORT &
;;
stop)
kill `pidof php`
;;
*)
echo "usage: $0 (start|stop)"
exit 1
esac

Soubor nastavte jako spustitelný: chmod +x /opt/etc/init.d/S45php <enter> ,aby byl www server dostupný také z internetu, je třeba přidat do souboru /opt/init.usb následující řádek:

iptables -I INPUT -j ACCEPT -p tcp –dport 8081

vše uložte a router restartujte: flashfs save && flashfs commit && flashfs enable && reboot <enter>

O tom, že server lighttpd s php běží správně, se přesvědčíte jednoduše tak, že vytvoříte soubor info.php v umístění kde běží root www serveru /opt/share/www/lighttpd a do něj vložíte tento kód:

<?php
phpinfo();
?>

V prohlížeči zavolejte stránku http://192.168.1.1:8081/info.php nebo http://WAN_adresa/info.php a pokud se objeví info o php je vše funkční a v pořádku.

Pokud se vyskytne chyba 403 – je třeba upravit konfigurační soubor www serveru /opt/etc/lighttpd/lighttpd.conf. V sekci server.modules odkomentujte „mod_fastcgi“, následně sekci fastcgi.server přepište na následující:

fastcgi.server = ( ".php" =>
( "localhost" =>
(
# "socket" => "/tmp/php-fastcgi.socket",
# "bin-path" => "/usr/local/bin/php"
"host" => "127.0.0.1",
"port" => 1260,
)
)
)

Při změně konfigurace www serveru je třeba jej restartovat /opt/etc/init.d/S80lighttpd restart <enter> [10]

Categories: Asus WL-500gP, Linux návody, software Tags:

Instalace balíčkovacího systému IPKG

06.05.2009 komentáře 4

Nyní je nutné nainstalovat balíčkovací systém ipkg: mkdir /opt/tmp <enter>
mkdir /opt/tmp/ipkg <enter> ipkg.sh update <enter> ipkg.sh install ipkg-opt <enter>.


balíčkovací systém pro instalaci software z repositářů v operačním systému Linux běžícím na vestavěných zařízeních. Při daleko menší náročnosti na hardware se snaží o komfort balíčkovacího systému Debianu, dpkg. [1]

Categories: Linux návody, software Tags:

Inicializace USB disku

Pokud potřebujete využít pokročilejší funkce routeru, nemůže vnitřní paměť stačit, proto je třeba připojit větší USB disk, naformátovat jej a přimět router, aby jej připojil následně po každém restartu.

1. Vypněte router, zasuňte USB disk do routeru a zapněte router.

2. Ve webovém rozhraní routeru povolte službu TELNET – System setup – Services -Enable telnet access: YES

3. Přihlaste se z příkazové řádky telnetem do routeru, např. pomocí programu PuTTY ,přihlašovací údaje jsou shodné jako do webového rozhraní routeru, kde 192.168.1.1 je IP adresa našeho routeru.

4. Ověřte, zda systém rozpoznal náš připojený USB disk příkazem df

Pokud je disk funkční vrátí systém podobný výpis:

Filesystem 1k-blocks Used Available Use% Mounted on
/dev/root 3008 3008 0 100% /
/dev/discs/disc0/part1 15752188 66220 15685968 0% /tmp/mnt/disc0_1

Vidíte tedy, že USB disk je připojen v /tmp/mnt/disc1_1 a to je důležité, můžete tedy pokračovat dále:

1. Odpojte USB disk:

umount /tmp/mnt/disc0_1/

Pokud disk využívají nějaké procesy, systém vrátí:

umount: /tmp/mnt/disc1_1: Device or resource busy

Ukončete všechny běžící procesy a znovu odpojte disk: killall stupid-ftpd a
umount /tmp/harddisk/

2. Nyní je USB disk připraven k naformátování. Disk naformátujte v routeru. 1. díl na souborový systém EXT3 o velikosti 15.500MB a druhý oddíl, těsně navazující na souborový systém LINUXSWAP.

Zadejte tedy následující sekvenci příkazů:
fdisk /dev/discs/disc0/disc <enter> d <enter> 1 <enter> (postup odstranění oddílů případně opakujte podle jejich počtu, dokud příkaz d nevrátí:
„No partition is defined yet!“)

n <enter> p <enter> 1 <enter> <enter> +15500M <enter> n < enter >
p <enter> 2 <enter> <enter> <enter> t <enter> 1 <enter> 83 <enter> t <enter> 2 <enter> 82 <enter> w < enter >

Ověřte příkazem fdisk -l <enter>, zda máte vytvořené potřebné oddíly – výpis by měl vypadat následovně:

Disk /dev/scsi/host0/bus0/target0/lun0/disc: 16.1 GB, 16131293184 bytes
25 heads, 25 sectors/track, 50410 cylinders
Units = cylinders of 625 * 512 = 320000 bytes

Device Boot Start End Blocks Id Systém
/dev/scsi/host0/bus0/target0/lun0/part1 1 48439 15137175 83 Linux
/dev/scsi/host0/bus0/target0/lun0/part2 48440 50410 615937+ 82 Linux swap

Dalším krokem bude zadání těchto příkazů pro naformátování oddílů:

mke2fs -j /dev/discs/disc0/part1 <enter> mkswap /dev/discs/disc0/part2 <enter> reboot < enter >

Po restartu připojte disky: mount /dev/discs/disc0/part1 /opt <enter> swapon /dev/discs/disc0/part2 <enter> a ověřte: df <enter>

Filesystem 1k-blocks Used Available Use% Mounted on
/dev/root 3008 3008 0 100% /
/dev/discs/disc0/part1 14899524 131228 14011440 1% /tmp/mnt/disc0_1
/dev/discs/disc0/part1 14899524 131228 14011440 1% /opt

Případně ověřte volné místo na discích příkazem free <enter>

total used free shared buffers
Mem: 30324 14060 16264 0 1664
Swap: 524276 0 524276
Total: 554600 14060 540540


PuTTY – pokročilý telnet klient – http://www.chiark.greenend.org.uk/~sgtatham/putty/

Konnrétně byl použit USB flash disk Kingston DT Mini Slim 16GB, cena 568 Kč bez DPH

Categories: Linux návody, software Tags: