Category: | NT Admin |
Author/Contact Info | OzzyOsbourne |
Description: | Find the owners of directories on large public shares to ease directory cleanup. The Win32::Perms module has had a memory leak for over a year, which may lead to issues on larger directories. |
# Finds the owners of files on the global, finds their size, and print +s them to globalowners.txt # 7/27/01 # Prints [owner][file][file size (KB)][acess time code][last file acce +ss][modify time code][last modified date] # To effectively sort times, sort by the timecodes. # Import the text file to spreadsheet for best results # 7.30.01 added autoflush line due to overnight buffer overrun. use strict; use Win32::Perms; use File::Find; my $dir1='//server/share'; open OUT, ">dirowners.txt"; print OUT "Owner\tSize(KB)\tAccessTimeCode\tLast Accessed\tModifyTimeC +ode\tLast Modified\tFile\n"; find (\&wanted, $dir1); close OUT; sub wanted { if (-d){ my $File = new Win32::Perms("$File::Find::name")||die "$!"; + my $Own=$File->Owner(); my @stat=stat($File::Find::name); my $kbytes = $stat[7]/1024; my $access = localtime($stat[8]); my $modify = localtime($stat[9]); print OUT "$Own\t$kbytes\t$stat[8]\t$access\t$stat[9]\t$modify +\t$File::Find::name\n"; print "$Own\t$kbytes\t$stat[8]\t$access\t$stat[9]\t$modify\t$F +ile::Find::name\n"; $File->Close(); } } |
Back to
Code Catacombs