Portál AbcLinuxu, 11. května 2025 05:02

Dotaz: mazanie starisch suborov v tar archive

vladky avatar 9.2.2009 13:41 vladky | skóre: 19
mazanie starisch suborov v tar archive
Přečteno: 177×
Odpovědět | Admin
Zdravim
Mozete mi prosim niekto poradit akym sposobom vymazem z tar archivu subory
ktore su starsie ako 30 dni ? Archiv vylistujem napriklad  tar -tf archiv.tar  ale z
vypisu nieje vidiet atributy suborov. Pripadne tar -t --verbose < archiv.tar  tu uz je
nieco vidiet. Ale ako to dalej spracovat napriklad cez find a ulozit vysledok do
nejakeho vystupu z ktoreho by som to potom vedel cez tar --delete vymazat ?
 
Velmi pekne dakujem 
 
 
Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

9.2.2009 16:00 mlz
Rozbalit Rozbalit vše Re: mazanie starisch suborov v tar archive
Odpovědět | | Sbalit | Link | Blokovat | Admin

man tar

-N ....

Neodpovím, další podotázky:

Není jednodušší vytvářet tar již s požadovaným obsahem?

Je nutné používat tar, existuje-li např. rsync* utility?

Jaký je účel takového použití taru? (to měl být první dotaz)

 

PM

9.2.2009 16:01 marek
Rozbalit Rozbalit vše Re: mazanie starisch suborov v tar archive
Odpovědět | | Sbalit | Link | Blokovat | Admin

dobry den

Existuje avfs, coz je FUSE zalezitost pro mountovani ruznych ne-filesystemu.

Ve verzi v me distribuci to ma read-only podporu pro tar/gzip.

Takze neni problem pristupovat k jednotlivym souborum pomoci konstrukce find -print0 | xargs -0 ....

Rozhodne to ale nedoporucuji na produkcni nasazeni.

A parsovat vystup z 'tar -t --verbose' bych nedoporucoval uz vubec (osetrit vsechny pripustne znaky neni zadna sranda).

marek

vladky avatar 9.2.2009 16:10 vladky | skóre: 19
Rozbalit Rozbalit vše Re: mazanie starisch suborov v tar archive
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jedna sa o system zalohy vela malych suborov. Problem je ten, ze zaloha
ma byt ulozena iba v jednom subore s tym, ze stare subry sa zo zalohy maju
vzdy vymazat. Moze to byt aj iny format ako tar.
 
9.2.2009 21:10 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: mazanie starisch suborov v tar archive

Jde to třeba takhle:

#!/usr/bin/python
import tarfile, time

days = 30
now = time.time()

tarnew = tarfile.open('pokus_new.tar', 'w')
tarold = tarfile.open('pokus.tar')
count = 0
for item in tarold:
    if not item.isfile(): continue
    if (now-item.mtime)/86400 < days:
        print item.name
        content = tarold.extractfile(item)
        tarnew.addfile(item, content)
        count += 1
tarnew.close()
print count, 'items'

Vezme to pokus.tar a vytvoří pokus_new.tar, ve kterém jsou pouze soubory novější než 30 dní. O adresářích se mi nechtělo přemýšlet, takže je přeskakuju. Budou tam nějaké nebo to bude „plochý“ seznam souborů?

Založit nové vláknoNahoru

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

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.