Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.
Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.
Fossil (Wikipedie) byl vydán ve verzi 2.24. Jedná se o distribuovaný systém správy verzí propojený se správou chyb, wiki stránek a blogů s integrovaným webovým rozhraním. Vše běží z jednoho jediného spustitelného souboru a uloženo je v SQLite databázi.
Byla vydána nová stabilní verze 6.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 124. Přehled novinek i s náhledy v příspěvku na blogu. Vypíchnout lze Spořič paměti (Memory Saver) automaticky hibernující karty, které nebyly nějakou dobu používány nebo vylepšené Odběry (Feed Reader).
OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 22 otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). V říjnu se verze 22 stane novou aktivní LTS verzí. Podpora je plánována do dubna 2027.
Byla vydána verze 8.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu. Zdůrazněn je průvodce migrací hostů z VMware ESXi do Proxmoxu.
R (Wikipedie), programovací jazyk a prostředí určené pro statistickou analýzu dat a jejich grafické zobrazení, bylo vydáno ve verzi 4.4.0. Její kódové jméno je Puppy Cup.
IBM kupuje společnost HashiCorp (Terraform, Packer, Vault, Boundary, Consul, Nomad, Waypoint, Vagrant, …) za 6,4 miliardy dolarů, tj. 35 dolarů za akcii.
Byl vydán TrueNAS SCALE 24.04 “Dragonfish”. Přehled novinek této open source storage platformy postavené na Debianu v poznámkách k vydání.
Oznámeny byly nové Raspberry Pi Compute Module 4S. Vedle původní 1 GB varianty jsou nově k dispozici také varianty s 2 GB, 4 GB a 8 GB paměti. Compute Modules 4S mají na rozdíl od Compute Module 4 tvar a velikost Compute Module 3+ a předchozích. Lze tak provést snadný upgrade.
#!/bin/bash for file in /home/hates/maily/*; do FILE="$file" ID=`echo $file | cut -d "." -f 1-1 | cut -d "/" -f 5-5` MAIL=`grep ${ID} /home/hates/adresy.txt | cut -d " " -f 2-2` echo "Soubor $file odeslan na mail ${MAIL}" cat $file | mail ${MAIL} done;Staci malinko upravit pro tvoje potreby. mozna to jde i jednoduseji. pomoci awk primo rozparsovat ten radek v adresy.txt a potom odeslat prislusny soubor.
Za druhe vlakno se velmi omlouvam, trochu se mi to nepovedlo, nebyl to umysl.
Za skript velmi dekuji, po napasovani na moje podminky funguje velmi dobre. Mel bych jen dve poznamky.
1) Potrebuji poslat soubor jako prilohu, nikoli jako telo mailu. Neco jako:
mutt -s "soubor" -a $file $(MAIL) < default_message.txt
coz mi zatim nefunguje, ale snad to nejak doladim. Pokud by jste vedel, rad se poucim.
2)V puvodnim dotazu jsem nezminil moznost, ze pocet souboru nemusi korespondovat s poctem adres. Dalo by se to jeste zohlednit?
Diky.
#!/bin/bash # soubor s obsahem mailu musi byt ve tvaru # <jmeno>.<pripona> SOUBOR_ADRES="/home/hates/adresy.txt" SUBJECT="Automaticky odesilany mail" echo `date +%c` >> /home/hates/neodeslane_maily.txt for file in /home/hates/maily/*; do FILE="$file" ID=`echo $file | cut -d "." -f 1-1 | cut -d "/" -f 5-5` MAIL=`grep ${ID} ${SOUBOR_ADRES} | cut -d " " -f 2-2` if [ -z ${MAIL} ]; then echo "Soubor $file nebyl odeslan. Adresa s ID ${ID} neexistuje" << /home/hates/neodeslane_maily.txt else echo "Soubor $file odeslan na mail ${MAIL}" echo "Odeslan mail s ID ${ID}" | mutt -s "${SUBJECT}" -a $file ${MAIL} > $file fi done;
#!/usr/bin/python # -*- coding: utf-8 -*- import os adresy = {} for line in file('adresy.txt'): f, addr = line.split() filename = f + '.txt' try: if filename not in adresy[addr]: adresy[addr].append(filename) else: print "Duplicit line", filename, addr except KeyError: adresy[addr] = [filename] for adresa, soubory in adresy.iteritems(): att = '-a ' + ' -a '.join(soubory) print 'mutt -s "Rozeslane soubory"', adresa, attprojde seznam adres, zjistí co komu poslat, oznámí duplicity a nachystá příkaz pro odeslání. Třeba z tohohle:
001 jenda@koza.com 002 pavel@ovce.com 230 franta@jetel.com 003 pavel@ovce.com 240 franta@jetel.com 200 franta@jetel.com 240 franta@jetel.comUdělá toto:
Duplicit line 240.txt franta@jetel.com mutt -s "Rozeslane soubory" jenda@koza.com -a 001.txt mutt -s "Rozeslane soubory" pavel@ovce.com -a 002.txt -a 003.txt mutt -s "Rozeslane soubory" franta@jetel.com -a 230.txt -a 240.txt -a 200.txt
#!/usr/bin/python # -*- coding: utf-8 -*- import os subject = 'rozeslane soubory' body = 'Rozeslane soubory\n' datadir = '/home/honza/datadir' def posli(adresa, soubory): cmd = ['mutt', '-s', subject] for soubor in soubory: cmd.extend(('-a', os.path.join(datadir, soubor))) cmd.append(adresa) print cmd #w, r = os.popen2(cmd) #w.write(body) #w.close() adresy = {} souborynadisku = dict([(x, None) for x in os.listdir(datadir)]) souboryvadresach = {} for linenum, line in enumerate(file('adresy.txt')): try: f, addr = line.split() except: print 'radek %d: "%s" je divny' %(linenum, line.strip()) continue filename = f + '.txt' souboryvadresach[filename] = None if filename not in souborynadisku: print 'radek %d: soubor "%s" chybi' %(linenum, filename) continue try: adresy[addr].append(filename) except KeyError: adresy[addr] = [filename] for snd in souborynadisku: if snd not in souboryvadresach: print 'Soubor "%s" neni komu poslat' %snd adr = adresy.keys() adr.sort() for adresa in adr: soubory = adresy[adresa] posli(adresa, soubory)Ukázalo se, že je potřeba odchytit co nejvíc chybových situací (divné řádky, chybějící soubory, přebývající soubory), tak se to trochu nafouklo a na efektivitu jsem pak už přestal hledět. Ale prý to funguje
Tiskni Sdílej: