Joe Brockmeier z Linux Weekly News vyzkoušel různé forky webového prohlížeče Mozilla Firefox: především GNU IceCat, Floorp, LibreWolf a Zen. V článku shrnuje, v čem se liší od výchozí konfigurace Firefoxu, co mají za vlastní funkcionalitu, jak a kým jsou udržované atd.
Byl vydán Debian 12.10, tj. desátá opravná verze Debianu 12 s kódovým názvem Bookworm. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 12 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.
Byla vydána nová verze 4.5 svobodného notačního programu MuseScore (Wikipedie). Představení novinek v oznámení v diskusním fóru a také na YouTube.
Byla vydána nová verze 8.6.0 správce sbírky fotografií digiKam (Wikipedie). Přehled novinek i s náhledy v oficiálním oznámení (NEWS). 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.
O víkendu probíhá v Praze na Karlově náměstí 13 konference Installfest 2025. Na programu je celá řada zajímavých přednášek a workshopů. Vstup je zdarma. Přednášky lze sledovat i online na YouTube.
Byla vydána nová verze 2.49.0 distribuovaného systému správy verzí Git. Přispělo 89 vývojářů, z toho 24 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.
Premiér Petr Fiala (ODS) dnes na síti X vyloučil, že by za jeho vlády mohla začít platit vyhláška, podle níž by poskytovatelé internetového připojení měli uchovávat adresy internetových stránek, na které se lidé připojují.
Flock 2025, tj. konference pro přispěvatele a příznivce Fedory, proběhne od 5. do 8. června v Praze.
Zemřel Mark Klein, který dlouhá léta pracoval pro telekomunikační firmu AT&T a proslavil se jako whistleblower, když zveřejnil informace o spolupráci AT&T s agenturou NSA. Cílem spolupráce bylo sledovat veškerou komunikaci občanů za pomocí zařízeních v místnosti 641A. O spolupráci obou subjektů napsal knihu Wiring Up The Big Brother Machine...And Fighting It.
Byla vydána nová verze 16 integrovaného vývojového prostředí (IDE) Qt Creator. Podrobný přehled novinek v changelogu.
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 startV PHP skriptu (viz. vyse) staci zmenit jen povolenou IP (aby ti tam nezapisovali vtipalkove) a snad cestu k souboru s logem.. Tot vse.
#!/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ší.
echo
vypadalo:
echo "$(date "+%d.%m.%y %H:%M")<br>"
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
?
#!/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
<?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: