Byla vydána nová stabilní verze 7.6 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 140. Přehled novinek i s náhledy v příspěvku na blogu.
Byla vydána verze 1.90.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
GNUnet (Wikipedie) byl vydán v nové major verzi 0.25.0. Jedná se o framework pro decentralizované peer-to-peer síťování, na kterém je postavena řada aplikací.
Byla vydána nová major verze 7.0 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Nově je postavena je na Debianu 13 (Trixie) a GNOME 48 (Bengaluru). Další novinky v příslušném seznamu.
Společnost Meta na dvoudenní konferenci Meta Connect 2025 představuje své novinky. První den byly představeny nové AI brýle: Ray-Ban Meta (Gen 2), sportovní Oakley Meta Vanguard a především Meta Ray-Ban Display s integrovaným displejem a EMG náramkem pro ovládání.
Po půl roce vývoje od vydání verze 48 bylo vydáno GNOME 49 s kódovým názvem Brescia (Mastodon). S přehrávačem videí Showtime místo Totemu a prohlížečem dokumentů Papers místo Evince. Podrobný přehled novinek i s náhledy v poznámkách k vydání a v novinkách pro vývojáře.
Open source softwarový stack ROCm (Wikipedie) pro vývoj AI a HPC na GPU od AMD byl vydán ve verzi 7.0.0. Přidána byla podpora AMD Instinct MI355X a MI350X.
Byla vydána nová verze 258 správce systému a služeb systemd (GitHub).
Byla vydána Java 25 / JDK 25. Nových vlastností (JEP - JDK Enhancement Proposal) je 18. Jedná se o LTS verzi.
Věra Pohlová před 26 lety: „Tyhle aféry každého jenom otravují. Já bych všechny ty internety a počítače zakázala“. Jde o odpověď na anketní otázku deníku Metro vydaného 17. září 1999 na téma zneužití údajů o sporožirových účtech klientů České spořitelny.
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 subprocessNevíš čí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; doneDě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: