Coppwr, tj. GUI nástroj pro nízkoúrovňové ovládání PipeWire, byl vydán v nové verzi 1.6.0. Zdrojové kódy jsou k dispozici na GitHubu. Instalovat lze také z Flathubu.
Byla vydána dubnová aktualizace aneb nová verze 1.89 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Vypíchnout lze, že v terminálu lze nově povolit vkládání kopírovaného textu stisknutím středního tlačítka myši. Ve verzi 1.89 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Proton, tj. fork Wine integrovaný v Steam Play a umožňující v Linuxu přímo ze Steamu hrát hry určené pouze pro Windows, byl vydán ve verzi 9.0-1 (𝕏). Přehled novinek se seznamem nově podporovaných her na GitHubu. Aktuální přehled her pro Windows běžících díky Protonu také na Linuxu na stránkách ProtonDB.
Byla vydána verze 1.78.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání na GitHubu. Vyzkoušet Rust lze například na stránce Rust by Example.
Služba Dropbox Sign (původně HelloSign) pro elektronické podepisování smluv byla hacknuta.
Byla vydána nová major verze 8.0 textového editoru GNU nano (Wikipedie). Podrobný přehled novinek a oprav v oznámení v diskusním listu info-nano nebo v souboru ChangeLog na Savannah. Volbou --modernbindings (-/) lze povolit "moderní" klávesové zkratky: ^C kopírování, ^V vložení, ^Z vrácení zpět, … Tato volba je aktivována také pokud binárka s nano nebo link na ni začíná písmenem "e".
Před 60 lety, 1. května 1964, byl představen programovací jazyk BASIC (Beginners' All-purpose Symbolic Instruction Code).
Byla vydána nová verze 12.0 minimalistické linuxové distribuce (JeOS, Just enough Operating System) pro Kodi (dříve XBMC) a multimediálního centra LibreELEC (Libre Embedded Linux Entertainment Center). Jedná se o fork linuxové distribuce OpenELEC (Open Embedded Linux Entertainment Center). LibreELEC 12.0 přichází s Kodi 21.0 "Omega".
Microsoft vydal novou velkou aktualizaci 2404.23 v září 2019 pod licencí SIL Open Font License (OFL) zveřejněné rodiny písma Cascadia Code pro zobrazování textu v emulátorech terminálu a vývojových prostředích.
OpenTofu, tj. svobodný a otevřený fork Terraformu vzniknuvší jako reakce na přelicencování Terraformu z MPL na BSL (Business Source License) společností HashiCorp, bylo vydáno ve verzi 1.7.0. Přehled novinek v aktualizované dokumentaci. Vypíchnout lze State encryption.
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: