Toon posts:

Automatisch "oude" files verwijderen

Pagina: 1
Acties:
  • 407 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Matched: verwijderen, oude
Ben op zoek naar een script of tooltje (bij voorkeur gratis) dat het volgende doet:
automatisch files die minimaal 1 maand oud zijn verwijderen. Het moet draaien op een w2k server.

Ik heb dit nodig om een scratchdisk automatisch op te schonen. Mensen mogen er data opzetten maar data ouder dan 1 maand wordt verwijderd (de gebruikers zijn hiervan op de hoogte).

Ik hou me aanbevolen voor elke suggestie...

  • TheVMaster
  • Registratie: Juli 2001
  • Laatst online: 13:31

TheVMaster

Moderator WOS
Geen matches
Hmm...ff vbscriptje bouwen?

DiscVault - Beheer je fysieke schijvencollectie | Beschikbaar als Self-Hosted, iOS (ook TestFlight) en Android (beta).


  • littledreamer
  • Registratie: Juni 2002
  • Laatst online: 15-08-2025

littledreamer

Dingen enzo!

Geen matches
Als je alle files in een en dezelfde map zet, kan je dit ook met een simpel bat bestandje realiseren.

Verwijderd

Topicstarter
Geen matches
Ok, ik ben er inmiddels uit dat ik moet gaan scripten. Ik heb gezien dat ik mbv een vbscript zowel de "DateCreated" als de "DateLastModified" kan uitlezen van een bestand. Ik heb echter nog nooit met vbscript gewerkt. Weet er iemand een goede online handleiding? Of kan iemand me vertellen hoe ik in vbscript door de gehele directory structuur navigeer en van elk bestand bovenstaande properties kan opvragen?

  • sverzijl
  • Registratie: Januari 2001
  • Laatst online: 13:49
Matched: oude
Verwijderd schreef op 22 september 2004 @ 08:10:
Ok, ik ben er inmiddels uit dat ik moet gaan scripten. Ik heb gezien dat ik mbv een vbscript zowel de "DateCreated" als de "DateLastModified" kan uitlezen van een bestand. Ik heb echter nog nooit met vbscript gewerkt. Weet er iemand een goede online handleiding? Of kan iemand me vertellen hoe ik in vbscript door de gehele directory structuur navigeer en van elk bestand bovenstaande properties kan opvragen?
in plaats van zelf te gaan scripten zou je ook de eeuwenoude (maar nog steeds functionerende) tool TDEL kunnen gebruiken (http://tutils.cjb.net/tdel.htm).
met een simpele TDEL path\*.* /DAYS:31.. /S /Q /Y wis je vervolgens alle files ouder dan 31 dagen (inc subdirs)

Verwijderd

Geen matches
Het sleutelwoord bij gebruik van VBScript is hier 'FileSystemObject'.
Kijk eens op http://www.devguru.com

[ Voor 20% gewijzigd door Verwijderd op 22-09-2004 08:23 ]


Verwijderd

Topicstarter
Matched: oude
sverzijl schreef op 22 september 2004 @ 08:22:
[...]

in plaats van zelf te gaan scripten zou je ook de eeuwenoude (maar nog steeds functionerende) tool TDEL kunnen gebruiken (http://tutils.cjb.net/tdel.htm).
met een simpele TDEL path\*.* /DAYS:31.. /S /Q /Y wis je vervolgens alle files ouder dan 31 dagen (inc subdirs)
Ik heb ook naar Robocopy en Forfiles (resource kit tools) gekeken maar deze kijken alleen maar naar de "file modified date" terwijl ik ook naar de "file created date" wil kijken (biede dus). Als je nl data van de ene naar de andere disk kopieert (of moved) dan is de "file created date" nieuwer dan de "file modified date". Ik wil geen gezeik krijgen van gebruikers die zeggen: "ik heb de data er pas eergisteren opgezet en nu is hij al weg" (disk wordt nl niet gebackuped). Ik ben bang dat TDEL ook naar slechts 1 datum kijkt, vandaar dat ik wil gaan scripten

[ Voor 8% gewijzigd door Verwijderd op 22-09-2004 08:35 ]


  • sverzijl
  • Registratie: Januari 2001
  • Laatst online: 13:49
Geen matches
Verwijderd schreef op 22 september 2004 @ 08:33:
[...]


Ik heb ook naar Robocopy en Forfiles (resource kit tools) gekeken maar deze kijken alleen maar naar de "file modified date" terwijl ik ook naar de "file created date" wil kijken (biede dus). Als je nl data van de ene naar de andere disk kopieert (of moved) dan is de "file created date" nieuwer dan de "file modified date". Ik wil geen gezeik krijgen van gebruikers die zeggen: "ik heb de data er pas eergisteren opgezet en nu is hij al weg" (disk wordt nl niet gebackuped). Ik ben bang dat TDEL ook naar slechts 1 datum kijkt, vandaar dat ik wil gaan scripten
TDEL kijkt inderdaad alleen naar de date modified.

Verwijderd

Topicstarter
Geen matches
Ik weet nu dat ik met de subfolders property subfolders kan verzamelen echter subsubfolders is weer een ander verhaal. Dat moet ik zelf regelen en daar komt weer een uitdaging: Hoe weet ik op voorhand hoeveel nivo's ik diep moet? Is daar een standaard stukje code voor ofzo?

  • Jazzy
  • Registratie: Juni 2000
  • Laatst online: 08:02

Jazzy

Moderator SSC/PB/AI

Moooooh!

Geen matches
Je kunt ook Windows Services for Unix installeren, dan heb je alle standaard Unix tools aan boord. Dat maakt het een stuk makkelijker.

http://www.microsoft.com/windows/sfu/default.asp

Exchange en Office 365 specialist. Mijn blog.


  • NetForce1
  • Registratie: November 2001
  • Laatst online: 22-08 23:21

NetForce1

(inspiratie == 0) -> true

Geen matches
Verwijderd schreef op 22 september 2004 @ 10:17:
Ik weet nu dat ik met de subfolders property subfolders kan verzamelen echter subsubfolders is weer een ander verhaal. Dat moet ik zelf regelen en daar komt weer een uitdaging: Hoe weet ik op voorhand hoeveel nivo's ik diep moet? Is daar een standaard stukje code voor ofzo?
De subfolders property geeft een verzameling val alle subfolders terug, dat zijn ook weer Folder-objecten. Je kunt dus door die verzameling subfolders wandelen, en van elke folder zijn subfolders opvragen.
In principe hoef je van te voren niet te weten hoe diep je moet gaan (dat kan ook helemaal niet). Je weet nl. dat je in het diepste niveau zit als de subfolders property niets meer teruggeeft.

De wereld ligt aan je voeten. Je moet alleen diep genoeg willen bukken...
"Wie geen fouten maakt maakt meestal niets!"


  • ritsjoena
  • Registratie: December 2001
  • Laatst online: 16-06-2024
Geen matches
Jazzy schreef op 22 september 2004 @ 10:21:
Je kunt ook Windows Services for Unix installeren, dan heb je alle standaard Unix tools aan boord. Dat maakt het een stuk makkelijker.

http://www.microsoft.com/windows/sfu/default.asp
En welke tool moet je dan hebben? |:(

  • Jazzy
  • Registratie: Juni 2000
  • Laatst online: 08:02

Jazzy

Moderator SSC/PB/AI

Moooooh!

Geen matches
ritsjoena schreef op 22 september 2004 @ 11:55:
[...]

En welke tool moet je dan hebben? |:(
find

Exchange en Office 365 specialist. Mijn blog.


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Geen matches
ritsjoena schreef op 22 september 2004 @ 11:55:
[...]

En welke tool moet je dan hebben? |:(
Er zijn flink wat tools; maar ik vraag me inderdaad ook af waar Jazzy precies op doelt. Een betere link zou die naar Native Win32 ports of some GNU utilities zijn :) Dan kun je gebruik maken van find; alhoewel die bij mij geen -exec optie accepteerde (fork errors)

Ik laat dit topic hier nog even staan aangezien de TS niet perse wil programmeren en een externe tool ook een oplossing zou kunnen bieden :)

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • The Eagle
  • Registratie: Januari 2002
  • Laatst online: 14:44

The Eagle

I wear my sunglasses at night

Matched: bestanden
Met XCOPY kun je bestanden kopieren die nieuwe zijn als een bepaalde datum. Als je nou zo'n kopie uitvoert, vervolgens de rest wegknikkert en dan de gekopieerde bestanden weer terugzetn, ben je er ook. Dat kan volgens mij met een batch-bestand van nog geen 10 regels :)
Dat ding schedulen en klaar. Zit je alleen nog met de invoer van de peildatum, maar that's it :)

Al is het nieuws nog zo slecht, het wordt leuker als je het op zijn Brabants zegt :)


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Matched: bestanden
The_Eagle schreef op 22 september 2004 @ 12:02:
Met XCOPY kun je bestanden kopieren die nieuwe zijn als een bepaalde datum. Als je nou zo'n kopie uitvoert, vervolgens de rest wegknikkert en dan de gekopieerde bestanden weer terugzetn, ben je er ook. Dat kan volgens mij met een batch-bestand van nog geen 10 regels :)
Dat ding schedulen en klaar. Zit je alleen nog met de invoer van de peildatum, maar that's it :)
Tjah.. leuk bedacht.. alleen wat als je het over 50.000 mappen en 7.500.000 files in een productieomgeving hebt? Lijkt me niet zo'n strak plan :)

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • Jazzy
  • Registratie: Juni 2000
  • Laatst online: 08:02

Jazzy

Moderator SSC/PB/AI

Moooooh!

Geen matches
Spider.007 schreef op 22 september 2004 @ 12:01:
[...]

Er zijn flink wat tools; maar ik vraag me inderdaad ook af waar Jazzy precies op doelt.
code:
1
find . -mtime +30 -exec rm -f {} \;
Omdat nu voor iedere file rm aangeroepen word, kun je het beter zo doen:
code:
1
find . -type f -mtime +30 -print | xargs rm -f

Edit: of zit find niet in SFU?

[ Voor 20% gewijzigd door Jazzy op 22-09-2004 12:10 ]

Exchange en Office 365 specialist. Mijn blog.


  • sverzijl
  • Registratie: Januari 2001
  • Laatst online: 13:49
Geen matches
Verwijderd schreef op 22 september 2004 @ 10:17:
Ik weet nu dat ik met de subfolders property subfolders kan verzamelen echter subsubfolders is weer een ander verhaal. Dat moet ik zelf regelen en daar komt weer een uitdaging: Hoe weet ik op voorhand hoeveel nivo's ik diep moet? Is daar een standaard stukje code voor ofzo?
voorbeeldje : http://www.visualbasicscript.com/topic.asp?TOPIC_ID=1200

  • pinball
  • Registratie: Oktober 1999
  • Niet online

pinball

Electric Monk

Matched: bestanden, oude
ik had pas precies hetzelfde probleem, toen maar wat in perl gebouwd:

(op een lokale machine kan $dir natuurlijk makkelijker)

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/usr/bin/perl
# lees dir, vergelijk tijd van elk bestand met huidige tijd,
# oude bestanden worden verwijderd
# 20040805 mailme (at} dkit {punt) nl

use strict;
use Time::Local;

my $oud = 29;
my $dir = "\\\\server02\\c\$\\Program Files\\bla\\bla\\MMSArchive";

my $cur_time = time;

leesdir($dir);

sub leesdir {

    my($ldir) = @_;
    opendir(DIR, "$ldir") || die "can't opendir: $ldir \n";
    my @inhoud = grep { !/^\./ } readdir(DIR);
    closedir DIR;
    
    foreach my $element (sort @inhoud) {
    
        next unless ( $element =~ /\.msg/ );
        my $fullelement = "$ldir\\$element";
        my $file_time = (stat($fullelement))[9];
        unlink $fullelement if ((teoud($file_time)) && ( -f $fullelement));
    }
}

sub teoud {
    
    my($file_time) = @_;
    my $secdiff = $cur_time - $file_time;
    my $daydiff = int($secdiff / 24 / 60 / 60);
        
    if ($daydiff >= $oud) {
        return 1;
    } else {
        return 0;
    }
}


edit:

deze verwijdert trouwens alleen oude mailtjes, verwijder de regel:
next unless ( $element =~ /\.msg/ );
om ook andere bestanden weg te halen :+

[ Voor 16% gewijzigd door pinball op 22-09-2004 13:11 ]

Whenever you find that you are on the side of the majority, it is time to reform.

Pagina: 1