Asterinas (GitHub) je v Rustu napsané jádro operačního systému poskytující s jádrem Linux kompatibilní ABI. Vydána byla verze 0.18.0. První distribucí postavenou nad jádrem Asterinas je Asterinas NixOS. Nejedná se o oficiální projekt NixOS a nemá nic společného s NixOS Foundation.
Podrobně byla rozebrána kritická zranitelnost v nf_tables (CVE-2026-23111). Další lokální eskalace práv na Linuxu. V upstreamu byla zranitelnost již v únoru opravena. Ve zdrojovém kódu stačilo odstranit 1 vykřičník.
Evropská komise (EK) nařídila americké společnosti Meta, že musí znovu umožnit bezplatný přístup konkurenčním obecně zaměřeným asistentům umělé inteligence (AI) k WhatsAppu a tento přístup musí zachovat až do ukončení antimonopolního šetření. Opatření je dočasné a má zabránit vážnému a nevratnému poškození konkurence na rychle rostoucím trhu s obecnými AI asistenty. Meta uvedla, že se proti rozhodnutí odvolá.
Společnost Anthropic představila AI modely Claude Fable 5 a Claude Mythos 5. Claude Fable 5 je první model třídy Mythos určený pro běžné použití.
Byla vydána nová stabilní verze 3.24.0, tj. první z nové řady 3.24, minimalistické linuxové distribuce zaměřené na bezpečnost Alpine Linux (Wikipedie) postavené na standardní knihovně jazyka C musl libc a BusyBoxu. Přehled novinek v poznámkách k vydání.
Na čem pracují vývojáři v Rustu napsaného mikrokernelového unixového operačního systému Redox OS (Wikipedie)? Byl publikován přehled vývoje za květen. Vypíchnout lze nový scheduler EEVDF nebo port desktopového prostředí Xfce na Redox OS.
Upozornění pro uživatele Asahi Linuxu: Neaktualizujte macOS na verzi 27 Golden Gate! Apple změnil detekci spouštěcích oddílů. Po aktualizaci oddíl s Asahi Linuxem nevidí. Snad je to jenom chyba.
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.
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x000f 057 049 006 Pre-fail Always - 140496120 3 Spin_Up_Time 0x0003 099 096 000 Pre-fail Always - 0 4 Start_Stop_Count 0x0032 100 100 020 Old_age Always - 189 5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 0 7 Seek_Error_Rate 0x000f 063 060 030 Pre-fail Always - 519947024875 9 Power_On_Hours 0x0032 073 073 000 Old_age Always - 24065 10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0 12 Power_Cycle_Count 0x0032 100 100 020 Old_age Always - 320 194 Temperature_Celsius 0x0022 043 051 000 Old_age Always - 43 195 Hardware_ECC_Recovered 0x001a 057 049 000 Old_age Always - 140496120 197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0 198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0 199 UDMA_CRC_Error_Count 0x003e 200 194 000 Old_age Always - 10 200 Multi_Zone_Error_Rate 0x0000 100 253 000 Old_age Offline - 0 202 TA_Increase_Count 0x0032 100 253 000 Old_age Always - 0Kus scriptu:
for diskk in a b;
do
for b in `/usr/sbin/smartctl -A /dev/hd${diskk} | grep '^[ 0-9][ 0-9][0-9]' | awk '{print $10 ";"}'`;
do echo -n $b >> hdd_smart.csv ;
done;
done;
Nejsem v BASHi tak zběhlej a proto netuším co by bylo nejlepší a nejednoduší k použití. Díky moc za každou pomoc nebo nasměrování.
...
for x in `/usr/sbin/smartctl -A /dev/hd${diskk} | grep -v ID# | sed "s%^[ ]*\([0-9]*\).*%\1%"`; do echo -n $x\; ; done
?
for i in a b; do smartctl -A "/dev/hd$i" | awk '
$1>=1 && $1 <=255 {a[$1]=$10}
END {
for(i=1;i<=255;i++)
{
if(a[i])
{printf "%d", a[i]}
printf ";"
}
}';
echo;
done
Tento script sice udělá skoro vše co potřebuji, ale je tam chyba s kterou si nevím rady
Výpis scriptu:143198173;;;189;;;519947058931;;24068;;;320;;Jak vidíte tak hodnota (0) s ID číslem 3 v buňce není vůbec. Mělo by to vypadat:
143198173;0;189;;;519947058931;;24068;0;320;;Nevíte jak doplnit script aby vypisoval i tu nulu do buňky? Díky moc za pomoc.
#!/usr/bin/python
import subprocess
values = ['' for i in range(256)]
process = subprocess.Popen(['smartctl', '-A', '/dev/sda'],
stdout = subprocess.PIPE)
for line in process.stdout:
splitted = line.split()
try:
id = int(splitted[0])
raw_value = int(splitted[9])
except ValueError:
continue
except IndexError:
continue
values[id - 1] = '%d' %raw_value
print ';'.join(values)
Udělá to spoustu čísel a středníků, např.24771859;;0;74;0;;685596218;;13667;0;;122;;;;;; atd.Je to tak správně?
#!/usr/bin/python
import subprocess, time
class Smart:
def __init__(self, diskk):
self.diskk = diskk
values = ['' for i in range(256)]
process = subprocess.Popen(['smartctl', '-a', '/dev/' + diskk],
stdout = subprocess.PIPE)
self.alllines = []
for line in process.stdout:
self.alllines.append(line)
splitted = line.split()
if 'Serial Number:' in line:
self.sn = splitted[-1]
try:
id = int(splitted[0])
raw_value = int(splitted[9])
except ValueError:
continue
except IndexError:
continue
values[id - 1] = '%d' %raw_value
if splitted[1] == 'Temperature_Celsius':
self.temperature = raw_value
self.rawvalues = ';'.join(values)
self.now_int = int(time.time())
def pis_teplotu(self):
cas_disk_teplota = '%d, %s, %d\n' %(self.now_int,
self.diskk,
self.temperature)
print cas_disk_teplota
file('teploty.csv', 'a').write(cas_disk_teplota)
def pis_celk_smart(self):
filename = '%s_%s_%d.txt' %(self.diskk, self.sn, self.now_int)
print filename
file(filename, 'w').writelines(self.alllines)
def pis_raw_values(self):
line = '%d,%s,%s\n' %(self.now_int, self.sn, self.rawvalues)
print line
file('raw.csv', 'a').write(line)
while True:
disk = Smart('sda')
disk.pis_teplotu()
disk.pis_celk_smart()
disk.pis_raw_values()
time.sleep(10)
Ten interval jsem plácl deset sekund. Klidně to zahoď, ale dělá to aspoň zhruba to co má?
Traceback (most recent call last):
File "test", line 2, in ?
import subprocess, time
ImportError: No module named subprocess
Nevíš čím to může být ? Jak říkám Python neumím vůbec.
# RAW VALUE
for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23;
do
for raw in `/usr/sbin/smartctl -A -d 3ware,${i} |
awk ' BEGIN { for(i=1;i<254;i++) a[i]=-1 } $1>=1 && $1<=253 { a[$1]=$10 }
END { for(i=1;i<254;i++) { if(a[i]>=0) printf "%d", a[i]; printf ";" } }'`;
do
for sn in `/usr/sbin/smartctl -a -d 3ware,${i} | grep "Serial Number" | awk '{print $3}' `;
do echo -n $cas ";" >> testy/hdd_smart.csv |
echo -n $sn ";" >> testy/hdd_smart.csv; echo -n $raw >> testy/hdd_smart.csv;
echo "" >> testy/hdd_smart.csv;
done;
done;
done
Děkuji všem za pomoc při vytváření tohoto kusu scriptu.
for raw in `cokoli`Je velmi velmi velmi špatný nápad!
# RAW VALUE
for((i=0; i<24; i++))
do
raw="$(/usr/sbin/smartctl -A -d 3ware,${i} |
awk 'BEGIN { for(i=1;i<254;i++) a[i]=-1 }
$1>=1 && $1<=253 { a[$1]=$10 }
END { for(i=1;i<254;i++)
{ if(a[i]>=0) printf "%d", a[i]; print ";" }
}')"
sn="$(/usr/sbin/smartctl -a -d 3ware,${i} |
awk '/Serial Number/ {print $3}')"
echo "$cas;$sn;$raw" >> testy/hdd_smart.csv
done
Smím vědět proč? Platí to pro tenhle konkrétní případ nebo všeobecně (čemuž se mi nechce věřit)? Kuji.for raw in `cokoli`
Je velmi velmi velmi špatný nápad!
for i in `ls *.txt`je naprosto nevhodné, protože to může zhavarovat na velikost ve starších verzích shellu, nebo nějakém minimalistickém, např busybox. A pak to pěkně rozbije jen hloupá mezera v názvu souboru nebo adresáře. Přitom to jde krásně napsat
for i in *.txtSekvence
for i in `seq 1 2 10`jde jednoduše nahradit
for((i=1;i<=10;i+=2))A všechny ty
for i in `cokoli`jde nahradit bezpečnějším
cokoli | while read i
( IFS=$'\n'; for i in $(ls *.txt); … )V žádném případě netvrdím, že je to lepší varianta než
in *.txtale s tím si zase nevystačím ve složitějších selekcích a v situaci, kdy nepůjde o cyklus přes soubory/adresáře.
... ale s tím si zase nevystačím ve složitějších selekcích a v situaci, kdy nepůjde o cyklus přes soubory/adresáře.Na složitější selekce máme
find + xargs a nebo while read
for i in a b; do
smartctl -A "/dev/hd$i" | awk '
BEGIN { for(i=1;i<256;i++) a[i]=-1 }
$1>=1 && $1<=255 { a[$1]=$10 }
END { for(i=1;i<256;i++) { if(a[i]>=0) printf "%d", a[i]; printf ";" } }'
echo
done
Tiskni
Sdílej: