Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: fotka 09. 08. 2014, 16:52:15

Název: Jak zabalit soubory, které najde příkaz find?
Přispěvatel: fotka 09. 08. 2014, 16:52:15
Dobrý den,

v jednom adresáři na linux serveru mám soubory s právy 700 (jsou to bash skripty) ale je tam spousta dalšího haraburdí a adresářů.

Já potřebuji linux příkaz, který mi zabalí do tar archivu pouze tyto soubory s právy 700 a více, nerekurzivně. Tak jsem přišel s tímto:

find /root/* -prune -type f ! -perm -777

to zobrazuje to co chci zálohovat, teď ale nevím jak by měl vypadat příkaz, který to zabalí, tedy mým cílem je abych dal jeden příkaz do cronu a automaticky mi to zabalilo tyhle soubory a pak si to nechám poslat na email jako zálohu..

jestli by byl někdo laskav a napsal by jak to má vypadat

(jsem lama)

děkuji
Název: Re:Jak zabalit soubory, které najde příkaz find ?
Přispěvatel: fotka 09. 08. 2014, 17:17:05
tento příkaz mi fungoval, ale nevím jestli nemá nějaké mouchy

find /root/* -prune -type f ! -perm 677 -exec tar rvf rootscripts860vm.tar {} \;
Název: Re:Jak zabalit soubory, které najde příkaz find ?
Přispěvatel: Franta. 09. 08. 2014, 18:09:02
To má akorát nevýhodu, že to bude opakovaně otvírat a zavírat ten soubor s archivem.

V man tar jsem našel:

     -T, --files-from FILE
           get names to extract or create from FILE


takže by sis mohl ten seznam uložit do dočasného souboru a pak ho načíst tarem.

A také viz příručka na GNU.org: 6.3 Reading Names from a File  (https://www.gnu.org/software/tar/manual/tar.html#SEC107) – tam mají přímo příklad s tím findem.

Případně by šel ten seznam souborů předat jako argument na příkazové řádce, ale to není moc dobré, pokud je těch souborů hodně.

Další možnost by byla předat ten seznam jako argument na příkazové řádce, ale
Název: Re:Jak zabalit soubory, které najde příkaz find ?
Přispěvatel: Mirek Prýmek 09. 08. 2014, 18:11:36
man cpio
Název: Re:Jak zabalit soubory, které najde příkaz find ?
Přispěvatel: JardaP . 09. 08. 2014, 20:28:58
Tak vezmu ixquick, zadam find tar a hned vidim nejake priklady. Treba: http://alvinalexander.com/blog/post/linux-unix/using-find-xargs-tar-create-huge-archive-cygwin-linux-unix nebo http://stackoverflow.com/questions/2697213/more-efficient-way-to-find-tar-millions-of-files . To by snad pro inspiraci stacilo.
Název: Re:Jak zabalit soubory, které najde příkaz find ?
Přispěvatel: Někdo 09. 08. 2014, 21:41:24
V man tar jsem našel:

     -T, --files-from FILE
           get names to extract or create from FILE


takže by sis mohl ten seznam uložit do dočasného souboru a pak ho načíst tarem.

A také viz příručka na GNU.org: 6.3 Reading Names from a File  (https://www.gnu.org/software/tar/manual/tar.html#SEC107) – tam mají přímo příklad s tím findem.

Nejdůležitější je tato informace, s tím by měl jít spojit find a tar přes rouru (pipe) a bude to dělat přesně to co je potřeba:

If you give a single dash as a file name for `--files-from', (i.e., you specify either --files-from=- or -T -), then the file names are read from standard input.
Název: Re:Jak zabalit soubory, které najde příkaz find ?
Přispěvatel: Mirek Prýmek 10. 08. 2014, 00:07:52
Hlavně nezapomenout dát findu --print0 a taru --null