Námořní drony používané elitními jednotkami britského královského námořnictva tajně posílaly údaje do Číny. Stroje vybavené čínskými komponenty měly být využívány pro vojenské operace na Blízkém východě. Kamery na dálkově řízených průzkumných člunech K3 Scout byly vybavené součástkami, které bez vědomí britského námořnictva odesílaly informace do spojeného zařízení v Číně. Britské námořní síly využívaly flotilu námořních dronů
… více »Alza.cz nabízí herní AlzaPC s předinstalovaným Linuxem (YouTube), konkrétně s linuxovou distribucí Bazzite (Wikipedie).
Squeak (Wikipedie), open source implementace programovacího jazyka a prostředí Smalltalk, byl vydán ve verzi 6.1. Přehled novinek v poznámkách k vydání.
V Linuxu v KVM byla nalezena a v upstreamu již byla opravena kritická zranitelnost Zapscape aneb CVE-2026-64561. Root na hostovaném počítači (virtuální stroj) může obejít izolaci a získat plnou kontrolu nad hostitelským systémem (DoS útok nebo vzdálené spuštění kódu s právy roota). Na obou hlavních architekturách – Intel i AMD. Zranitelnost v Linuxu existovala 6 let (od července 2020 do července 2026).
Počítačová hra Knytt napsaná v Multimedia Fusion 2 byla vydána před 20 lety. Při této příležitosti byl dnes představen moderní port (YouTube) této plošinovky na současné operační systémy pod názvem Knytt Classic. Je zdarma k dispozici na Steamu a GOG.com.
Americká technologická společnost Meta Platforms představila nový model umělé inteligence (AI) Muse Glimmer. Model je menší než přední modely AI od konkurence a má běžet přímo na počítačích uživatelů. Meta model zpřístupní jako open source, tedy otevřený software. Nový model je navržen tak, aby zvládal takzvané agentní úkoly na počítačích se spotřebitelskou grafickou kartou. Klade si tak za cíl uspokojit poptávku po systémech AI, které běží přímo na zařízeních uživatelů.
V pátek 28. srpna 2026 se v pražském Karlíně uskuteční již osmý Mobilní Hackday. Akce začne v 10:00 a potrvá až do večera. Setkání proběhne v prostorách SUSE Linux, s.r.o. na adrese Křižíkova 148/34, Praha 8 – Karlín. Nejbližší zastávkou je Křižíkova, kam se lze dostat tramvají i metrem. Na programu budou například novinky z posledních měsíců, možnosti, jak si zjednodušit práci s LLM/AI, a také nová linuxová distribuce BengalOS, včetně … více »
Jakub Vrána vydal Adminer ve verzi 6.0.0 s více než 130 změnami: "Většina změn vznikla s asistencí Claude Opus 5. Někteří lidi se bojí, že AI asistence může kód zamořit technickým dluhem. To je jistě pravda, pokud vývojář všechny změny bezduše odbouchne Enterem. Ale pokud si pořádně projde plán, vyjedná v něm změny a pak totéž udělá i s vygenerovaným kódem, kvalita kódu stoupne a technický dluh naopak klesne. Je to jako párové programování s
… více »Sam Aaron vydal novou major verzi 5.0.0 aplikace Sonic Pi (Wikipedie) určené také pro výuku programování pomocí skládání hudby. Přehled novinek na GitHubu. Instalovat lze také z Flathubu.
U příležitosti 30. výročí vydání počítačové hry Quake byla vydána nová epizoda s názvem Dawn of the Machine (Steam).
Řešení dotazu:
rsync --link-dest, nebo rsync + btrfs snapshoty.
Co záloha, to adresář pojmenovaný podle data zálohy. Deduplikace pak probíhá buď pomocí hardlinků (proti předchozí záloze), nebo pomocí snapshotů (rsync aktualizuje zapisovatelný adresář a toho se pak udělá snapshot).
Pokud by někdo měl tip na dobrý nástroj pro odstraňování starých záloh, sem s ním prosím. Už několik let se chystám ho napsat. :)
dela deduplikaci na urovni filesystemu (!!! tedy dosahuje tehoz efektu tim, ze na fs zavisly neni a ma nejaky vlastni format ulozeni dat v adresarich, ale vysledkem je deduplikace v ramci repository - a dela to fakt hodne dobre! protoze jsem zkousel deduplikacni fs a byly s tim ruzne potize a ruzne podminky, ale tohle tim netrpi!),To právě deduplikace na úrovni filesystému není. To je aplikační úroveň, tedy o úroveň výš. Kdyby to bylo na úrovni filesystému, tak vidíš všechny zálohy rovnou bez jakýchkoliv zvláštních nástrojů a připojování.
Tohle je asi tak nejtypičtější možný příklad na snapshoty v Btrfs nebo ZFS. Přírůstkové, čitelné, ba dokonce i zapisovatelné, atomické, postupně „ředitelné“, jak plyne čas, atd.
Žádný program na přírůstkové zálohy neexistuje a nikdy neexistoval (navzdory četným fámám o opaku), protože takové zálohy z principu nejsou atomické. Aby byla záloha atomická v rámci nějaké adresářové (pod)struktury nebo celého filesystému, je potřeba mít snapshoty na úrovni fileystému, tedy kernelu.
Algořiťmus pro zálohování mezi dvěma filesystémy (ideálně geograficky oddělenými, jak jinak):
#!/bin/bash mv /.snapshots_root/root/ /.snapshots_root/root-old mv /media/data/.snapshots_root_backup/root/ /media/data/.snapshots_root_backup/root-old btrfs subvolume snapshot -r / /.snapshots_root/root && sync btrfs send -p /.snapshots_root/root-old/ /.snapshots_root/root | btrfs receive /media/data/.snapshots_root_backup/ btrfs subvolume delete /.snapshots_root/root-old/ btrfs subvolume delete /media/data/.snapshots_root_backup/root-olda do ted jsem ten snapshot pomocí rsnapshot posílal přírůstkově na NAS a docela spokojenost. Jen postupem času začal adresář na NASu narůstat víc než se mi líbí. Tak hledám variantu
Já si napsal bash skript co posílá btrfs snapshoty (send/receive) přes SSH. Je to navržené na to, aby se to spouštělo automaticky vždy v 23:59. Všechny snapshoty jsou na cílovém zařízení normálně přístupné. Tak třeba se to bude hodit.
#!/bin/bash
#################
### Nastavení ###
#################
#Adresáře k zálohování
cesta_mistni="/srv"
adresare=("http" "mysql" "nextcloud")
cesta_snapshoty="/srv/.backup_increment"
cesta_vzdalena="/srv/backup/"
historie="30"
server="***.***.***.***"
klic="/root/BackupKey"
##############
### Funkce ###
##############
#Vytvoření snapshotu
vytvor_snapshot()
{
btrfs subvolume snapshot -r "${cesta_mistni}/$1" "${cesta_snapshoty}/$1_$datum"
if [ $? == 0 ];
then
return 0
else
return 1
fi
}
#Odeslání snapshotu
odesli_snapshot()
{
if [ -d "${cesta_snapshoty}/$1" ] && [ ssh "backup@${server}" -i "$klic" "[ -d ${cesta_vzdalena}/$1/$1_${datum_vcera} ]" ];
then
btrfs send -p "${cesta_snapshoty}/$1" "${cesta_snapshoty}/$1_$datum" | ssh "backup@$server" -i "$klic" "sudo btrfs receive \"${cesta_vzdalena}/$1\" && \
sudo btrfs property set -ts \"${cesta_vzdalena}/$1/$1_$datum\" ro false && \
sudo touch -d \"$datum_touch\" \"${cesta_vzdalena}/$1/$1_$datum\" && \
sudo btrfs property set -ts \"${cesta_vzdalena}/$1/$1_$datum\" ro true"
if [ $? == 0 ];
then
return 0
else
return 1
fi
else
if ssh "backup@$server" -i "$klic" "[ ! -d ${cesta_vzdalena}/$1 ]"
then
ssh "backup@$server" -i "$klic" "mkdir ${cesta_vzdalena}/$1"
fi
btrfs send "${cesta_snapshoty}/$1_$datum" | ssh "backup@$server" -i "$klic" "sudo btrfs receive \"${cesta_vzdalena}/$1\" && \
sudo btrfs property set -ts \"${cesta_vzdalena}/$1/$1_$datum\" ro false && \
sudo touch -d \"$datum_touch\" \"${cesta_vzdalena}/$1/$1_$datum\" && \
sudo btrfs property set -ts \"${cesta_vzdalena}/$1/$1_$datum\" ro true"
if [ $? == 0 ];
then
return 0
else
return 1
fi
fi
}
#Smazání snapshotu
smaz_snapshot()
{
if [ -d "${cesta_snapshoty}/${1}_${datum_vcera}" ];
then
btrfs subvolume delete "${cesta_snapshoty}/${1}_${datum_vcera}"
fi
if [ $? == 0 ];
then
return 0
else
return 1
fi
}
#Přejmenování snapshotu
prejmenuj_snapshot()
{
mv "${cesta_snapshoty}/$1_$datum" "${cesta_snapshoty}/$1"
if [ $? == 0 ];
then
return 0
else
return 1
fi
}
#Smazání starých záloh
smaz_stare()
{
ssh "backup@$server" -i "$klic" "find \"${cesta_vzdalena}/$1\" -maxdepth 1 -type d -mtime \"+$((historie-1))\" -exec sudo btrfs subvolume delete {} \;"
}
##############
### SKRIPT ###
##############
#Aktuální datum
datum="$(date '+%Y-%m-%d')"
datum_vcera="$(date '+%Y-%m-%d' -d 'yesterday')"
datum_touch="$(date '+%Y-%m-%d %H:%M' -d 'today 23:59')"
#Vytvoření snapshotů pododdílů
for adresar in ${adresare[@]}
do
vytvor_snapshot $adresar
done
#Odeslání snapshotů do zálohovacího zařízení přes SSH
for adresar in ${adresare[@]}
do
odesli_snapshot $adresar
done
##Smazání minulých snapshotů pododdílů
for adresar in ${adresare[@]}
do
smaz_snapshot $adresar
done
#Přejmenování posledních snapshotů
for adresar in ${adresare[@]}
do
prejmenuj_snapshot $adresar
done
##Smazání starých vzdálených záloh
for adresar in ${adresare[@]}
do
smaz_stare $adresar
done
exit 0
Tiskni
Sdílej: