V neděli 11. října proběhne rotace klíče kořenové zóny. Podruhé v historii. Ondřej Filip na blogu CZ.NIC: "Pokud je pro Vás DNS protokol spíše výzva, ale přesto spravujete nějakou síť či DNS resolver, zkuste si jednoduchý test, který připravila firma Cloudflare na této adrese. Obzvláště zbystřit byste měli, pokud uvidíte nějaká červená políčka."
Vláda Spojených států se rozhodla vyřadit americkou softwarovou společnost Microsoft a několik dalších velkých technologických podniků z programu, který umožňuje kvalifikovaným zahraničním pracovníkům získat povolení k trvalému pobytu. Oznámila to včera administrativa amerického prezidenta Donalda Trumpa. Opatření zdůvodnila rozsáhlým zneužíváním programu, který je dlouhodobě terčem kritiky ze strany Trumpových příznivců, neboť prý znevýhodňuje americké pracovníky.
Datové centrum největší ruské technologické společnosti Jandex v Rjazaňské oblasti se stalo cílem dronového útoku a zastavilo provoz. Jandexu se někdy přezdívá „ruský Google“. Provozuje nejoblíbenější internetový vyhledávač v Rusku nebo aplikace pro objednávky jídla a taxi. Využívají jej desítky milionů lidí v rusky mluvících zemích.
Francouzská společnost Mistral AI představila Mistral Large 4 (interně přezdívaný 'le Chonk', volně přeloženo 'pořádný macek'), 'open-weight multimodální hybridní instruct-and-reasoning model s architekturou granulárního MoE, nativně podporující více jak 160 jazyků'. Model má přes jeden bilión parametrů, z nichž při práci využívá 49 miliard, kontextové okno o délce milion tokenů a obrazový enkodér o 1,6 miliardách parametrů.
… více »Svobodný multiplatformní herní engine Bevy napsaný v Rustu byl vydán ve verzi 0.20. Díky 227 přispěvatelům.
Simon Long oznámil Raspberry Pi Desktop pro PC a Mac s Intelem postavený na aktualizovaném Debianu 13 Trixie. S klientem Raspberry Pi Connect pro vzdálenou správu. Ke stažení je vedle Raspberry Pi OS pro Raspberry Pi.
ESP32-C3 adblock přemění lacinou vývojovou desku ESP32‑C3 na samostatný DNS blokovač nejenom reklamních domén, minimalistickou alternativu k populárnímu Pi-hole. ESP32-C3 adblock místo objemných názvů domén ukládá jejich 40-bitové FNV-1a hashe do flash paměti, které pak binárně prohledává, kontrola jedné domény trvá přibližně 10 milisekund. Blocklist pojme až 537 tisíc domén a lze jej spravovat přes webové rozhraní. Projekt zatím
… více »ArtCraft je sada open source aplikací pro práci s obrázky a videi "inspirovaných" aplikacemi od Adobe. Napsaných v Rustu. Pro MacOS, Windows i Linux. Běží také ve webovém prohlížeči. Aktuálně se jedná o 7 aplikací: PhotoCraft (Photoshop), VectorCraft (Illustrator), FilmCraft (Premiere Pro), LightCraft (Lightroom), PdfCraft (Acrobat), EffectCraft (After Effects) a DesignCraft (InDesign). Zdrojové kódy jsou k dispozici na GitHubu.
Strands Decider 2B je malý open-source model s 2 miliardami parametrů, určený k rychlé klasifikaci vstupů a rozhodování mezi možnostmi, generující odpovědi ve stylu modelu Jev. Strands dosáhl přibližně 72% shody s Jevem na veřejné testovací sadě JevBench (tento benchmark pochopitleně nepředstavuje přímé srovnání s modelem Jev). Zdrojové kódy jsou k dispozici na GitHubu pod licencí Apache-2.0, váhy modelu na Hugging Face.
Ve věku 90 let zemřela americká softwarová inženýrka Margaret Hamiltonová, která vedla tým, jenž vyvíjel letový software pro program Apollo amerického Národního úřadu pro letectví a vesmír (NASA).
Děkuji
tempfile=`tempfile 2>/tmp/null` || tempfile=/tmp/test$$ trap "rm -f $tempfile" 0 1 2 5 15
tak presne nevim, ale prvni radek se pokusi nastavit do promenne docasny nazev souboru pomoci prikazu tempfile, presmerovava error vystup, pokud se to nepovede, naplni promennou tempfile cestou /temp/test<pid>. Potom se spusti prikaz trap, ktery neznam ale manual by mel napomoci. Asi to dela neco ze v pripade ze nastane jeden ze signalu 0 1 2 5 nebo 15 tak provede akci "rm -f atd". Ale opravdu jen hadam
trap provede to, co je v uvozovkách za ním - v tomto případě odstraní ten dočasný soubor, pokud odchytí některý ze signálů uvedených těmi čísly na konci. Seznam signálů tady:
$ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX
Ještě dodám, že "signál 0" v tomto kontextu znamená normální ukončení skriptu.
Jinak v zájmu toho, kdo má ten skript používat, doufám, že to /tmp/null je ve skutečnosti jen špatně opsané /dev/null. A ten "plán B" taky vypadá dost nebezpečně.
mkdir /home/aaa 2>/dev/null cat /home/virt/doc/index.php 2>/dev/null ls /home/aaa 2>/dev/null atd.. ??
A ten "plán B" taky vypadá dost nebezpečně.to jako tohle? tempfile=/tmp/test$$ a co konkrétně?
Hm, díky za pomoc, ale to mi chcete říct, že bych měl za každý příkaz dávat 2>/dev/null ?
Ne, jen za takový, u kterého chcete zahodit případný chybový výstup.
to jako tohle? tempfile=/tmp/test$$ a co konkrétně?
Vysvětloval jsem to např. tady.
tempfile=$(mktemp /tmp/result.XXXXXXXXXXXXXXXXX) #vytvoří /tmp/result.4bYDvkblOsfKPTMDR
tempfile=/tmp/test$$ # vytvoří /tmp/test25723tudíž i při použití test$$ by byla velká náhoda aby se do toho někdo trefil, ne? Jinak tento zápis
tempfile=$(mktemp /tmp/result.XXXXXXXXXXXXXXXXX)je totéž jako tento?
tempfile=`mktemp /tmp/result.XXXXXXXXXXXXXXXXX`
tmp=$(mktemp /tmp/result.XXXXXXXXXXXXXXXXX) mkdir /home/aaa 2>>$tmp cat /home/virt/doc/index.php 2>>$tmp ls /home/aaa 2>>$tmptohle? Bude účel stejny?
function foo () {
tmp=$(mktemp /tmp/result.XXXXXXXXXXXXXXXXX)
mkdir /home/aaa
cat /home/virt/doc/index.php
ls /home/aaa
}
foo 2>>$tmp
Díky
1. V bashi je to totéž, u některých starších shellů by $(...) nemuselo fungovat. Na druhou stranu, varianta s $(...) je IMHO trochu přehlednější, zejména pokud chcete příkazové substituce vnořovat.
2. Ta druhá varianta nebude vůbec fungovat, protože přesměrování provedete ještě předtím, než proměnné tmp přiřadíte hodnotu. Musel byste řádek 2 přesunout někam na "8.5".
tmp=$(mktemp /tmp/result.XXXXXXXXXXXXXXXXX)
function aaa () {
#tady bude chyba
}
function bbb () {
aaa
}
bbb 2> $tmp
Mně to funguje:
mike@unicorn:~> cat x
#!/bin/bash
tmp=out
function aaa () {
echo ahoj >&2
}
function bbb () {
aaa
}
bbb 2> $tmp
mike@unicorn:~> rm -f out
mike@unicorn:~> ./x
mike@unicorn:~> cat out
ahoj
no tohle ano, jelikož to máte napsáno jinak než já, v tom případě je zcela bezpředmětné spouštět funkci takto
bbb 2> $tmpkdyž ve funkci aaa () máte echo ahoj >&2, ne? Jinak teď se dívám že používate něco jiného, patrně jistě lepšího než já.. jaký v tom je rozdíl? Díky
echo ahoj >&2 echo ahoj 2>/$tmp
echo ahoj 2>/$tmpmi nedává smysl, protože
echo neprodukuje chybový výstup. Ten se dá vyrobit právě příkazem echo ahoj >&2
Je v tom podstatný rozdíl. Měl by ses konečně podívat do manuálu....Ten se dá vyrobit právě příkazemTo jste mi to tedy vysvětlil..echo ahoj >&2
Spíše bych měl programování v bash definitivně zabalit, jelikož neobsahuje základní potřeby programátora..
>&2" přesměruje standardní výstup do standardního chybového výstupu. Asi jsi to v manuálu přehlédl. Je to jedno ze základních pravidel.
1 vstup 1 standardní výstup 1 standardní chybový výstupPokud by byla pravda to co píšete (bez urážky), že: >&2 přesměruje standardní výstup do standardního chybového výstupu a já bych tento výstup přesměroval jak píšete, tak bych přece nic na obrazovce neviděl, ne? Čili tohle je evidentně špatně (potom ale nevím proč to funguje
)
ERROR_LOG=$(mktemp /tmp/tmp.XXXXXXXXXXXXXXXXX)
(eval ${TOKS[1]}) 2>> $ERROR_LOG
a takto je to dobře ?
ERROR_LOG=$(mktemp /tmp/tmp.XXXXXXXXXXXXXXXXX)
(eval ${TOKS[1]}) >&2 $ERROR_LOG
Děkuji..
Standardní chybový výstup se standardně vypisuje na obrazovce.Souhlasím..
Je to proto, aby se chybová hlášení nevypisovala do výstupních dat.Taky souhlasím..
To je také v manuálu.Nevím, neumím americky...
Předpoklad byl chybný, zbytek tedy nemá smysl komentovat.Má, pořád nevím co je tedy to 2>. Taky je ale otázkou je, co je myšleno tím standardním výstupem. Chápu to tedy dobře? Když použiju echo "Nazdar dědku" předpokládám, že se to odešle na standardní výstup, čili obrazovka, ok? Když použiju ls /home, je to taky odesláno do standardního výstupu čili na obrazovku, pokud ale použiju ls /hhome a dostanu na obrazovku ls: cannot access /homed: No such file or directory tak se nejedná o standardní výstup ale o standardní chybový výstup, ok? No a když ten příkaz použiju takto ls /hhome >&2 /tmp/error.log tak neuvidím na obrazovce vůbec nic, taky ok? Díky
Nevím, neumím americky...
A to je snad náš problém, súdruh Haluška?
Pokud by byla pravda to co píšete (bez urážky), že: >&2 přesměruje standardní výstup do standardního chybového výstupu a já bych tento výstup přesměroval jak píšete, tak bych přece nic na obrazovce neviděl, ne?
Však se také v tom mém příkladu na terminál nic nevypsalo.
Začínám nějak tápat v tom, jestli jsem žádal o radu já vás nebo vy nás. Začínám mít pocit, že my jsme všichni blbci, kteří tomu nerozumíme a prosíme vám, abyste nám poradil… :-(
A teď poslední pokus vám vysvětlit, co se děje. Jestliže uvnitř funkce použijete
echo ahoj >&2
pak se standardní výstup (deskriptor 1) toho příkazu připojí k chybovému (deskriptor 2). Jetliže tu funkci pak zavoláte jako
funkce 2>/tmp/foo
pak se její chybový výstup (což je to slovo ahoj) přesměruje do příslušného souboru.
mkdir /home/foo 2>/tmp/loga tohle je dobře
mkdir /home/foo >2& /tmp/log
když ve funkci aaa () máte echo ahoj >&2, ne?
A v čem se to podle vás liší od kteréhokoli jiného příkazu, který něco napíše na chybový výstup? Zkuste si tam dát něco jiného a dopadne to stejně.
Tiskni
Sdílej: