Byla vydána nová verze 2.4.67 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 11 zranitelností.
Brush (Bo(u)rn(e) RUsty SHell) je v Rustu napsaný shell kompatibilní s Bash (Bourne Again SHell). Vydána byla verze 0.4.0.
Google zveřejnil seznam 1 141 projektů (vývojářů) od 184 organizací přijatých do letošního, již dvaadvacátého, Google Summer of Code. Přihlášeno bylo celkově 23 371 projektů od 15 245 vývojářů ze 131 zemí.
Na čem pracovali vývojáři GNOME a KDE Plasma minulý týden? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.
Open source počítačová hra na hrdiny NetHack (Wikipedie, GitHub) byla vydána v nové verzi 5.0.0. První verze této hry byla vydána v roce 1987.
Evropská komise naléhavě vyzvala členské státy EU, aby kvůli ochraně nezletilých na internetu urychlily zavádění unijní aplikace pro ověřování věku a zajistily její dostupnost do konce roku. Členské státy mohou zavést aplikaci EU pro ověřování věku jako samostatnou aplikaci nebo ji integrovat do takzvané evropské peněženky digitální identity.
Richard Biener oznámil vydání verze 16.1 (16.1.0) kolekce kompilátorů pro různé programovací jazyky GCC (GNU Compiler Collection). Jedná se o první stabilní verzi řady 16. Přehled změn, nových vlastností a oprav a aktualizovaná dokumentace na stránkách projektu. Některé zdrojové kódy, které bylo možné přeložit s předchozími verzemi GCC, bude nutné upravit.
Zulip Server z open source komunikační platformy Zulip (Wikipedie, GitHub) byl vydán ve verzi 12.0. Přehled novinek v příspěvku na blogu.
Před 30 lety, tj. v úterý 30. dubna 1996, byl spuštěn Seznam.cz.
Byly zpracovány a zveřejněny všechny videozáznamy, které stojí za zveřejnění, z konference FOSDEM 2026.
Zdravim dobri lide,
potreboval bych poradit s jednim skriptikem.
Jde mi o neustale zjistovani dostupnosti hosta. Pokud je host online, skript by se mel pripojit telnetem na port 21 a vystup ukladat do souboru. Pokud se klient odpoji, spojeni by se melo zavrit a opet pokracovat v overeni dostupnosti a tak dokola. Pokusil jsem se na to neco napsat, ale neni to 100% funkcni. Nekdy to skonci na cyklu while u read - skript si mysli, ze je klient online, ale neni a ceka na data, ktera nejdou.
#!/bin/bash
ADRESA=$1
while [ 1 ]
do
PING=$(ping -W 1 -c 1 $ADRESA | grep "from" | awk '{print $(NF-1)}')
if [[ $PING == *time* ]]; then
# Je online
# Otevreme spojeni
#echo "Online, oteviram socket"
exec 3</dev/tcp/$ADRESA/21
# Zacneme cist data
while read <&3
do
set -- ${REPLY//$'\r'/}
TODAY=$(/bin/date +'%Y%m%d')
TIME=$(/bin/date +'%H:%M:%S')
#echo "ctu ..."
echo -e "$TIME\n$REPLY\n" >> /scripts/kas/logs/$TODAY-$ADRESA.log
PING=$(ping -W 1 -c 1 $ADRESA | grep "from" | awk '{print $(NF-1)}')
# Jestlize neni odezva, prerusime cyklus a zavreme socket
if [[ $PING != *time* ]]; then
#echo "Disconnected"
exec 3<&-
break;
fi
done
#else
# Neni online
#echo "Timed out"
fi
sleep 1
done
Nemel by z Vas nekdo lepsi napad, jak by se to dalo vylepsit a osetrit tuhle chybu?
Mockrat diky!
Kaja
Řešení dotazu:
V příloze máš ukázkový skriptík v Pythonu. Řešit takového klient v Bashi nemá smysl.
Když ho spustíš, tak se pokusí připojit na:
$ nc -l -p 5000 127.0.0.1
Pokud se nepodaří připojit k serveru, uloží tuto informaci do logu a za 3s to zkusí znovu, pokud se to znovu nepodaří, tak neprovádí logování stejné chyby, pouze pokud by se vyskytla za dobu delší než 60s. Používat ping je zbytečné. Log sype do:
$ tail -f /tmp/client.log
2010-03-10 11:40:10,674 - INFO - starting client 0.1.0
2010-03-10 11:40:10,675 - INFO - create connection to 127.0.0.1:5000
2010-03-10 11:40:17,377 - INFO - receive data: 'Hello'
2010-03-10 11:40:18,969 - INFO - receive data: 'Bye'
2010-03-10 11:40:19,898 - INFO - close connection to 127.0.0.1:5000
2010-03-10 11:40:22,896 - ERROR - TCP client exception
Traceback (most recent call last):
File "./client.py", line 43, in main_thread
self.socket.connect((self.address, self.port))
File "<string>", line 1, in connect
error: (111, 'Connection refused')
2010-03-10 11:45:04,681 - INFO - received signal 2
2010-03-10 11:45:04,682 - INFO - exit
Tiskni
Sdílej: