diff options
author | Florian Pritz <f-p@gmx.at> | 2008-10-23 19:52:30 +0200 |
---|---|---|
committer | Florian Pritz <f-p@gmx.at> | 2008-10-23 19:52:30 +0200 |
commit | c597b01166c4ac4d042c2256826b69c6fb0bc405 (patch) | |
tree | 72f0971a761070273b625650c7cb40149db02ef7 /frag.pl | |
download | bin-c597b01166c4ac4d042c2256826b69c6fb0bc405.tar.gz bin-c597b01166c4ac4d042c2256826b69c6fb0bc405.tar.xz |
first init
Diffstat (limited to 'frag.pl')
-rwxr-xr-x | frag.pl | 35 |
1 files changed, 35 insertions, 0 deletions
@@ -0,0 +1,35 @@ +#!/usr/bin/perl -w + +#this script search for frag on a fs +use strict; + +#number of files +my $files = 0; +#number of fragment +my $fragments = 0; +#number of fragmented files +my $fragfiles = 0; + +#search fs for all file +open (FILES, "find " . $ARGV[0] . " -xdev -type f -print0 |"); + +$/ = "\0"; + +while (defined (my $file = <FILES>)) { + open (FRAG, "-|", "filefrag", $file); + my $res = <FRAG>; + if ($res =~ m/.*:\s+(\d+) extents? found/) { + my $fragment = $1; + $fragments += $fragment; + if ($fragment > 1) { + $fragfiles++; + } + $files++; + } else { + print ("$res : not understand for $file.\n"); + } + close (FRAG); +} +close (FILES); + +print ( $fragfiles / $files * 100 . "% non contiguous files, " . $fragments / $files . " average fragments.\n");
\ No newline at end of file |