Portál AbcLinuxu, 21. července 2025 06:42


Dotaz: Smazani souboru starsich nez 30 minut

28.9.2005 12:08 nemo
Smazani souboru starsich nez 30 minut
Přečteno: 546×
Odpovědět | Admin
Snazim se zautomatizovat mazani souboru starsich nez 30minut. problem je ten, ze find (aspon na Solarisu 9) rozlisuje pouze dny. Je nejake jednoduche elegantni reseni ? Diky.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

28.9.2005 12:39 Ondra
Rozbalit Rozbalit vše Re: Smazani soubory startsich nez 30minut
Odpovědět | | Sbalit | Link | Blokovat | Admin
Asi by slo si kazdou pulhodinku udelat "stamp" soubor. Treba "touch stamp". A za pul hodiny projet vsechny soubory a pomoci testu zjistovat, jestli jsou mladsi, nebo starsi.
28.9.2005 13:12 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Smazani soubory startsich nez 30minut
Odpovědět | | Sbalit | Link | Blokovat | Admin
(a) touch -t `date -d '30 minutes ago' '+%m%d%H%M'` ~/tmp/ts

(b) použít podmínky -amin, -mmin, -cmin

29.9.2005 11:49 nemo
Rozbalit Rozbalit vše Re: Smazani soubory startsich nez 30minut
(a) Zkusim to
(b) find na Solarisu tohle neumi
29.9.2005 11:53 nemo
Rozbalit Rozbalit vše Re: Smazani soubory startsich nez 30minut
Tako bohuzel....GNU nastroje jsou prilis napred...date na SunOS64 taky zklamal.
1.10.2005 00:21 Beda
Rozbalit Rozbalit vše Re: Smazani soubory startsich nez 30minut
google:"sunfreeware" nainstalovat si binutils a gcc. stahnout z gnu.org findutils a mate normalni gnu find... obdobne to pujde i s date.
28.9.2005 16:16 Kamorek | skóre: 33 | blog: předvolební mazec | VB
Rozbalit Rozbalit vše Re: Smazani souboru starsich nez 30 minut
Odpovědět | | Sbalit | Link | Blokovat | Admin
Toto smaze vse starsi 60ti minut.Neni to elegantni?

tmpwatch -m 1 /co/kde/smazat
Taky si udělám nějakou studii.
29.9.2005 11:50 nemo
Rozbalit Rozbalit vše Re: Smazani souboru starsich nez 30 minut
Je to dobry, ale tmpwatch neni standardni nastroj Solarisu 5.9 a nic jineho se na certifikovanou masinu instalovat nesmi.
29.9.2005 11:57 pexxi
Rozbalit Rozbalit vše Re: Smazani souboru starsich nez 30 minut
Boze, co je ten Solaris za OS??? Potrebne nastroje nema a nic ineho sa na certifikovanu masinu instalovat nesmie...
29.9.2005 12:53 Kamorek | skóre: 33 | blog: předvolební mazec | VB
Rozbalit Rozbalit vše Re: Smazani souboru starsich nez 30 minut
To bys mel trochu rozvest. ty nejsi admin, ze nesmis neco instalovat na server? V jakem jsi tedy vztahu k serveru?
Taky si udělám nějakou studii.
30.9.2005 11:49 nemo
Rozbalit Rozbalit vše Re: Smazani souboru starsich nez 30 minut
Ve svete velkych systemu, jako je napr. prave SAP, panuji trochu jine pomery. Cim starsi SW, tim lepe. Provoz SAPu je certifikovan pouze na masine, kde je nainstalovan taxativne vyjmenovany software. Pokud nastane chyba, kterou jako admin nevyresim, prichazi na pomoc placena podpora. Jakmile tato zjisti, ze nemam standardni prostredi (staci i nainstalovany midnight commander), davaji ruce pryc.
30.9.2005 12:14 JirkaV
Rozbalit Rozbalit vše Re: Smazani souboru starsich nez 30 minut
Tak si to napis v Perlu, ten tam urcite je...
30.9.2005 13:49 nemo
Rozbalit Rozbalit vše Re: Smazani souboru starsich nez 30 minut
Asi nic jineho nezbude. Jen jsem chtel vedet, zda neexistuje elegantni jednoduche reseni. Dik vsem
1.10.2005 14:11 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
Rozbalit Rozbalit vše Re: Smazani souboru starsich nez 30 minut
Nainstaluj si co potřebuješ (GNU find) do ~/bin, tam to snad nikomu a ničemu vadit nemůže.
30.9.2005 19:11 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Smazani souboru starsich nez 30 minut
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zde je můj prográmek v Pythonu, který přesně tohle dělá. Navíc, když něco smaže, tak vypíše, kdo byl vlastníkem onoho souboru. Adresáře smaže jen tehdy, když VŠECHNY soubory v něm obsažené nebyly použity déle než stanovený čas (v sekundách).
A teď mi řekni, že na Solarisu není Python :-)
#!/usr/bin/env python
import os, sys, stat, time, re, pwd

dir = '/tmpsamba'
file_age = 10 * 24 * 3600 #Delete files older than this number of seconds
epochsec = time.time() #Current time

def is_file_old_enough(path, anewer):
  if not os.path.isfile(path):
    print "Error, " + path + " is not a file"
    return False
  time_threshold = epochsec - anewer
  if time_threshold < os.stat(path).st_atime:
#    print 'File ' + fullpath + ' was recently accessed'
    return False
  else:
    return True

def is_path_old_enough(path, anewer):

  if os.path.islink(path): return True # We can always consider links to be old
                                       # enough to be deleted

  if not os.path.isdir(path): #If the tested path is not a directory, ...
    return is_file_old_enough(path, anewer)

  for root, dirs, files in os.walk(path, topdown=False):
    for name in files:
        fullpath = os.path.join(root, name)
        if os.path.islink(fullpath): continue #This should skip links
        if not is_file_old_enough(fullpath, anewer):
          return False
  return True

def rm_rf_path(path_to_rm):
  if not re.search('^/tmpsamba/', path_to_rm): # Just to make sure we are not
                                               # deteting something valuable
    print "Refused to delete " + path_to_rm
    return
  stat_result = os.lstat(path_to_rm) #do not follow symbolic links
  uid = stat_result[stat.ST_UID]
  name = pwd.getpwuid(uid).pw_name
  print "Deleting " + path_to_rm, '('+name+')'
  os.system("rm -rf '" + path_to_rm + "'")
  return

items = os.listdir(dir)
for i in items:
  fullpath = os.path.join(dir, i)

  if is_path_old_enough(fullpath, file_age):
    rm_rf_path(fullpath)

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.