Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - tuxmartin

Stran: 1 ... 13 14 [15] 16 17 ... 37
211
Vývoj / Re:Pouziti "Bash IFS" v busyboxu (cgi-bin)
« kdy: 15. 02. 2016, 14:37:19 »
Co neco takovydleho - http://www.sunspot.co.uk/Projects/Joggler/web_page_scripting.html
a pak budes mit promennou $MAC...
Diky, funguje skvele!

Ze ho neumis pouzivat? POSIX shell nema array. Pokud umis bash, dej si tam bash. Pokud se ti nevejde, tak se budes muset naucit shell, ktery mas k dispozici. Kazdopadne ladit si to v bashi a pak poustet v necem uplne jinem je blbost.
Ano, jsem zvykli na bash a posix-only shell mi dela problemy.


212
Vývoj / Re:Jak vytvořit unikátní id pro adresář
« kdy: 15. 02. 2016, 12:12:33 »
Ahoj. Potřeboval bych poradit, nenapadá někoho, jak by šlo vytvořit nějaké unikátní id (buď číslo nebo string je mi to jedno) pro název adresáře umístěného v nějaké cestě ?
A co mktemp?
Kód: [Vybrat]
martin@martin:~$ mktemp -dt
/tmp/tmp.7mCD8330Xx
martin@martin:~$ mktemp -dt
/tmp/tmp.LdQwcJ0bAU
martin@martin:~$ mktemp -dt --tmpdir=/home/martin/Plocha
/home/martin/Plocha/tmp.9u1TMF6wBr
martin@martin:~$ mktemp -dt --tmpdir=/home/martin/Plocha
/home/martin/Plocha/tmp.sBcr7Ne3xK
martin@martin:~$ mktemp -dt --tmpdir=/home/martin/Plocha --suffix=_007
/home/martin/Plocha/tmp.WgWkmRWsT2_007
martin@martin:~$ mktemp -dt --tmpdir=/home/martin/Plocha --suffix=_007
/home/martin/Plocha/tmp.YsfTrCnRd5_007
martin@martin:~$

213
Vývoj / Re:Pouziti "Bash IFS" v busyboxu (cgi-bin)
« kdy: 15. 02. 2016, 12:09:13 »
Vyřešit se to dá použitím nesračkoidního shellu.
Mam jenom 4MB flash, do ktery musim narvat cely system. Pokud by bylo misto, dal bych tam PHP a neresil blbosti.
Co je na POSIX shellu bez rozsireni tak spatneho?

214
Vývoj / Re:Pouziti "Bash IFS" v busyboxu (cgi-bin)
« kdy: 15. 02. 2016, 10:37:10 »
Spletl jsem se - problem neni vyresen.

Kdyz misto bashe pouziju SH, tak zadne promenne
Kód: [Vybrat]
"${param[x]}"
vubec neexistuji. Jak se to da vyresit?

215
Vývoj / Re:Pouziti "Bash IFS" v busyboxu (cgi-bin)
« kdy: 13. 02. 2016, 21:35:48 »
Problem vyresen:
Kód: [Vybrat]
#!/bin/sh

# FORM GET:
saveIFS=$IFS
IFS='=&'
param=$QUERY_STRING
IFS=$saveIFS

echo "Content-type: text/html"
echo ""
echo "<html><head><title>TEST</title></head>"
echo "<body>"
echo "<h1>abc<h1>"

if [ "${param[0]}" = "MAC" ]
then
        echo "OK"
        echo ${param[1]} >> /tmp/cgi-bin
else
        echo "SPATNY VSTUP"
fi

echo "</body></html>"

Busybox nesmi mit promennou v zavorkach "param=$QUERY_STRING".

216
Vývoj / Re:Pouziti "Bash IFS" v busyboxu (cgi-bin)
« kdy: 13. 02. 2016, 13:20:27 »
Hele a co presne Ti nefunguje? Ted jsem to zkousel a IFS mi prijde funkcni:

Pokud v output skriptu zmenim bash za sh:
Kód: [Vybrat]
#!/bin/sh

# FORM GET:
saveIFS=$IFS
IFS='=&'
param=($QUERY_STRING)
IFS=$saveIFS

Apache mi vrati HTTP 500:

Kód: [Vybrat]
Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at webmaster@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.

217
Vývoj / Pouziti "Bash IFS" v busyboxu (cgi-bin)
« kdy: 13. 02. 2016, 00:12:21 »
Ahoj,
potrebuji napsat jednoduchou CGI webovou stranku na routeru s OpenWrt.
Jsem si plne vedom nebezpecnosti pouziti shellu jako interpretu prikazu zadanych pres prohlizec, ale PHP se mi do 4MB flash spolu se systemem proste nevejde a cgi skript nebude dostupny z internetu.

Mam otestovane tyto dva skripty na Ubuntu s Apachem:

/usr/lib/cgi-bin/input :
Kód: [Vybrat]
#!/bin/bash
 
echo "Content-type: text/html"
echo ""
echo "<html><head><title>TEST</title>"

cat << EOF
<body>
<form action="output" method="GET">
MAC <input name="MAC" placeholder="0A:1B:2C:3D:4E:5F">
<input type="submit" name="odeslat" value="Odeslat" style="font-size: 150%">
<form>
EOF

echo "</body></html>"

/usr/lib/cgi-bin/output :
Kód: [Vybrat]
#!/bin/bash
 
# FORM GET:
saveIFS=$IFS
IFS='=&'
param=($QUERY_STRING)
IFS=$saveIFS

echo "Content-type: text/html"
echo ""
echo "<html><head><title>TEST</title></head>"
echo "<body>"
echo "<h1>abc<h1>"

if [ "${param[0]}" = "MAC" ]
then
echo "OK"
echo ${param[1]} >> /tmp/cgi-bin
else
echo "SPATNY VSTUP"
fi

echo "</body></html>"

S bashem to funguje krasne. Ale pokud pouziju (testuju na ubuntu) busybox sh, nebo dash - skript nefunguje.
Problem je s IFS.

Muzete mi nekdo poradit, jak snadno pomoci busybox shellu naparsovat query string ve tvaru
http://localhost/cgi-bin/send?MAC=0A%3A1B%3A2C%3A3D%3A4E%3A5F&odeslat=Odeslat

Dekodovani URL neni problem:
Kód: [Vybrat]
$ alias urldecode='sed "s@+@ @g;s@%@\\\\x@g" | xargs -0 printf "%b"'
$ echo "http://localhost/cgi-bin/send?MAC=0A%3A1B%3A2C%3A3D%3A4E%3A5F&odeslat=Odeslat" | urldecode
http://localhost/cgi-bin/send?MAC=0A:1B:2C:3D:4E:5F&odeslat=Odeslat

218
Server / Re:Monit - hlídání HTTP se stavovým kódem 401
« kdy: 08. 02. 2016, 13:28:15 »
Na čem provozuješ Tvheadend a s kolika DVB-T tunery (PCIe nebo USB)? Dík.
Raspberri Pi 2. 1x USB DVB-S2.

219
Server / Re:Proč je Apache nejrozšířenější?
« kdy: 08. 02. 2016, 12:12:46 »
Že by třeba snadné použití .htaccess? Co z toho ale třeba nejde nakonfigurovat v serveru nginx?

Mozna muj dotaz uplne nesouvisi s puvodnim tematem, ale umi nginx nejak sam zpracovavat .htaccess s rewrite pravidly?
Beznemu uzivateli vytvorim v apachi virtualhost, db a ftp. On si jenom rozbali zip s wordpressem a vse funguje.
Jasne, nasel jsem online konvertory htaccess rewrite pravidel pro nginx. Ale bezny uzivatel to nechce resit.
Mas nejaky tip, jak to zautomatizovat? Aby se pro uzivatele hostingu *vubec nic* nezmenilo.
Nginx bych rad dal misto apache, ale vyse popsany problem mi v tom brani.

Diky za radu :-)

220
ve škole máme celkem problematické nastavení sítě - zejména pak blokování portů. Kvůli tomu nemůžu využívat služby jako ssh, pop3, imap, sftp,... Nebudu lhát, docela mě to štve.
Napadlo mě, že by se na VPS dal nainstalovat OpenVPN a vytvořit tunel, přes který bych se připojoval skrze tento server k síti. Server VPN by pak komunikoval na portu 443, aby nebyl problém s blokováním připojení.

Sam jsem to tak 5 let pouzival. Doma na serveru s verejnou IPv4 mi bezi OpenVPN na TCP443. Zatim jsem se vsude bez problemu pripojil.
Pokud chcete, muzu poslat ukazkovy konfigurak, ktery pouzivam.

Neni to nahodou UHK? ;-)

Jinak by opravdu mohlo stacit SSH bezici na portu 443.

221
Server / Re:Monit - hlídání HTTP se stavovým kódem 401
« kdy: 08. 02. 2016, 11:59:43 »
Není to náhodou tak, že máte v konfiguraci zapsat podmínku pro úspěch? Pak byste měl uvést status = 302, nikoli status != 302. To je podle mě jádro pudla, přepište a otestujte.
Diky, mate pravdu. Uz to funguje:

Kód: [Vybrat]
check host rpi.lan with address rpi.lan
   start program "/usr/bin/ssh pi@rpi.lan /usr/sbin/service tvheadend start"
   stop program "/usr/bin/ssh pi@rpi.lan /usr/sbin/service tvheadend stop"
   if failed
      port 9981
      protocol http
      status == 302
   then restart

222
Server / Re:Monit - hlídání HTTP se stavovým kódem 401
« kdy: 07. 02. 2016, 10:38:24 »
Po dlouhe dobe jsem opet zkousel monitorovat stav http. Pouzivam monit (1:5.9-1+deb8u1) v Debianu Jessie.

Pokud TVheadend bezi, vrati HTTP 302:
Kód: [Vybrat]
/usr/bin/curl -o /dev/null --silent --head --write-out '%{http_code}\n' rpi.lan:9981
302

Pokud nebezi, vrati HTTP 000 (nebo nic):
Kód: [Vybrat]
/usr/bin/curl -o /dev/null --silent --head --write-out '%{http_code}\n' rpi.lan:9981
000

Zkousel jsem:
Kód: [Vybrat]
check host rpi.lan with address rpi.lan
   start program "/usr/bin/ssh pi@rpi.lan /usr/sbin/service tvheadend start"
   stop program "/usr/bin/ssh pi@rpi.lan /usr/sbin/service tvheadend stop"
   if failed
      port 9981
      protocol http
      status != 302
   then restart
Ale vzdy skonci s chybou:
Kód: [Vybrat]
Port Response time:	connection failed to rpi.lan:9981 [HTTP via TCP]

Pak jsem zkousel:
Kód: [Vybrat]
check process tvheadend with path "/usr/bin/curl -o /dev/null --silent --head --write-out '%{http_code}\n' rpi.lan:9981"
   start program "/usr/bin/ssh pi@rpi.lan /usr/sbin/service tvheadend start"
   stop program "/usr/bin/ssh pi@rpi.lan /usr/sbin/service tvheadend stop"
   protocol http
   if status != 302 then restart
ale to se monit ani nespusti:
Kód: [Vybrat]
# systemctl status monit.service
● monit.service - LSB: service and resource monitoring daemon
   Loaded: loaded (/etc/init.d/monit)
   Active: failed (Result: exit-code) since Ne 2016-02-07 10:27:14 CET; 7s ago
  Process: 31373 ExecStop=/etc/init.d/monit stop (code=exited, status=0/SUCCESS)
  Process: 28851 ExecReload=/etc/init.d/monit reload (code=exited, status=0/SUCCESS)
  Process: 31377 ExecStart=/etc/init.d/monit start (code=exited, status=1/FAILURE)

úno 07 10:27:14 server monit[31377]: Starting daemon monitor: monit/etc/monit/monitrc:293: syntax error 'protocol'
úno 07 10:27:14 server monit[31377]: failed!

Muzete mi nekdo prosim poradit, jak monitorovat HTTP pozadavek na host:port a overit, ze vrati status 302? V opacnem pripade vykona restart.

223
Odkladiště / Re:SIP a XMPP - mrtvoly?
« kdy: 03. 02. 2016, 18:34:09 »
Jinak ja cpu XMPP vsude, hodne firem, co znam ho cpe vsude ... i tam, kde to na prvni pohled nedava smysl (hodne propojenych pristroju v nemocnicich tlacha pres XMPP). Je to dano jednoduchosti implementace, 100 loc bot > hotovy server > hotovy klient framework > 100 loc bot a je vymalovano.
Muzes to srovnat treba s MQTT? V cem je pro tebe XMPP lepsi?

224
Distribuce / Re:Automaticky doplnovani prikazu TAB
« kdy: 25. 12. 2015, 20:21:33 »
Diky! Opravdu nebylo zapnute.

/etc/bash.bashrc :
Kód: [Vybrat]
...
# enable bash completion in interactive shells
#if ! shopt -oq posix; then
#  if [ -f /usr/share/bash-completion/bash_completion ]; then
#    . /usr/share/bash-completion/bash_completion
#  elif [ -f /etc/bash_completion ]; then
#    . /etc/bash_completion
#  fi
#fi
...




225
Distribuce / Automatické doplňování příkazů TAB
« kdy: 25. 12. 2015, 20:10:02 »
Posledni par let jsem pouzival temer vyhradne Ubuntu. Zvykl jsem si na automaticke doplnovani po stisku TAB.
Staci napsat apt-get i TAB a mam apt-get install . Pokud mam v napr. v /mnt pripojeny jenom jeden disk /mnt/disk, staci zadat umount /mn TAB a mam doplnenou celou cestu.
Tohle vsechno mi v Debianu chybi. Jasne, da se bez toho zit. Ale proc?
Mam nainstalovany balicek bash-completion, ale nestaci to. Doplnuji se mi jenom nazvy programu. Napr. apt-g TAB doplni apt-get.

Da se podpora doplnovani nejak doplnit? Urcite mi chybi jenom nejaky balicek...

Testovano na aktualnim stable Debianu a Ubuntu 12.04.

Stran: 1 ... 13 14 [15] 16 17 ... 37