Conocer el estado de fragmentación de un disco

Conocer el estado de fragmentación de un disco.

Después del articulo «Cómo desfragmentar un disco en linux«, he llegado a la conclusión de que existe una gran controversia sobre como conocer el estado de fragmentación de un disco.

Al igual que en el articulo anterior, vamos a crear un script perl que al ejecutarlo nos imprimirá en pantalla la fragmentación de nuestro disco.

 

Conocer el estado de fragmentación de un disco

Creamos el script perl.

sudo nano frag.pl

Copia y pega el script.
#!/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");

Guarda el archivo y cierra el editor nano.

El script necesita que le concedamos permisos.

chmod u+x frag.pl

Como por defecto siempre trabajamos sobre /HOME, solo necesitamos conocer ese resultado.
sudo ./frag.pl /home

El resultado puede demorar un poco, todo depende del tamaño del disco y del sistema. Al concluir, veras algo similar a…
Fragmentacion de un disco en linux

Fragmentación de un disco en linux

 

Nota final: Si descargas y borras archivos de gran tamaño muy a menudo, es interesante que ejecutes tanto este script, como el que desfragmenta tu hdd.

Tip: La forma natural de desfragmentar un disco en linux es hacer una copia de tu /home en un dispositivo externo, ahora borras todo el contenido de /home y restauras la copia de seguridad. Linux colocará cada archivo en su sitio, pero el problema de este método es el tiempo (tarda mucho), por eso recomiendo el uso de los scripts perl.

 

Canales de Telegram: Canal SoloLinux – Canal SoloWordpress

Espero que este articulo te sea de utilidad, puedes ayudarnos a mantener el servidor con una donación (paypal), o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales.

 

6 Comentarios

  1. soymicmic
    20/01/2020
    • Sergio G.B.
      20/01/2020
  2. Henry
    20/01/2020
  3. doc
    20/01/2020
    • Sergio G.B.
      20/01/2020
  4. Gonçal Sallan
    20/01/2020

Agregar comentario