Multiplatformní multimediální knihovna SDL (Simple DirectMedia Layer) byla oficiálně vydána v nové major verzi 3 (3.2.0). Změny jsou popsány v README pro migraci aplikací z SDL 2 na SDL 3.
Wine bylo po roce vývoje od vydání verze 9.0 vydáno v nové stabilní verzi 10.0. Přehled novinek na GitLabu. Vypíchnuta je nová architektura ARM64EC a podpora High DPI škálování.
Edvard Rejthar na blogu zaměstnanců CZ.NIC představil nástroj deduplidog pro odstranění duplicitních souborů.
Společnost DeepSeek představila (𝕏) AI model DeepSeek-R1 (Hugging Face) srovnatelný s OpenAI o1 a uvolnila jej pod open source licencí MIT, tj. zdarma i pro komerční použití.
GKrellM (GNU Krell Monitors, Wikipedie), tj. grafická aplikace pro sledování systémů a různých událostí, byla po pěti a půl letech vydána v nové verzi 2.4.0. Přehled novinek na Gitea.
Americká první dáma Melania Trumpová vydala v předvečer manželovy inaugurace vlastní kryptoměnu. Jmenuje se $Melania. Donald Trump vydal vlastní kryptoměnu $Trump den před manželkou.
GNU Project Debugger aneb GDB byl vydán ve verzi 16.1. Podrobný přehled novinek v souboru NEWS.
Po 9 týdnech vývoje od vydání Linuxu 6.12 oznámil Linus Torvalds vydání Linuxu 6.13. Přehled novinek a vylepšení na LWN.net: první a druhá polovina začleňovacího okna a Linux Kernel Newbies. Odstraněn byl souborový systém ReiserFS.
19. ledna 2038 přeteče hodnota time_t na 32bitových systémech, na vyřešení problému roku 2038 (Y2K38) tedy zbývá 13 let. Např. Debian v uplynulém roce přešel na 64bitový čas. Bernhard Wiedemann z openSUSE sdílí chyby v sestavení rozšířeného softwaru.
Byla vydána druhá opravná verze 21.2 v dubnu loňského roku vydané verze 21 multimediálního centra Kodi (dříve XBMC, Wikipedie) s kódovým označením Omega.
Utilitu rsync lze nejsnáze přirovnat k příkazu cp. Stejně jako cp, používá se i utilita rsync k jediné prosté činnosti: kopírování souborů. Oproti cp má však rsync mnoho užitečných vlastností navíc:
Lokálně lze rsync použít podobně jako cp:
rsync soubor1 soubor2 soubor3 cílový-adresář
Ve výsledku je jak volání cp, tak rsync ekvivalentní. V praxi však může být rsync mnohem efektivnější. Pokud už totiž v cílovém adresáři existuje některý z kopírovaných souborů, přenášejí se pouze rozdíly, zatímco cp kopíruje vždycky všechno.
Velmi často používám utilitu rsync pro zálohování. To u mě vypadá obvykle tak, že přes USB připojím externí disk a spustím skript, který disk přimontuje, ověří vstupní podmínky, zavolá rsync a poté disk odpojí. Vlastní zálohovací utilita je zde právě rsync, jehož volání v jednom konkrétním vypadá například takto (přepínače vysvětlím dále):
rsync \ --acls \ --delete \ --verbose \ --archive \ --delete-excluded \ --exclude "qemu/debian.qemu" \ --prune-empty-dirs \ /home /zalohy
Utilitu rsync lze snadno využít i pro kopírování souborů mezi různými počítači. Jako přenosový kanál přes internet nejlépe poslouží ssh. Díky ssh jsou kopírovaná data zabezpečena proti odposlechu (na internetu nikdo nezjistí, co kopírujete) a elegantním způsobem je vyřešen i dálkový přístup na jiný stroj. Server ssh navíc bývá u mnoha linuxových strojů standardním prostředkem pro dálkovou správu, není tedy třeba nic nastavovat. Na desktopy, u kterých často ssh server nainstalovaný není, lze ssh server velmi snadno doinstalovat.
Velmi dobře využitelné je i přihlašování pomocí klíčů, bez hesel. To je nutností u skriptů, zvláště pak, je-li takový skript pouštěný automaticky v noci (zálohování na jiný server), nebo je skript pouštěný ve zcela neinteraktivním prostředí (online zálohy databázového serveru PostgreSQL).
Nejjednodušší použití utility rsync při kopírování na vzdálený server může vypadat takto:
rsync --rsh="ssh -l root" soubor1 soubor2 192.168.1.15:/cílový-adresář
Uvedený příkaz překopíruje oba soubory na počítač 192.168.1.15. Místo IP adresy lze pochopitelně využít i jméno počítače. Pro přihlášení na vzdálený počítač 192.168.1.5 se použije účet root. Je-li na počítači 192.168.1.15 v souboru /root/.ssh/authorized_keys uveden veřejný klíč kopírujícího uživatele, zkopírují se soubory přímo. Není-li veřejný klíč nainstalovaný, zeptá se utilita rsync na heslo uživatele root na počítači 192.168.1.15.
Utilitu rsync můžete využít například pro vzdálené zálohy adresářů v /home. Pak budete zřejmě chtít kopírovat celý strom adresářů, zachovat informace o vlastnictví souborů, smazat na záložním serveru soubory, které již na originálním stroji neexistují, a přitom pokud možno co nejméně zatížit internetovou linku:
rsync --rsh="ssh -l root" \ --acl \ --archive \ --compress \ --delete \ --verbose \ --prune-empty-dirs \ /home archiv.mojesit.cz:/zaloha
Ve většině případů je nejvhodnější pro přenos na vzdálený počítač použít ssh. Jsou však případy, kdy je vhodné použít rsync server. Typické použití je například adresář /usr/portage v distribuci Gentoo. V tomto adresáři je velké množství informací o jednotlivých balících. Většina těchto informací se nemění, je však nutné mít pro řádné fungování systému ve svém počítači vždy aktuální kopii. Díky tomu, že utilita rsync přenáší pouze rozdíly, je její použití pro podobné účely velmi vhodné.
Abyste mohli používat server rsync, musíte vytvořit jednoduchý konfigurační soubor /etc/rsyncd.conf. V případě uvedeném v předchozím odstavci může vypadat konfigurační soubor například takto:
use chroot = yes [portage] path = /usr/portage uid = 0 gid = 0 read only = yes comment = Gentoo portage
Na vzdáleném počítači v takovém případě musí běžet rsync jako démon. To se obvykle zajistí při startu systému skriptem /etc/init.d/rsyncd.
Možnosti nastavení jsou velmi široké, podrobnosti najdete v manuálu:
man rsyncd.conf
Zatím jsem v příkladech uváděl přepínače bez vysvětlení. Přepínačů je velké množství, v praxi jsem většinou vystačil jen s několika nejpoužívanějšími přepínači (popis dalších přepínačů najdete v manuálu):
--acls | U přenášených souborů nastaví ACL. Pamatujte na to, že podpora ACL musí být implementovaná na obou počítačích a má-li mít takový přenos smysl, je nutné mít na obou počítačích zavedené stejné uživatele. |
--archive | Kopíruje rekurzivně celý adresář, zachovává časy vytvoření, vlastníka a skupinu. Speciální soubory (links, devices) kopíruje jako speciální soubory. |
--delete | Na cílovém počítači smaže přebytečné soubory. Pro mazání se mohou použít různé přístupy (liší se různými přepínači). |
--delete-before | Přebytečné soubory na cílovém serveru lze mazat ještě před tím, než se začne s kopírováním, a uvolnit tak místo pro nové soubory. Mazání souborů může trvat velmi dlouhou dobu, takže nemáte-li skutečně dobrý důvod použít tento přepínač, je lépe použít přepínač --delete-during. |
--delete-during | Během kopírování smaže přebytečné soubory. Ve srovnání s přepínačem --delete-before je mnohem rychlejší a spolehlivější, můžete se však dostat do potíží při nedostatku místa na disku cílového počítače. |
--prune-empty-dirs | Vyčistí na vzdáleném serveru i prázdné adresáře. |
--one-file-system | Zkopíruje pouze jeden aktuální filesystém. V Linuxu je možné připojit další diskovou oblast kamkoliv. Je tak možné mít například adresář /home jako jednu samostatnou diskovou oblast a v adresáři /home/franta/mp3 mít připojený další disk. Přepínačem --one-file-system utilitě rsync sdělujeme, že při kopírování adresáře /home nemá postupovat do adresáře /home/franta/mp3. |
--compress | Data se před přenosem na vzdálený server zkomprimují. Šetří se tak internetová linka. |
--force | Smaže na cílovém stroji i adresáře, které nejsou prázdné. |
--verbose | Při kopírování se vypisuje informace o právě kopírovaném souboru. |
--exclude | Při kopírování se vynechají některé soubory. Tradičně to mohou být například filmy v domácích adresářích neukázněných uživatelů: --exclude "*.avi". |
--rsh="ssh" | Pro přenos se použije uvedený příkaz (v tomto případě ssh). Pro ssh zde lze zadat různé parametry, obvykle uživatele nebo port, liší-li se od standardního portu 22. |
V praxi málokdy používám rsync přímo na povelové řádce. V drtivé většině případů volám rsync z různých skriptů. Zálohování, ať už na lokální disk připojený přes USB, nebo na vzdálený počítač, jsem už uváděl na začátku. Velmi často používám rsync i pro přenos stránek na webový server. Stránky vytvářím u sebe na lokálním počítači, na server vybavený programem ssh a rsync pak přenáším pouze změny. Nikdy se tak nedostanu do situace, že jsem zapomněl přenést některé soubory a stránky, i když lokálně fungují, nejsou na serveru kompletní. Navíc se mohu vyhnout nebezpečnému protokolu ftp.
Pomocí utility rsync lze urychlit některé časově náročně operace na minimum. Představte si, že potřebujete rozšířit diskovou kapacitu z původních 500 GB na nynější 1 TB, přitom chcete omezit dobu vypnutí serveru. Na serveru vám přitom pracuje množství uživatelů ve windows a neustále mění nějaká data. Utilita rsync vám může vytrhnout trn z paty:
mount -t ext3 /dev/sdx1 /novy-disk cd /data # tohle bude několik hodin trvat: rsync --acls --archive . /novy-disk # Nyní už to bude mnohem rychlejší, # kopíruje se jen práce posledních několika hodin: rsync --acls --archive . /novy-disk # A ještě rychlejší, posledních několik minut: rsync --acls --archive . /novy-disk # Nyní jsem poslal uživatele na oběd, mohu je odříznout /etc/init.d/samba stop rsync --acls --archive . /novy-disk cd umount /data umount /novy-disk mount -t ext3 /dev/sdx1 /data /etc/init.d/samba start
Máte-li přichystané všechno hardwarové příslušenství, je možné uvedeným postupem zkrátit výměnu disku na minutu.
Rsync může spotřebovat poměrně velké množství paměti, zvláště při kopírování rozsáhlejších stromů. Narazil jsem na to při vytváření své Gentoo šablony na serveru virtualmaster. 64 MB RAM pro překopírování celého adresáře /usr nestačilo, takže bylo potřeba kopírovat adresář po jednotlivých podadresářích.
Při synchronizaci velmi rozsáhlých stromů můžete narazit při použití přepínače --delete-before. Promazání nadbytečných souborů zvláště na pomalé lince může trvat tak dlouho, že rsync havaruje (firewall ukončí dlouho trvající nepoužívané spojení). Vyhnout se tomu lze přepínačem --delete-during.
Nástroje: Tisk bez diskuse
Tiskni Sdílej:
rsync --rsh="ssh -l root" soubor1 soubor2 192.168.1.15:/cílový-adresářlze též použít podle mě přirozenější
rsync --rsh="ssh" soubor1 soubor2 root@192.168.1.15:/cílový-adresář
--numeric-ids
.rsync
je dosti nepříjemná absence historie. Nejhorší je, když se v provozních datech smaže nějaký soubor, a pak se pustí rsync, který zálohovanou verzi toho souboru smaže i na záložním médiu. Je lepší použít alespoň volbu --backup-dir
nebo i --link-dest
, která vytvoří pomocí hardlinků kompletní "snapshot". Ideální by bylo rsync zkombinovat s filesystemem typu ZFS nebo BTRFS, kde jde tvořit "levné" snapshoty. Bohužel linux zatím takový stabilní (!) FS nemá.
Nakonec člověk pro zálohování stejně skončí u hotového řešení typu dirvish
nebo rsnapshot
, které mají obvykle dobře ošetřené i mezní situace typu výpadek v půlce zálohování, pokus o paralelní spuštění, mazání starých verzí a podobně. Pro větší množství souborů (stovky tisíc) pak přichází problémy, protože jen mazání staré verze na ext3 může trvat desítky minut.
Rsync lze dobře používat i z Windows vč. ssh klíčů nebo i obdoby ssh-agenta - putty pageant. Jediný problém je se znakovou sadou v názvech souborů, což se dalo řešit volbou --iconv
u novějších verzí, nebo dřív nebo opatchovanými knihovnami cygwinu.
U zálohování pomocí čistého rsync je dosti nepříjemná absence historie.Jeden program, jeden úkol. Historii můžete držet jednoduše např. gitem a to celé rsyncovat (nebo v případě gitu stačí použít jeho vlastní push).
rsync
na přítomnost koncových lomítek. Z manuálu:
rsync -avz foo:src/bar /data/tmp This would recursively transfer all files from the directory src/bar on the machine foo into the /data/tmp/bar directory on the local machine. [...] rsync -avz foo:src/bar/ /data/tmp A trailing slash on the source changes this behavior to avoid creating an additional directory level at the destination. You can think of a trailing / on a source as meaning "copy the contents of this directory" as opposed to "copy the directory by name", but in both cases the attributes of the containing directory are transferred to the containing directory on the destination. In other words, each of the following commands copies the files in the same way, including their setting of the attributes of /dest/foo: rsync -av /src/foo /dest rsync -av /src/foo/ /dest/foo
cp -r src/ dst
je totéž jako cp -r src dst
. Ekvivalent k rsync src/
je cp -r src/*
.
Idealni vec - rozsekat soubor jakoby virtualne na bloky treba po 5M (v pripade treba 1G souboru) a prenaset jen zmenene bloky.
rsync
to ve skutečnosti dělá ještě chytřeji – spočítá si kontrolní součet bloku, a na druhou stranu přenese jenom ten. Na druhé straně pak hledá blok se stejným kontrolním součtem – pokud takový najde (i na jiném místě, než kde je u zdrojového souboru), má data pro ten konkrétní přenášený blok. Takže i pokud třeba na začátek souboru přidáte jeden bajt, přenese se jen ten jeden bajt a kontrolní součty všech bloků. Nebo se podívejte na popis algoritmu rsync.
time rsync --bwlimit=150 --progress -avhcSe ssh * server:/adr/
V praxi však může být rsync mnohem efektivnější. Pokud už totiž v cílovém adresáři existuje některý z kopírovaných souborů, přenášejí se pouze rozdíly, zatímco cp kopíruje vždycky všechno.Tohle není úplně správně. Program cp se dá nastavit taky tak, aby nepřepisoval (nebo nepřepisoval aktuální). Rsync umí kromě datumu porovnat i checksum (i když tato volba se zřídka využívá), aby poznal co je v cílovém adresáři potřeba přepsat. Hlavní přínos rsyncu v této oblasti je v tom, že umí přenášet pouze rozdíly i v rámci jednoho souboru. Takže když někdo do 20mb souboru připíše doprostřed "ahoj", bude přeneseno pouze to "ahoj" plus nějaká malá metadata. Tohle ale funguje jen v přenosech po síti, protože při přenosu z disku na disk se nic neušetří.
Stačí použítrsync --rsh="ssh -l root" soubor1 soubor2 192.168.1.15:/cílový-adresář
rsync cosi root@kdesi:/kamsi... protože rsync používá ssh standardně.
Ve většině případů je nejvhodnější pro přenos na vzdálený počítač použít ssh. Jsou však případy, kdy je vhodné použít rsync server. Typické použití je například adresář /usr/portage v distribuci Gentoo. ... Díky tomu, že utilita rsync přenáší pouze rozdíly, je její použití pro podobné účely velmi vhodné.Tohle je trochu zamotaný výklad. Rsync přes ssh taky přenese jen rozdíly. Výhoda rsync démona je v tom, že nešifruje data a je tedy o něco rychlejší a taky "psychologicky" že lidi nějak neradi poskytují anonymní ssh účty.
Promazání nadbytečných souborů zvláště na pomalé lince může trvat tak dlouho, že rsync havaruje (firewall ukončí dlouho trvající nepoužívané spojení).Tohle by neměl být problém kvůli tomu že neaktivní TCP spojení se umí udržovat samo na živu (keepalive). Při spojení přes ssh je to zaplé.
podle toho, jaky ma adresa format
pro user@kdesi:/kamsi se pouzije ssh
pro user@kdesi::modul/kamsi se pouzije rsync protokol, tj. musi tam bezet rsync demon
viz. manual :)
Lokálně lze rsync použít podobně jako cp. Ve výsledku je jak volání cp, tak rsync ekvivalentní. V praxi však může být rsync mnohem efektivnější. Pokud už totiž v cílovém adresáři existuje některý z kopírovaných souborů, přenášejí se pouze rozdíly, zatímco cp kopíruje vždycky všechno.To obecně platí jen v případě, kdy je zápis na disk výrazně pomalejší, než čtení.
rsync
ty rozdíly musí nějak zjistit, musí tedy celý cílový soubor přečíst. Pokud tedy bude čtení stejně rychlé, jako zápis, bude rsync
pomalejší – musí celý soubor přečíst a změněné části pak zapsat, cp
jen celý soubor zapíše. Pokud jsou ty soubory úplně jiné, bude také rsync
pomalejší – rsync
i cp
musí celý soubor zapsat, ale rsync
jej před tím ještě musí celý přečíst. Proto je rsync
výhodný hlavně při přenosu přes síť, kdy se toho sice na obou stranách musí udělat víc, než při obyčejném cp
, ale tahle ztráta se více než vrátí tím, že pak stačí po síti přenést menší objem dat.
Pokud jsou ty soubory úplně jiné, bude také rsync pomalejšíTo zrejme neni pravda, pokud samozrejme nevynutis porovnavani pouze checksumem (-c). On totiz rsync kontroluje cas zmeny, velikost a checksum. Takze kdyz budou soubory uplne jine (velikost a cas zmeny), tak zacne rovnou kopirovat, ne? Osobne se mi na rsyncu libi moznost navazovani spojeni - kopiruje se, spojeni padne, tak se spusti kopirovani znova a pakracuje se, kde to spadlo. Ja pouzivam obvykle interaktivne -P (--progress --partial).
Pokud tedy bude čtení stejně rychlé, jako zápis, bude rsync pomalejší – musí celý soubor přečíst a změněné části pak zapsat, cp jen celý soubor zapíše.Na to už mysleli taky.
-W, --whole-file With this option rsync's delta-transfer algorithm is not used and the whole file is sent as-is instead. The transfer may be faster if this option is used when the bandwidth between the source and destination machines is higher than the bandwidth to disk (especially when the "disk" is actually a networked filesystem). This is the default when both the source and des- tination are specified as local paths, but only if no batch- writing option is in effect.
-e 'ssh -p tunelport'
. Ale neni to ono, lepsi by bylo rsync host1:/data/ host2:/data/
Chtel bych ze svoji masiny kopirovat z jednoho rsync serveru na jinej rsync server. Bohuzel tohle nejde, jedna strana musi byt vzdy local.
ssh server1 'rsync /data/ server2:/data'
server1
, to že je příkaz spuštění přes ssh na tom nic nemění.
Bájný server-server rsync by se rozhodně nehlásil přes ssh na jiný server aby odtamtud na sebe pouštěl rsync, to je jako drbat se pravou rukou za levým uchem.
Chtel bych ze svoji masiny kopirovat z jednoho rsync serveru na jinej rsync server.Pokud by šlo jen o to spustit rsync na vzdáleném server (nikoliv rsync serveru) pak samozřejmě stačí to co jsi napsal, na server se přihlásit a spustit tam rsync.
všechnobylo asi myšleno
celé soubory–
cp
to porovnává jen na úrovni souborů, rsync
jde i dovnitř souboru a přenáší jen změněné části.
"server:~/adresar\ s\ medzerou/"
)
--include, --include-from, --files-from
, díky čemuž můžete určit buď pattern, nebo přímo konkrétní soubory v nějakém konfiguračním souboru, ne přímo v tom... eh... "baťáku" (na linuxch na rozdíl od DOS říkáme skript).
udev
pravidel nastavte, aby se při zasunutí toho flash disku spustla synchronizace.