Thread Dateien und Verzeichnisse überprüfen (9 answers)
Opened by Gast at 2008-04-11 13:21

Gast Gast
 2008-04-16 13:23
#108451 #108451
nachdem ich mich in perl eingearbeitet hatte und mit versch modulen umgehen konnte, habe ich das script wie gewollt hinbekommen.

allerdings soll das script nun noch weitere dinge können:
- ausgeben der daten in einer .csv-datei

codeschnipsel vom relevanten script-teil (gekürzt):

Code (perl): (dl )
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
find( \&search, $dir );
print "  $_\n" for @files;

if($createlog == 1){
        my $log = "$logname";
        open(INFO, ">$log");
        print INFO "  $_\n" for @files;
        close (INFO);
        if(-e $log){
                print "\nDateipfade gespeichert in $logname\n";
        }

sub search{
        my $file = $File::Find::name;
        my @a = stat($file);
        my $laTag = $a[8] / 60 / 60 / 24;
        my $now = time;
        my $nowTag = $now / 60 / 60 / 24;
        my $diff = $nowTag - $laTag;
        if (-f $file){
                $countall++;
                if( $diff > $age ){
                        push @files, $file;
                $count++;
                }       
        }
}


es werden also alle dateien, die dem kriterium "letzter zugriff liegt länger als $age tage zurück" ausgegeben und in einem logfile gespeichert.

wie aber oben bereits erwähnt soll das ganze nun (zusätzlich) in eine .csv-datei geschrieben werden (soll-zustand: VERZEICHNIS;DATEINAME;ERSTELLDATUM;LETZTE ÄNDERUNG;LETZTER ZUGRIFF in .csv-datei)

ich stehe nun jedoch vor dem problem, dass ich nicht weiß, wie ich die ausgabe so hingehend ändern und speichern kann, dass eine .csv-datei zustande kommt.
denn ich muss so viele dinge voneinander trennen, dass ich garnicht weiß was wo wie ;)
die derzeitige ausgabe ist zb. "D:/TEST/HALLO/foo.dat". nun müsste ich hier ja den verzeichnisnamen vom dateinamen trennen.
-> D:/TEST/HALLO/ soll als VERZEICHNIS angezeigt werden
-> foo.dat als DATEINAME

wie bewerkstellige ich das?

für das ermitteln von ERSTELLDATUM, LETZTE ÄNDERUNG sowie LETZTER ZUGRIFF habe ich schon eine idee (localtime), allerdings habe ich auch hier das problem, dass ich nicht weiß wie ich diese samt separatoren (;) in die csv-datei schreiben kann.

nochmal danke für jegliche tipps :)

View full thread Dateien und Verzeichnisse überprüfen