Na webu konference Den IPv6, která se konala 4. června v Národní technické knihovně v pražských Dejvicích, jsou nyní k dispozici všechny prezentace (v PDF) a jejich videozáznamy. Organizátory konference byly i letos sdružení CESNET, CZ.NIC a NIX.CZ.
Byla vydána nová verze 9.1.0 správce sbírky fotografií digiKam (Wikipedie). Přehled novinek i s náhledy v oficiálním oznámení (NEWS). Vypíchnout lze vylepšené vyhledávání nebo podporu Pixel Motion Photos. Nejnovější digiKam je ke stažení také jako balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo ke spuštění a spustit.
Přihlaste svou přednášku na další ročník konference LinuxDays, který proběhne 3. a 4. října na FIT ČVUT v pražských Dejvicích. Příjem témat poběží do konce prázdnin, pak proběhne veřejné hlasování a následně sestavení programu.
Byla vydána nová verze 2.4.68 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 13 zranitelností.
Apple na své vývojářské konferenci WWDC26 (Worldwide Developers Conference, keynote) představil řadu novinek. Vypíchnout lze novou generaci Apple Intelligence a zbrusu novou Siri, která dostala název Siri AI. Kvůli Aktu o digitálních trzích (DMA) však funkce Siri AI nebudou v systémech iOS 27 a iPadOS 27 k dispozici uživatelům v Evropské unii.
Byla vydána nová verze 1.18.0 distribučního frameworku Flatpak (Wikipedie), tj. technologie umožňující distribuovat aplikace v podobě jednoho instalačního souboru na různé linuxové distribuce a jejich různá vydání. Přehled novinek na GitHubu. Vypíchnout lze podporu rozhraní /dev/kfd pro výpočty na kartách AMD (AMDKFD).
aMule (Wikipedie), tj. multiplatformní klient pro peer-to-peer sdílení souborů pro sítě eD2k and Kademlia, byl po více než pěti letech od vydání poslední verze 2.3.3, vydán v nové major verzi 3.0.0 (GitHub). S novou webovou stránkou a dokumentací.
Byly vyhlášeni vítězové a zveřejněny vítězné zdrojové kódy (YouTube, GitHub) již 29. ročníku soutěže International Obfuscated C Code Contest (IOCCC), tj. soutěže o nejnepřehlednější (nejobfuskovanější) zdrojový kód v jazyce C.
Evropská komise předložila evropský balíček pro technologickou suverenitu, tedy soubor opatření, která mají posílit kapacity EU v oblasti polovodičů, umělé inteligence, cloudu a open source. To Evropě pomůže stát se lídrem v oblasti umělé inteligence, posílit její digitální autonomii a vytvářet podmínky pro udržitelnější digitální budoucnost.
OpenCV (Open Source Computer Vision, Wikipedie), tj. open source multiplatformní knihovna pro zpracování obrazu a počítačové vidění, byla vydána v nové major verzi 5.
echo "datum_a_cas" >> soubor
echo "datum" >> soubor_na_webudo vašeho restarteru. S tím že soubor_na_webu je cesta k souboru na vašem lokálním webserveru. Ale to by zapisovalo spouštění té aplikace a ne její pád...
$allowed_ip="192.168.0.1"; // adresa, ktera muze zapsat
// Pokud je volano "write" z povolene IP zapis do logu jinak zobraz samotny log
if($_GET["write"] and $_SERVER["REMOTE_ADDR"]==$allowed_ip) {
file_put_contents("app.log",date("d.m.y - H:i")."\n",FILE_APPEND)
} else {
echo nl2br(file_get_contents("app.log"));
}
$allowed_ip="moje.ip";
// Pokud je volano "write" z povolene IP zapis do logu jinak
zobraz samotny log
if($_GET["write"] and $_SERVER["REMOTE_ADDR"]==$allowed_ip) {
file_put_contents("app.log",date("d.m.y -
H:i")."\n",FILE_APPEND)
} else {
echo nl2br(file_get_contents("app.log"));
}
Ale co s nim?
Omlouvam se, jsem v mnoha ohledech zacatecnik
#!/bin/sh
# zmena adresare na pracovni
cd /opt/aplikace/bin
# re-starter
start() {
# spoustim aplikaci
aplikaceCoSeRestartuje
# jakmile spadne (coz je prave ted), zapisuju na web
wget -q http://domena.com/applog.php?write=1 -O /dev/null
# volam znovu re-starter
start
}
# volam re-starter
start
V PHP skriptu (viz. vyse) staci zmenit jen povolenou IP (aby ti tam nezapisovali vtipalkove) a snad cestu k souboru s logem..
Tot vse.
nicmene ten postup mam dat misto obsahu obsahu restarteru (timto souborem jsem to drive spoustel spustim) ? Nebo mam proste jen ten postup spustit po prvnim spusteni toho restarteru?
(kvuli nejakemu bufferovani jak se tam pise)
#!/usr/bin/env python
import time, subprocess, os
appdir = '/home/honza'
prg1 = './prvni.py'
prg2 = './druha.py'
logfilename = 'restarty.log'
os.chdir(appdir)
subprocess.Popen(prg1)
time.sleep(2)
fw = file(logfilename, 'a')
while True:
time.sleep(1)
prg2_process = subprocess.Popen(prg2)
prg2_process.wait()
fw.write(time.strftime("%d.%m.%y - %H:%M\n"))
fw.flush()
Tohle změní pracovní adresář, pustí první aplikaci, počká nějakou dobu, a pak stále pouští druhou aplikaci, přičemž časy pádů zaznamenává do souboru v tom formátu jak jsi chtěl. Pro jistotu volám flush() (kvůli bufferování), aby obsah logu byl vždy aktuální.
> přepíše původní soubor
>> připíše na konec
Takže tam zkus místo jednoho > dát dvě >>.
PS: Používej tag PRE pro výpis kódu, logu, ... - je to přehlednější.
.... Ale jdu juknout na ten serial... Nicmene budu prubezne koukat i sem :D - nejsem si jisty, zda toto v tom serialu najdu...
26.02.07 13:19 26.02.07 14:06 26.02.07 14:28 26.02.07 - takto to vypada kdyz ten soubor zobrazim na webu
ale ten soubor pritom ma sam o sobe spravny format - kdyz ho otevru editorem, tak je spravne ve sloupci...
echo vypadalo:
echo "$(date "+%d.%m.%y %H:%M")<br>"
Diky za pomoc
cd /opt/AdresarAplikace/bin&&(./JmenoAplikace&)&&sleep 2&&while sleep 1; do ./JmenoAplikace; echo $(date "+%d.%m.%y %H:%M") >> /srv/www/htdocs/restartlog.php; done
?
- nějaký minimální čas to dá). Jak ale říkám, složité to nebude
, zvládnul bys to i sám. Každopádně, pokud to uděláš Ty, já, nebo někdo jiný, řešit se to bude zde (né e-maily, nebo jinak)!
)
(off topik: Jinak pokud by jsi chtel nejakou tu cokoladku - klidne i cokoladu nebo i vic cokolad, tak shanim pomocnika s linuxem
- pokud by jsi mel chut - treba na tu cokoladu - zajem a cas, tak se mi ozvi na icq
)
#!/bin/sh declare -i LT CT DT declare -i HOD MIN SEC LT=$(date +"%s") while : do sleep 1 ./JmenoAplikace CT=$(date +"%s") DT=$CT-$LT # DT=$CT-$LT+30 # ak sa ma zaokruhlovat na cele minuty LT=$CT SEC=$DT%60 MIN=$DT/60 HOD=$MIN/60 MIN=$MIN%60 STR="$(date "+%d.%m.%y %H:%M") - vydrzel " if [ "$HOD" -gt 0 ]; then STR="$STR $HOD hodin a "; fi STR="$STR $MIN minut bez padu" echo $STR >> /srv/www/htdocs/restartlog.php doneRiešenie by mohlo byť generovanie PHP súboru (a nie len textu) a tie dátumy/rozdiely by sa vygenerovali pomocou php až pri zobrazovaní.
cd /opt/AdresarAplikace/bin&&(./JmenoAplikace&)&&sleep 2&&while sleep 1; do ./JmenoAplikace; echo $(date "+%d.%m.%y %H:%M") >> /srv/www/htdocs/restartlog.php; done ??
me prave prijde, ze to je jine - protoze tam v tom scriptu nevidim treba to cd /opt/..........
Dekuji
#!/bin/sh cd /opt/AdresarAplikace/bin ./JmenoAplikace sleep 2 declare -i LT CT DT declare -i HOD MIN SEC LT=$(date +"%s") while : do sleep 1 ./JmenoDruheAplikace CT=$(date +"%s") DT=$CT-$LT+30 # ak sa ma zaokruhlovat na cele minuty LT=$CT SEC=$DT%60 MIN=$DT/60 HOD=$MIN/60 MIN=$MIN%60 STR="$(date "+%d.%m.%y %H:%M") - vydrzel " if [ "$HOD" -gt 0 ]; then STR="$STR $HOD hodin a "; fi STR="$STR $MIN minut bez padu" echo $STR >> /srv/www/htdocs/restartlog.php done #koniec
#!/usr/bin/python
import mx.DateTime, os, subprocess, time
appdir = '/opt/aplikace/bin'
prg1 = './PrvniAplikace'
prg2 = './PadajiciAplikace'
logfilename = '/srv/www/htdocs/restartlog.php'
def stopky():
old = mx.DateTime.now()
while True:
now = mx.DateTime.now()
diff = now - old
old = now
h_diff = int(diff.hours)
m_diff = diff.second
diff_str = ' - vydrzel %d hod. %d min. bez padu.' %(h_diff, m_diff)
now_str = now.strftime("%d.%m.%y - %H:%M")
yield now_str, diff_str
os.chdir(appdir)
subprocess.Popen(prg1)
time.sleep(2)
fw = file(logfilename, 'a')
for cas, rozdil in stopky():
fw.write(cas + rozdil + '\n')
fw.flush()
time.sleep(1)
prg2_process = subprocess.Popen(prg2)
prg2_process.wait()
Nes:~ # ./mangosstart2
-bash: ./mangosstart2: /usr/bin/python^M: bad interpreter: No such file or directory
Nes:~ #
python a pokud ti odpoví bash: python: command not found., kontaktuj svého správce. Pokud tam je, změň první řádek na
#!/usr/bin/env python
predpokladejme, ze mate na serveru prostredi s php, pak napriklad nejaky takovyto skript ulozte do souboru s priponou php nekam mezi skripty verejne pristupne "z webu"
<?php
$output = shell_exec('grep JMENOPADAVEAPLIKACE /var/log/messages');
echo "<pre>$output</pre>";
?>>
vypis by se dale naporcoval podle predstav ...
mohlo by se stat, ze to i bude fungovat, ma to nekolik predpokladu:
- vas webovy server (asi apache) bezi s pravy uzivatele, ktery muze cist /var/log/messages
- grep lezi nekde, kde to shell_exec prohledava
- nasly by se i dalsi
Tiskni
Sdílej: