abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
včera 12:44 | Nová verze

Po roce vývoje od vydání verze 5.2.0 byla vydána verze 5.3.0 svobodného integrovaného vývojového prostředí KDevelop (Wikipedie). Novinkou je analyzátor Clazy. Vylepšena byla podpora programovacích jazyků C++, PHP a Python. Ke stažení a k vyzkoušení je i binární balíček s KDevelopem 5.3.0 ve formátu AppImage.

Ladislav Hagara | Komentářů: 0
včera 05:55 | Komunita

Ubuntu 19.04 bude mít kódové jméno Disco Dingo. Dle oznámení v diskusním listu ubuntu-devel-announce je ve vývojové verzi Disco Dinga výchozím Pythonem 3 verze 3.7. Perl byl aktualizován na verzi 5.28. OpenSSL 1.0 bude nahrazeno OpenSSL 1.1.1 LTS. Nové instalace Dinga budou mít sloučený /usr. Stane se tak 7 let po sloučení /usr ve Fedoře nebo Arch Linuxu.

Ladislav Hagara | Komentářů: 6
včera 02:22 | IT novinky

V pondělí a úterý proběhl v San Franciscu Chrome Dev Summit 2018. Přehled dění v příspěvcích na Chromium Blogu. Videozáznamy přednášek na YouTube. Představen byl například web pro webové vývojáře web.dev nebo rozšíření webového prohlížeče Chrome s názvem VisBug (YouTube) určené pro webdesignery. Slíbená je podpora Firefoxu.

Ladislav Hagara | Komentářů: 0
13.11. 23:22 | Zajímavý projekt

Byl spuštěn Humble Dystopian Bundle. V balíčku počítačových her jsou také hry běžící na Linuxu: Beholder, Orwell: Keeping an Eye On You, Orwell: Ignorance is Strength a Observer.

Ladislav Hagara | Komentářů: 0
13.11. 22:44 | Zajímavý článek

Jan Klat publikoval na Medium výsledky ankety věnované platům PHP vývojářů. Zúčastnilo se 419 respondentů. Kompletní výsledky na Tabulky Google.

Ladislav Hagara | Komentářů: 1
13.11. 22:22 | Nová verze

Byla vydána nová verze 1.29 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Představení novinek také na YouTube.

Ladislav Hagara | Komentářů: 0
13.11. 11:47 | Pozvánky
Začínáte s automatizací? Chcete se naučit správně používat Ansible? Přijďte na další Prague Containers Meetup 20. listopadu v prostorách Seznamu v Praze na Andělu.
little-drunk-jesus | Komentářů: 0
13.11. 11:47 | Pozvánky
V úterý 20. 11. v Praze proběhne akce Oracle Czech Republic Meetup Group. Od 18.00 si budete moct vyslechnout přednášky NetSuite Developer Toolset a Product Recommendations system at Bronto.
RichardF | Komentářů: 0
13.11. 10:33 | Nová verze

Byly aktualizovány živé instalační obrazy průběžně aktualizované linuxové distribuce Void Linux (Wikipedie). Nejnovější obrazy ve verzi 20181111 jsou k dispozici vedle i686 a x86_64 také pro jednodeskové počítače s ARM: BeagleBone, Cubieboard, Odroid a Raspberry Pi. Void Linux používá balíčkovací systém XBPS (X Binary Package System), LibreSSL a init systém a správce služeb runit. Ke stažení jsou obrazy postavené jak nad glibc, tak nad musl.

Ladislav Hagara | Komentářů: 3
13.11. 02:00 | IT novinky

Byl aktualizován seznam 500 nejvýkonnějších superpočítačů na světě TOP500. Nejvýkonnějším superpočítačem zůstává superpočítač Summit. Český superpočítač Salomon klesl na 213. místo. Další přehledy a statistiky na stránkách projektu. V aktuálním žebříčku GREEN500 (GFlops/watts) obsadil superpočítač Summit 3. místo.

Ladislav Hagara | Komentářů: 0
Jak nejčastěji otevíráte dokumenty na počítači?
 (89%)
 (4%)
 (7%)
Celkem 73 hlasů
 Komentářů: 5, poslední včera 21:21
Rozcestník

GNU tar, xkcd a BSD

6.3. 00:42 | Přečteno: 1663× | Výběrový blog | poslední úprava: 6.3. 00:42

Pamatujete si na xkcd komix, kde atomová bomba pro odjištění vyžaduje validní příklad použití taru? Ať ano či ne, v tomto blogu se o nástroji GNU tar dozvíte co už dost možná stejně víte, případně co jste asi ani nechtěli vědět.

Pro připomenutí (přece jen, ten díl vyšel už před pár lety):

tar

Poznámka: pro alt text musíte kliknout na odkaz.

Hned z kraje musím přiznat, že mi tato narážka přišla tak trochu přehnaná. Tohle sice není v rámci vtipu nic divného, ale přece jenom tar nepatří mezi nástroje, jehož volby musím nějak často dohledávat. Možná by se v tomto kontextu lépe vyjímal např. git, ale ten postrádá oproti taru další bombastické asociace (narážka na tar bombu nebo Tsar bombu ), což ho pro potřeby toho vtipu maličko diskvalifikuje.

Na druhou stranu je ale pravda, že když jsem kdysi dávno používal na rozbalování archivů extract script z Archlinux wiki, používat přímo tar bych bez man stránky nebo googlení taky nemohl. A přitom, jak jsem později taky zjistil, to není nijak krkolomné :-)

Ve většině případů si vystačím s tím, že tar xf soubor.tar.gz rozbalí archiv (kde xf si pamatuji jako extract file), zatímco pro zabalení souboru použiju tar caf soubor.tar.gz soubor (kde caf je create archive file) a typ archivu (v tomto případě tar.gz) tar hádá podle přípony cílového souboru.

Tady se hodí dodat, že i když na strojích, kam mám aspoň ssh přístup, je skoro vždy nainstalován GNU tar implementace taru, je v předchozích příkladech použit pro volby příkazové řádky BSD styl, který z nějakého iracionálního důvodu pro tar preferuju.

Možná je to tím, že v unixovém stylu bych oproti BSD verzi musel psát jeden znak navíc:

tar -caf soubor.tar.gz soubor

a srovnání s GNU stylem snad ani nemá cenu komentovat (btw tady si můžete všimnout jedné drobnosti, a to že jsem v předchožím odstavci trochu kecal, a to a není od archive):

tar --create --auto-compress --file soubor.tar.gz soubor

Skutečnost ale může být jednodušší na vysvětlení. Ty BSD volby používám dost možná jen proto, že jsem to velmi dávno někde viděl a od té doby to tak pořád dokola ze setrvačnosti používám, anichž bych se na tím nějak extra zamýšlel. A trochu hádám, že tahle, možná trochu náhodná setrvačnost, nebude jenom můj případ.

Podobně můžete různě po internetu vidět ukázky použití taru s písmenky jako z nebo j, které určují typ použitého kompresního programu (z je pro gzip, j pro bzip2). Pokud ale budete chtít použít např. xz, nevím jestli budete mít radost, až z man stránky zjistíte, že odpovídající jednopísmenková volba je J. I když na druhou stranu, je to GNU tar ... takže je tam i rozumná dlouhá verze té volby --xz a díky tomu, že už jim došly písmenka, se žádné další jednoznakové zkratky pro kompresní algoritmy nepřidávají. A přitom výše zmíněná volba auto compress je v GNU tar již skoro 10 let (od verze 1.20 vydané 14. 4. 2008), takže se to už mezitím aktuálně dostalo i do distribucí typu RHEL 6 nebo Debianu oldstable.

Na druhou stranu ale hodně štěstí, pokud byste tuhle GNU fičuru chtěli použít na např. OpenBSD:

$ tar caf archive.tar.gz random.c file1.c
tar: unknown option a
usage: tar {crtux}[014578befHhjLmNOoPpqsvwXZz]
           [blocking-factor | archive | replstr] [-C directory] [-I file]
           [file ...]
       tar {-crtux} [-014578eHhjLmNOoPpqvwXZz] [-b blocking-factor]
           [-C directory] [-f archive] [-I file] [-s replstr] [file ...]

A tady se dostáváme k možnosti, že si ten komix dělá dost možná srandu i z toho, jak různé implementace taru (např. výše zmíněná GNU vs OpenBSD) chápou volby příkazové řádky. Proč by na té bombě nemohla běžet nějaká extra stará Linuxová distribuce, FreeBSD nebo snad Solaris? Tuhle možnost bych ale dál dovolil pro potřeby tohoto blogu zanedbat. Konec konců, tento problém mají všechny tradiční unixové nástroje, ne jen tar.

Když se ale na chvíli vrátím k volbám nástroje GNU tar a měl bych vybrat ještě jednu která stojí za zmínku, je to t neboli --list, která vypisuje seznam souborů v archivu:

$ tar tf passthrough.tar.xz
Makefile
passthrough.1
passthrough.c

Tím bychom měli výčet command line voleb pro GNU tar, co imho stojí za zapamatování, kompletní. Všechno ostatní hledám v man stránce, která ale dokáže už jen díky samotnému počtu funkcí implementovaných v GNU taru občas překvapit.

Např. nedávno jsem potřeboval vygenerovat checksum ze všech souborů v archivu aniž bych celý archiv rozbaloval (jednak to není nutné a druhak jsem na to ani zrovna neměl volný diskový prostor) a ukázalo se, že tar umožňuje volbou --to-command specifikovat příkaz, kterému se předá obsah každého jednotlivého rozbaleného souboru na standardní vstup. Takže pomocí wrapper skriptu pro sha1sum (pro potřeby dalšího příkladu uloženého v ~/bin/tar-sha1-t.sh):

#!/bin/bash
# see also: man tar, https://unix.stackexchange.com/questions/303667/
echo -n $(sha1sum) | sed 's/ .*$//'
echo " $TAR_FILENAME"

Lze nechat tar přímo vypsat sha1 checksum souborů v archivu:

$ tar xf foo.tar.gz --to-command=~/bin/tar-sha1-t.sh
384dcab2b0e67e940406d1bbfd1b083c61319ce4 foobar.png
e1c272d5abe7d339c4047d76294e7400c31e63b4 README

A nebo se taky může stát, že narazíte na vám dosud neznámou tar fičuru zcela náhodou. Např. v tomto případě jsem nejdřív moc nechápal, co se děje:

$ tar caf ccpp-2018-03-03-23:10:55-3667.tar.gz ccpp-2018-03-03-23:10:55-3667
tar (child): Cannot connect to ccpp-2018-03-03-23: resolve failed
tar: Child returned status 128
tar: Error is not recoverable: exiting now

Proč by jako tar měl komunikovat s někým po sítí na základě jména souboru? Ale po chvíli hledání se ukázalo, že:

An archive name that has a colon in it specifies a file or device on a remote machine. The part before the colon is taken as the machine name or IP address, and the part after it as the file or device pathname, e.g.:

--file=remotehost:/dev/sr0

An optional username can be prefixed to the hostname, placing a @ sign between them.

A pokud se vám to nelíbí, tak GNU tar nabízí volbu:

--force-local

Archive file is local even if it has a colon.

Takže následující příkaz již funguje bezvadně:

$ tar --force-local -caf ccpp-2018-03-03-23:10:55-3667.tar.gz ccpp-2018-03-03-23:10:55-3667

Ale pokud se takový archiv pokusíte přečíst a zapomenete na tu dvojtečku, opět máte problém:

$ tar tf ccpp-2018-03-03-23\:10\:55-3667.tar.gz
tar: Cannot connect to ccpp-2018-03-03-23: resolve failed

Ať žijí rozumné výchozí volby a zpětná kompatibilita. Schválně jsem se musel podívat, jak dlouho tam tohle chování je a v NEWS souboru jsem našel:

Version 1.11 - Michael Bushnell, 1992-09.
Version 1.10.16 - 1992-07.
Version 1.10.15 - 1992-06.
Version 1.10.14 - 1992-05.
Version 1.10.13 - 1992-01.

* Remote archive names no longer have to be in /dev: any file with a
':' is interpreted as remote.  If new option --force-local is given,
then even archive files with a ':' are considered local.

Upřímně nechápu, jak tohle někomu přišlo jako rozumný nápad, ale asi mi chybí historický kontext. A asi není ani třeba dodávat, že tar z OpenBSD tohle neimplementuje.

Důležitý detail, který jsem zatím vynechal je, jakým protokolem se tar chce na vzdálený stroj připojit:

By default, the remote host is accessed via the rsh(1) command. Nowadays it is common to use ssh(1) instead.

Takže dneska už ssh, což si můžete sami zkusit na vhodně pojmenovaném tarballu:

$ tar tf localhost:foo.tar.gz
The authenticity of host 'localhost (::1)' can't be established.
ECDSA key fingerprint is SHA256:TgLgqk9xkWb2oGtBRgk1vKPvWzbgdkp0InR0PZHXnbQ.
ECDSA key fingerprint is MD5:48:16:9c:eb:b8:22:0f:ab:22:b4:71:a5:3e:54:2c:7f.
Are you sure you want to continue connecting (yes/no)?

:-)

To už možná stojí za úvahu, zda takové chování není natolik podivné, že by se dalo považovat do jisté míry za bezpečnostní problém. Např. by šlo pojmenovat tarball tak, že při pokusu o jeho rozbalení vás UPC odpojí nebo by šlo pokusit se o deanomizaci nepozorného uživatele tor sítě. Ale oba ty příklady jsou víc absurdní než praktické.

O něco lepší by bylo např. nachystat na vzdáleném serveru tarball s jiným obsahem, který by si oběť nevědomky stáhla a rozbalila místo skutečného obsahu tarballu - teda za předpokladu, že nikomu nebude divné, že v názvu tarballu je vaše doména a název souboru, že odhadnete jaký login oběť používá, že budete mít ssh public key oběti a že oběť buď pro tento ssh klíč nepoužívá heslo nebo jej má v cache ssh agenta a k tomu všemu by bylo taky dobré, aby fingerprint vašeho ssh serveru oběť už měla mezi known hosts nebo ještě lépe, aby bylo toto ověřování zcela vypnuté. Něco málo z toho by mohl usnadnit github a jeho automatické zveřejňování public ssh klíčů ... ale to už si připadám jako v jiném xkcd komixu, jen místo příběhu s hackováním regexpů v perlu na laně dosaďte tento odstavec (I know GNU tar colon hack!), je to asi tak stejně praštěné:

regular expressions

Nicméně, vážně to funguje:

$ cd ~/tmp
$ touch good-file bad-file
$ tar caf bad.tar.gz bad-file
$ tar --force-local -caf localhost:bad.tar.gz good-file
$ cp bad.tar.gz ~
$ tar tf localhost:bad.tar.gz
bad-file
$ tar --force-local -tf localhost:bad.tar.gz
good-file

Opačná varianta, kdy někomu poradíte jak "správně" pojmenovat tarball aby pak posléze nahrál data na váš server je asi taky možná, ale ještě uhozenější.

Takže ve výsledku tohle nevypadá použitelně ani jako kanadský žertík ... možná snad kdyby byl někdo extra šikovný při vymýšlení a nasazování shell skriptu používajícího tar, ale i to mi přijde dost nepravděpodobné :)

Pokud jsem někoho snad inspiroval k nahlédnutí man stránky pro GNU tar, nebo ještě lépe k prostudování GNU tar dokumentace, nechť se podělí v komentářích o jeho oblíbenou funkcionalitu.

       

Hodnocení: 94 %

        špatnédobré        

Anketa

V příkazové řádce používám pro tar volby typu:
 (76 %)
 (25 %)
 (4 %)
Celkem 75 hlasů

Anketa

Tu věc s dvojteckou v názvu tarballu jsem:
 (94 %)
 (5 %)
 (2 %)
Celkem 66 hlasů

Anketa

Je ta věc s dvojteckou bezpečnostní problém?:
 (81 %)
 (19 %)
Celkem 52 hlasů

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Vložit další komentář

6.3. 05:22 Sten
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
Ten komix naráží na to, že BSD a UNIX volby nejsou kompatibilní, takže žádné univerzálně fungující parametry pro tar nejsou. U gitu by asi každý, kdo s ním někdy dělal, znal git commit.
6.3. 21:01 marbu | skóre: 29 | blog: hromada | Brno
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
To je pravda, a zmiňuju v blogu taky, ale už se tomu pak víc nevěnuju. Na druhou stranu mi ale nepřijde, že je tohle hlavní pointa, co si vybaví většina lidí, co se na ten komix podívá.

I think warning here is a bug. The biggest cloud service provider. There is no point in being so cool in a cold world.
6.3. 08:26 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
Nezbývá než doufat, že Jörg Schilling neumí česky… :-)
6.3. 10:52 SazeVaclav
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
Jörg Schilling neumi zadny jazyk - tedy podle toho, ze se zatim z nikym nedokazal domluvit ...
7.3. 01:16 pc2005 | skóre: 36 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
Aféra cdrtools?
7.3. 07:03 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
On má těch spouštěčů víc. Jakmile někde padne zmínka o taru, jeho syntaxi a chování, okamžitě naběhne a začne vysvětlovat, že "gtar" (jak tomu říká) je úplně špatně a že jediný správný tar je (shodou okolností jeho) star. Ale cdrtools a spol. jsou samozřejmě účinnější, to ho nastartuje naprosto spolehlivě.
6.3. 10:07 rastos | skóre: 61 | blog: rastos
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
ta věc s dvojteckou
Pff. Keby len tar. Skús obyčajný bash:
cat < /dev/tcp/cygnus-x.net/17
cat < /dev/tcp/alpha.mike-r.com/17
limit_false avatar 6.3. 10:12 limit_false | skóre: 23 | blog: limit_false
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
Ta věc s /dev/tcp je alespoň relativně známá a na první pohled to vypadá "podezřele".
When people want prime order group, give them prime order group.
xkucf03 avatar 6.3. 21:07 xkucf03 | skóre: 46 | blog: xkucf03
Rozbalit Rozbalit vše /dev/tcp, Plan 9, GNU Hurd

Pěkné :-) Myslel jsem, že na takovéhle věci potrpí jen Plan 9 nebo GNU Hurd :-)

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-Výuka.cz, Nekuřák.net
6.3. 21:21 marbu | skóre: 29 | blog: hromada | Brno
Rozbalit Rozbalit vše Re: /dev/tcp, Plan 9, GNU Hurd
No, on je to jen speciální případ pro přesměrování v bash shellu, takže když to člověk vidí poprvé, taky docela nechápe:
$ ls -l /dev/tcp
ls: cannot access '/dev/tcp': No such file or directory
$ ls -l /dev/tcp/localhost/22
ls: cannot access '/dev/tcp/localhost/22': No such file or directory
$ cat /dev/tcp/localhost/22
cat: /dev/tcp/localhost/22: No such file or directory
$ cat < /dev/tcp/localhost/22
SSH-2.0-OpenSSH_7.6
^C
I think warning here is a bug. The biggest cloud service provider. There is no point in being so cool in a cold world.
xkucf03 avatar 6.3. 22:40 xkucf03 | skóre: 46 | blog: xkucf03
Rozbalit Rozbalit vše Re: /dev/tcp, Plan 9, GNU Hurd

Pravda. A když si to vytvořím jako soubor, tak se to chová odlišně podle toho, jestli to čtu jako soubor nebo přesměrovávám:

$ cat /dev/tcp/localhost/22
ahoj

$ cat < /dev/tcp/localhost/22
SSH-2.0-OpenSSH_7.5p1 Ubuntu-10ubuntu0.1
Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-Výuka.cz, Nekuřák.net
7.3. 01:18 pc2005 | skóre: 36 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: /dev/tcp, Plan 9, GNU Hurd
xkucf03 avatar 6.3. 22:44 xkucf03 | skóre: 46 | blog: xkucf03
Rozbalit Rozbalit vše Re: /dev/tcp, Plan 9, GNU Hurd

jj, je to specifické pro Bash:

$ dash -c 'cat < /dev/tcp/localhost/22'
ahoj

$ bash -c 'cat < /dev/tcp/localhost/22'
SSH-2.0-OpenSSH_7.5p1 Ubuntu-10ubuntu0.1

A v dokumentaci jsou i příklady, jak s takovým spojením pracovat a používat třeba HTTP.

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-Výuka.cz, Nekuřák.net
6.3. 10:50 Ondra
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
ale přece jenom tar nepatří mezi nástroje, jehož volby musím nějak často dohledávat.
no jestli z fleku vite, kam napsat exclude, tak jste frajer. Ja si to musim vzdycky vygooglit.
6.3. 21:08 marbu | skóre: 29 | blog: hromada | Brno
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
To se přiznám že nevím, zaručeně si pamatuju jen co jsem psal v tom blogu. Exclude bych asi dohledával v man stránce.
I think warning here is a bug. The biggest cloud service provider. There is no point in being so cool in a cold world.
6.3. 12:34 Petr
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
Hezke, dekuji!
Grunt avatar 6.3. 17:23 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
tar -xvzf jmeno.tar.gz (eXtract Verbose Zipped File), víc si pamatovat nepotřebuju.

Nicméně nedávno se mi podařilo rozjet starý kazeťák. Marně jsem pátral jak se na něj vlastně (t)ape (ar)chive používá. Škoda že už je to jen jméno.

Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
6.3. 17:55 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD

To je trochu jiný "kazeťák". :-)

Není to jen jméno. Když se podíváte, jak ten formát vypadá, je na něm vidět, že původně byl určen pro archivaci na pásku, která není seekovatelná. Proto tam např. není žádný "index", který by vám umožnil jít rovnou na konkrétní soubor, ale musíte archiv vždy procházet sekvenčně (práci si lze ušetřit jen v tom, že na seekovatelném zařízení lze skákat po hlavičkách).

