Skip to content

Instantly share code, notes, and snippets.

@kentfredric
Last active February 6, 2016 19:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kentfredric/12cf408ce32215b2e3f4 to your computer and use it in GitHub Desktop.
Save kentfredric/12cf408ce32215b2e3f4 to your computer and use it in GitHub Desktop.
#!/usr/bin/perl
#this script search for frag on a fs
use strict;
use warnings;
#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");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment