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

    Byla vydána (𝕏) nová major verze 17 softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech GitLab (Wikipedie). Představení nových vlastností i s náhledy a videi v oficiálním oznámení.

    Ladislav Hagara | Komentářů: 0
    17.5. 12:22 | Komunita

    Sovereign Tech Fund, tj. program financování otevřeného softwaru německým ministerstvem hospodářství a ochrany klimatu, podpoří vývoj FFmpeg částkou 157 580 eur. V listopadu loňského roku podpořil GNOME částkou 1 milion eur.

    Ladislav Hagara | Komentářů: 0
    17.5. 01:55 | Komunita

    24. září 2024 budou zveřejněny zdrojové kódy přehrávače Winamp.

    Ladislav Hagara | Komentářů: 12
    16.5. 23:33 | Nová verze

    Google Chrome 125 byl prohlášen za stabilní. Nejnovější stabilní verze 125.0.6422.60 přináší řadu oprav a vylepšení (YouTube). Podrobný přehled v poznámkách k vydání. Opraveno bylo 9 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 1
    16.5. 21:11 | Nová verze

    Textový editor Neovim byl vydán ve verzi 0.10 (𝕏). Přehled novinek v příspěvku na blogu a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    16.5. 20:55 | Nová verze

    Byla vydána nová verze 6.3 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 13.0.15.

    Ladislav Hagara | Komentářů: 0
    16.5. 13:33 | IT novinky

    Dnes ve 12:00 byla spuštěna první aukce domén .CZ. Zatím největší zájem je o dro.cz, kachnicka.cz, octavie.cz, uvycepu.cz a vnady.cz [𝕏].

    Ladislav Hagara | Komentářů: 10
    16.5. 13:22 | Nová verze

    JackTrip byl vydán ve verzi 2.3.0. Jedná se o multiplatformní open source software umožňující hudebníkům z různých částí světa společné hraní. JackTrip lze instalovat také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    16.5. 12:22 | Pozvánky

    Patnáctý ročník ne-konference jOpenSpace se koná 4. – 6. října 2024 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytváří všichni účastníci, se skládá z desetiminutových

    … více »
    Zdenek H. | Komentářů: 0
    16.5. 03:11 | Nová verze

    Program pro generování 3D lidských postav MakeHuman (Wikipedie, GitHub) byl vydán ve verzi 1.3.0. Hlavní novinkou je výběr tvaru těla (body shapes).

    Ladislav Hagara | Komentářů: 9
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (77%)
     (5%)
     (10%)
     (8%)
    Celkem 355 hlasů
     Komentářů: 16, poslední 14.5. 11:05
    Rozcestník

    Dotaz: tar a čtení z listu

    18.4. 01:10 jejda | skóre: 24 | blog: jejda
    tar a čtení z listu
    Přečteno: 575×
    Ahojte! Mám seznam souborů ve kterém je několik set položek ve formátu:
    /home/user1/dir/dir/dir/dir/file
    /home/user2/dir/dir/file
    /home/user3/dir/dir/dir/dir/dir/file
    /etc/dir/dir/file
    /mnt/disk/dir/dir/dir/file
    .....
    .....
    
    Chtěl bych ty soubory zazálohovat, ale netuším jak přinutit tar aby zachoval práva a vlastníka adresářů. Spouštím to jako
    tar -czvf archiv.tgz -T filelist.txt
    U souborů v archivu jsou ty práva v pořádku, ale u adresářů tar nastaví jako vlastníka root:root a práva 0755. Prostě mi jde o to, jak z relativně rozsáhlého filesystému vyzobat soubory a ty zazálohovat i s cestou včetně práv nadřazených adresářů. Poradíte něco?

    Odpovědi

    18.4. 05:09 jejda | skóre: 24 | blog: jejda
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    Teda provizorně jsem to zatím vyřešil takto:
    archive="/home/zaloha/$(cat /etc/hostname)_$(date '+%Y-%m-%d').tar.gz"
    dir=$(mktemp -d)
    rsync -a --files-from=/home/zaloha/files.txt / $dir
    cd $dir
    tar -czvf $archive .
    chmod 600 $archive
    cd ..
    rm -r $dir
    Ale přijde mi to jako docela prasečina ty soubory někam dočasně kopírovat aby se zachovaly práva adresářů i po rozbalení. Nevíte o nějakém čistějším řešení? Možná nějak cpio a rourou přímo do taru? ...zkusím ješte poexperimentovat.
    18.4. 06:57 jejda | skóre: 24 | blog: jejda
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    Teda má to jeden zajímavý bug. Když ten archiv někam rozbalím, tak to změní práva adresáře do kterého se to rozbaluje na 0700. :-(
    21.4. 09:30 jejda | skóre: 24 | blog: jejda
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    Aha tak ono to není bug ale takova "security" fičura toho mktemp. Bezpečnější je to rozbalovat jako
    tar --one-top-level -xzf $archive
    Vyvoří to podadresář.
    18.4. 08:15 rastos | skóre: 62 | blog: rastos
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    Existuje nástroj, ktorý je na toto ušitý: cpio. Akurát, že formát nie je "tar" ale "cpio". Zabaliť:
    cpio -ov < filelist.txt > archiv.cpio
    Rozbaliť:
    cpio -idv < archiv.cpio 
    'o' je 'output to archive'
    'v' je 'verbose' - aby písal mená súborov, ktoré spracováva
    'i' je 'input from archive'
    'd' je 'create directories as needed'

    Ak cesty k súborom obsahujú medzeru/tab/... tak jednotlivé mená súborov by mali byť oddelené nulovym bajtom a nie EOL a cpio potom treba pridať flag '0'

    Skombinovať sa to dá pekne s find ... -print resp. find ... -print0.

    18.4. 08:17 rastos | skóre: 62 | blog: rastos
    Rozbalit Rozbalit vše Re: tar a čtení z listu

    A prípadne sa dá pri rozbaľovaní pridať ešte

    'm' - zachovať file modification time
    18.4. 10:37 jejda | skóre: 24 | blog: jejda
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    Ono se cpio v tomto chová uplně stejně jak tar. Ty adresáře které v tom archivu fyzicky vůbec nejsou to vytváří až během rozbalování s právama toho kdo ten archiv rozbaluje. Jediné na co jsem zatím přišel je, ty soubory přechodně vykopírovat včetně cest někam ven a tam je teprv zabalit. Ale přijde mi to takové těžkopádné. Jsem tak trochu doufal, že by mohl existovat nějaký elegantnější způsob.
    21.4. 01:43 Jarda
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    rastos: je to skvělé, jenom jestli by šla nějak zakomponovat komprimace do příkazů něco jako "cpio.gz"?
    21.4. 09:16 jejda | skóre: 24 | blog: jejda
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    Zakomprimovat to jde jednoduše rourou přes gzip
    cpio -ov < filelist.txt | gzip > archiv.cpio.gz
    a rozbalit
    zcat archiv.cpio.gz | cpio -idv
    případně se dá použít přepínač --no-absolute-filenames aby se to nerozbalilo na původní místo ale do aktuálního adresáře. Doporučuju ale mít v tom seznamu souborů taky všecky adresáře a podadresáře v cestě k souboru. Jinak se nemusí zachovat jejich původní práva.
    23.4. 16:16 Jarda
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    Moc díky za radu. Začal jsem to používat
    23.4. 23:04 bajus
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    Vyzkoušel jsem, ale má to nějaký zvláštní omezení oproti tar.gz. Například mám Thunderbird s profilem na sdb1 a cpio.gz zabalí jenom prázdný adresář Thunderbird bez podadresáře Profiles/bajus.mail... takže vlastně nic. Ve filelistu mám cestu a Thunderbird.
    24.4. 14:41 jejda | skóre: 24 | blog: jejda
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    Tak jestli máš v tom filelistu jenom jeden řádek, cpio ti zabalí jenom jeden soubor. Neprohledává ty adresáře rekurzivně. Jestli chceš zabalit sakumprásk všecko v adresáři Thunderbird, předhoď mu jako vstup výstup programu find.
    find Thunderbird | cpio -vo | gzip > Thunderbird.cpio.gz
    nebo
    cd Thunderbird; find | cpio -vo | gzip > ../Thunderbird.cpio.gz
    Některé verze taru prý neumí číst soubory ze seznamu tam se cpio hodí použít, ale na obyčejné rekurzivní balení všeho je tar lepší.
    18.4. 08:24 X
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    -p, --preserve-permissions
    extract information about file permissions (default for superuser)
    
    18.4. 10:40 jejda | skóre: 24 | blog: jejda
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    Dělám to jako root, tak ten přepínač nemá nanic vliv vůbec.
    18.4. 12:20 Vtipnéř | skóre: 38 | blog: Vtipnéřův blog | Brno
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    Dělám to jako root, tak ten přepínač nemá nanic vliv vůbec.
    Nepomohlo by přidat --same-owner (viz zde)?
    Opening Windows is better than washing them. Clearing Windows (e.g. erasing or deleting) is even much better.
    18.4. 10:49 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    A ten zoznam zálohovaných objektov z akého dôvodu nemôže obsahovať aj priečinky (adresáre)?

    Vyextrahovať to z hootvého zoznamu cez dirname a uniq by mala byť hračka. Ale nechce sa mi to testovať.
    20.4. 20:28 Vlado99 | skóre: 10 | blog: vlado99
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    Áno, toto je cesta. Len treba pridať --no-recursion, pretože chceme iba tie adresáre, nie všetky súbory v nich:
    #!/bin/bash
    # mapfile číta po riadkoch, tak nebude problém s medzerami v názvoch súborov
    # Ak ale súbory majú v názve "\n", chcelo by to iný prístup
    mapfile -t < list
    # Vyrobíme si ten zoznam adresárov
    for F in "${MAPFILE[@]}" ; do dirname "$F" ; done | sort -u >list-with-dirs
    # Pridáme zoznam súborov
    cat list >>list-with-dirs
    # --no-recursion zabezpečí, že sa v archíve budú iba požadované súbory a adresáre bez obsahu
    sudo tar -czf archive.tgz -C source --no-recursion -T list-with-dirs
    
    21.4. 08:29 jejda | skóre: 24 | blog: jejda
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    To ale nebude fungovat pro vnořené adresáře. Zkus
    mkdir -p /tmp/a/b/c/d/e/f
    touch /tmp/a/b/c/d/e/f/file
    find /tmp/a -type f > /tmp/list
    mapfile -t < /tmp/list
    for F in "${MAPFILE[@]}" ; do dirname "$F" ; done | sort -u
    to vypíše jenom ten poslední adresář
    /tmp/a/b/c/d/e/f
    
    Aby to fungovalo tak by ten výstup měl vypadat nějak takto:
    /tmp
    /tmp/a
    /tmp/a/b
    /tmp/a/b/c
    /tmp/a/b/c/d
    /tmp/a/b/c/d/e
    /tmp/a/b/c/d/e/f
    21.4. 12:46 jejda | skóre: 24 | blog: jejda
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    filelist=/tmp/filelist.txt
    dirlist=/tmp/dirlist.txt
    IFS="\n"
    t=$(mktemp)
    cat $filelist |
    while read f; do
        cd "$(dirname $f)"
        until [ "$(pwd)" = "/" ]; do
            pwd >> $t
            cd ..
        done
    done
    sort -u < $t > $dirlist 
    cat $dirlist $filelist > /tmp/list.txt
    rm $t $dirlist
    tar -czvf archive.tgz --no-recursion -T /tmp/list.txt
    Toto mi jakžtakž funguje, ale myslím že použitelné to bude maximálně do pár desítek/stovek souborů protože ta rychlost je tragická. Tak teď nevím co je menší zlo. Jestli toto nebo ten rsync :-/
    21.4. 22:56 Vlado99 | skóre: 10 | blog: vlado99
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    Rýchlosť sa trochu zlepší, keď sa zbavíš zbytočných cd a pwd. Hlavný problém je ale v tom, že sa každý adresár vyhodnocuje stále dokola znova a znova. Toto by mohlo pomôcť:
    declare -A processed
    mapfile -t < list
    for F in "${MAPFILE[@]}" ; do
            F="$(dirname "$F")"
            while [ "$F" != "." -a "$F" != "/" ] ; do
                    test -z "${processed[$F]:+_}" || break
                    echo "$F"
                    processed[$F]=1
                    F="$(dirname "$F")"
            done
    done | sort >list-with-dirs
    cat list >>list-with-dirs
    sudo tar -czf archive.tgz -C source --no-recursion -T list-with-dirs
    
    P.S.: sort -u by už nemal byť potrebný, možno ani sort.
    22.4. 07:19 jejda | skóre: 24 | blog: jejda
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    Hm tak toto už vypadá líp. Je to asi třikrát rychlejší jak ten můj pokus. 20000 řádků to přechroupe zhruba za 15 sekund. To už se dá používat. V těch složených závorkách se odehrává nějaká magie které zatím moc nerozumím. No každopápádně děkuju.
    22.4. 10:45 Aleš Kapica | skóre: 51 | blog: kenyho_stesky | Ostrava
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    Jaká magie? Normální práce s obsahem a názvy proměnných.
    22.4. 13:18 X
    Rozbalit Rozbalit vše Re: tar a čtení z listu
    Naji si v manualu "Parametr Expansion".

    Založit nové vláknoNahoru

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

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