Grunt avatar 6.3. 19:30 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
Nechápu. Jak jiný? Oni existují různé druhy kazeťáků?
Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
6.3. 21:15 marbu | skóre: 29 | blog: hromada | Brno
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
No, myslíš spíš magnetofon nebo páskovou jednotku?
I think warning here is a bug. The biggest cloud service provider. There is no point in being so cool in a cold world.
Grunt avatar 6.3. 21:30 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
Příloha:
Vim já? A on je v tom nějaký fundamentální rozdíl?
Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
6.3. 22:19 marbu | skóre: 29 | blog: hromada | Brno
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
Hádám, že pásková jednotka má nějaké digitální rozhraní (SCSI, paralelní port), zatímco magnetofon analogový výstup. Což ale pravda neznamená, že by na magneťák nešlo ukládat data (viz domácí 8 bitové počítače). Každopádně ta Tesla SP 210 vypadá spíš jako kazeťák pro ty osmibity než jako pásková jednotka. Co jsi s tím zkoušel dělat?
I think warning here is a bug. The biggest cloud service provider. There is no point in being so cool in a cold world.
7.3. 01:26 pc2005 | skóre: 36 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
No ona i moje pásková jednotka DAT/DDS-3 (12GB) moc seekování neumí. To se mě povedlo mezi zámrzy kernelu a read errory mechaniky otestovat, tak umí skákat jen po nahrávkách (~souborech). Uvnitř jedné nahrávky seekovat neumí. Tohle jí řadí na stejnou sekvenční úroveň jako tu Teslu.
7.3. 20:14 marbu | skóre: 29 | blog: hromada | Brno
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
Jasně, o seekování mi ani tak nešlo, spíš o ten interface (analogový zvuk vs binární data).
I think warning here is a bug. The biggest cloud service provider. There is no point in being so cool in a cold world.
7.3. 20:49 pc2005 | skóre: 36 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
Aha to je ale jen problém řadiče té jednotky. Ona i FDD má většinu logiky kódování v čipsetu na desce. Na samotné mechanice je jen tvarovač.
Grunt avatar 8.3. 16:23 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
Příloha:
Hádám, že pásková jednotka má nějaké digitální rozhraní (SCSI, paralelní port), zatímco magnetofon analogový výstup. Což ale pravda neznamená, že by na magneťák nešlo ukládat data (viz domácí 8 bitové počítače).
To začalo až pozděj, ale v době existence UNIXu byl standard KCS.
Každopádně ta Tesla SP 210 vypadá spíš jako kazeťák pro ty osmibity než jako pásková jednotka. Co jsi s tím zkoušel dělat?
Ano je to kazeťák (konkrétně pro 8-bit). A co jsem zkoušel? No uložit na to nějaké data, co jiného (viz příloha).
Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
10.3. 02:17 marbu | skóre: 29 | blog: hromada | Brno
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
A šlo ti to z toho kazeťáku i zpětně přečíst? :) Jinak se dívám, že v tom souboru je jeden kanál s šířkou vzorku 8 bitů s tím, že se ve vzorcích použijí jen 2 hodnoty. Ale např. audio výstup z minimodem vypadá dost jinak, tak by mě zajímalo čím jsi to generoval. Asi existuje spousta různých historických nástrojů (např. na čtení dat z těch 8 bitových strojů), ale kdybych chtěl dneska ukládat data na kazeťák, tak bych se na ně asi vykašlal a zkusil ten výše zmíněný minimodem, co jsem po chvíli googlení jako první našel. Ale autor minimodemu to jako use case ani nezmiňuje, tak buď je v tom nějaký háček nebo se to prostě už nikoho nezajímá :)
I think warning here is a bug. The biggest cloud service provider. There is no point in being so cool in a cold world.
10.3. 04:22 pc2005 | skóre: 36 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
Já jsem se k pokusům záznamu na audio kazetu nikdy nedostal. Když jsem si hrál se softwarovým modemem, tak mě vyhořela zvukovka (z jiných příčin :-D) a pak jsem byl rád že jsem na měl aspoň náhradní na poslech mp3 :-D. ... Takže nevím jak se nejlíp data zaznamenávají, ale mělo by stačit přimo magnetizovat jedním nebo druhým směrem ne? (tedy dva stavy) Aspoň disketa to tak má a mám dojem že i DDS má jen nějakou hloupou dvoustavovou magnetizaci.

Jinak kdybych šel do vícestavové modulace, tak bych to rovnou udělal na něčem jako QAM.

Grunt avatar 10.3. 09:27 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
akže nevím jak se nejlíp data zaznamenávají, ale mělo by stačit přimo magnetizovat jedním nebo druhým směrem ne? (tedy dva stavy)
Tak to mají kazety, magnetické pásky i ty diskety. Liší se to pouze požitým schématem (PWM, FM, MFM, M²FM, GCR) resp. jejich efektivitou.
Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
10.3. 20:39 pc2005 | skóre: 36 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
Jo ale normálně audiokazety i VHS jsou analogový, takže se tím dvoustavovým záznamem připravuješ o bitrate.

Fakt bych zkusil implementovat něco jako tohle.
Grunt avatar 10.3. 09:19 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
Příloha:
Jo, jo. Minimodem jsem právě objevil. A přesně ten mi chyběl.
A šlo ti to z toho kazeťáku i zpětně přečíst?
Samozřejmě. Proč by nemělo? Tohle je právě výhoda staré klasické PWM (nebavím se o Turboloaderech). Ono se na tu kazetu nevleze ani Megabajt nicméně to většinou přežije (pravděpodobně i termonukleární válku). Mám kazety staré přes 30let, furt fungují jako kdysi. Jenže vždycky je to omezeno rychlostí CPU (což bylo závratných 3.5 MHz) proto jsem pátral po tom jestli neexistuje něco efektivnějšího. Ona i spektrální analýza odhalí že o moc efektivně uloženo není (viz spektrum v příloze).
Asi existuje spousta různých historických nástrojů
No právě že ani moc ne. Ono to bylo i v UNIXu implementované v /dev/tape a ne v žádném nástroji.
tak bych se na ně asi vykašlal a zkusil ten výše zmíněný minimodem
Yup přesně tak. Teň s ním testuju BASICODE ale popravdě mi to moc nefunguje ani v tom emulátoru ani v tom mimimodemu :-)
Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
Max avatar 6.3. 18:11 Max | skóre: 66 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
Já k tomu ještě používám "tar cvf"
Zdar Max
Měl jsem sen ... :(
7.3. 01:27 pc2005 | skóre: 36 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
Tak čistě technicky je spuštení "tar" bez volby taky validní příkaz :-D.
7.3. 20:05 marbu | skóre: 29 | blog: hromada | Brno
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
Dívám se, že jsem udělal chybu, když jsem nepřidal pro poslední anketu možnost "nevím" :)
I think warning here is a bug. The biggest cloud service provider. There is no point in being so cool in a cold world.
7.3. 23:29 Filip Jirsák | skóre: 67 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
Ještě by to chtělo kontraanketu, jaký typ voleb používáte s ps. Kde je to ještě vylepšené tím, že stejné písmeno má jiný význam v BSD a jiný v Unix notaci.
xkucf03 avatar 8.3. 00:28 xkucf03 | skóre: 46 | blog: xkucf03
Rozbalit Rozbalit vše ps, sql

Většinou ps aux. A zrovna u výpisu procesů by se hodilo nejlíp SQL (projekce + restrikce – vybrat si jaké sloupce chci + filtrovat podle různých kritérií).

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-Výuka.cz, Nekuřák.net
8.3. 01:10 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
Rozbalit Rozbalit vše Re: ps, sql
A zrovna u výpisu procesů by se hodilo nejlíp SQL (projekce + restrikce – vybrat si jaké sloupce chci + filtrovat podle různých kritérií).
Na kriteria mas bud prepinace nebo grep, na vyber sloupcu prepinac "-o".
A zrovna u výpisu procesů by se hodilo nejlíp SQL
SQL je spatny jazyk i na praci s relacnimi daty, pouzivat ho na cokoliv jineho mi proto neprijde jako prilis moudry napad. Koncepcne cistejsi mi prijde spis pristup, ktery pouziva Powershell.
Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
8.3. 10:49 marbu | skóre: 29 | blog: hromada | Brno
Rozbalit Rozbalit vše Re: ps, sql
Pokud ti jde jen o selekci a projekci, tak jak už deda.jabko poznamenal, tohle se dá řešit přes ps -o a awk.

Projekce se udělá přes to ps -o. Např. pro vypsání pidu, název procesu a jeho rss pro všechny procesy:
$ ps -e --no-headers -o pid,comm,rss,size
    1 systemd         11704 20656
    2 kthreadd            0     0
    4 kworker/0:0H        0     0
    6 mm_percpu_wq        0     0

 ..... vynecháno ................

 6249 kworker/2:0         0     0
 6266 kworker/1:0         0     0
 6273 kworker/3:0         0     0
 6290 ps               1736  1040
 6291 less             1020   356
Selekce se nelíp řeší přes awk. Např. pokud chci z předchozího příkladu vyfiltrovat jen processy co mají v názvu tmux, rozpoznané dle regexpu:
$ ps -e --no-headers -o pid,comm,rss,size | awk '$2 ~ "tmux"' 
 2004 tmuxp           19072 11928
 2011 tmux: server     3732   884
 2487 tmux: client     3300   492
Nebo jen bash procesy, jejichž rss je větší než 10700:
$ ps -e --no-headers -o pid,comm,rss,size | awk '$2 == "bash" && $3 >= 10700' 
 1962 bash            10768  7544
 3933 bash            10940  7544
 4731 bash            10708  7464
 5472 bash            10824  7544
I think warning here is a bug. The biggest cloud service provider. There is no point in being so cool in a cold world.
8.3. 11:29 marbu | skóre: 29 | blog: hromada | Brno
Rozbalit Rozbalit vše Re: ps, sql
Jinak ten tvůj nápad s sql rozhraním pro ps mi teď připoměl osquery.
I think warning here is a bug. The biggest cloud service provider. There is no point in being so cool in a cold world.
xkucf03 avatar 8.3. 19:42 xkucf03 | skóre: 46 | blog: xkucf03
Rozbalit Rozbalit vše SQL API k OS
Příloha:

BTW: v roce 2014 jsem dělal prototyp, SQL API k OS (zdrojáky).

Pro psaní ad-hoc dotazů je to SQL trochu robustní a člověk spíš použije ten grep/awk, spokojí se s nedokonalým výsledkem, ale pro psaní skriptů nebo něčeho, co má běžet bez dozoru se hodí mít spolehlivější nástroj, který se nikdy nesplete např. v tom, kde jsou hranice1 mezi sloupci/atributy, a v kterém jde psát ty dotazy přehledně, čitelně, bez kryptických zkratek/parametrů.

[1] v textovém výstupu je to většinou mezera nebo jiný oddělovač, ale moc se nepočítá s tím, že by znak mezery či oddělovače mohl být i součástí hodnoty a escapování buď neexistuje nebo není na jedné či druhé straně podporované; složitější strukturovaná data a stromy taky není jak vyjádřit

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-Výuka.cz, Nekuřák.net
10.3. 02:50 marbu | skóre: 29 | blog: hromada | Brno
Rozbalit Rozbalit vše Re: ps, sql
Většinou ps aux.
+1

A vždycky jsem si myslel, že to používám proto, že to takto zmiňoval Cliff Stoll v knize Kukaččí vejce, který byl zvyklý na BSD. Ale když jsem to teď hledal, ukázalo se že je tam ps -aux ...

Nicméně ten kontext, v kterým to bylo zmíněno, se do této debaty celkem hodí:
Ze zvyku jsem psával ps -aux, ta tři poslední písmenka říkala otci Unixovi, aby sdělil status jednoho každého. Vetřelec ale napsal ps -eafg. Podivné. Nikdy jsem neviděl nikoho použít příznak g.
A o stránku dál:
„Cliffe, ten hacker není z Berkeley“

„Jak to víš?“

„Tys viděl toho chlápka vypsat příkaz ps -eafg, že?“

„Jo, tady je výpis,“ opáčil jsem. „Obyčejný unixovský příkaz k vypsání seznamu všech aktivních procesů ‚ps‘ znamená print status, a ta čtyři písmenka zmodifikují displej. Je to svým způsobem něco jako přepínače na stereu, mění se způsob, jak příkaz funguje.“

„Cliffe, já vím, že jsi zvyklý na Berkeley Unix. Od té doby co ho vymysleli, píšeme mechanicky ‚ps‘, když chceme vidět, co se děje v systému. Ale řekni mi, co modifikují ta čtyři písmena?" Dave věděl, že v obskurních příkazech Unixu jsem ignorant. Tvářil jsem se sebevědomě.

„No, příznak e znamená vypsat jméno procesu i prostředí, a příznak a vypíše všechny procesy - nejenom tvoje. Hacker tu chtěl vidět všechno, co na systému běží.“

„Dobrý, to je půlka. A na co jsou ty příznaky f a g?“

„Nevím.“ Dave mě v tom nechal plácat, dokud jsem nedoznal svou nevědomost.

„G-výpis žádáš, když chceš vidět zajímavé i nezajímavé procesy. Ukáže se všechno, i nezajímavé procesy, jako je účetnictví. A všechny ukryté procesy.“

„A víme, že se nám šťoural v účetních programech.“

Dave se usmál: „A tak nám zůstává f. Jenže to už není Berkeley Unix. To je metoda AT&T Unixu. Berkeley Unix dává na seznam všechny procesy automaticky, takže přepínač f nepotřebuje. Náš přítel nezná Berkeley Unix. Je ze staré unixovské školy.“
I think warning here is a bug. The biggest cloud service provider. There is no point in being so cool in a cold world.
8.3. 02:15 pc2005 | skóre: 36 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
ps aux a pak ještě to s threadama (to si obvykle musím vyhledat :-D) nebo "f" pro grafické vyjádření parent-child stromu.
Max avatar 8.3. 07:36 Max | skóre: 66 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
Já jedu "ps auxww"
Zdar Max
Měl jsem sen ... :(
8.3. 19:06 pc2005 | skóre: 36 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
LOL celé jméno firefoxu :-D.
xkucf03 avatar 8.3. 19:48 xkucf03 | skóre: 46 | blog: xkucf03
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
Taky jsem na to nedávno koukal, co je to tam za hrůzy.
Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-Výuka.cz, Nekuřák.net
Luboš Doležel (Doli) avatar 8.3. 13:33 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
A pak je tu ještě implementace tuším z BusyBoxu, která to má zase nějak jinak.
8.3. 00:51 Vantomas | skóre: 27 | Praha
Rozbalit Rozbalit vše Re: GNU tar, xkcd a BSD
find v Mac OS (a asi i v jiném BSD světě) se musí spouštět s parametrem adresáře, nedomýšlí si tam automaticky aktuální adresář, jako GNU find.

Prostě jsou v tom takový drobný rozdíly.

Založit nové vláknoNahoru

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.