martes, 29 de enero de 2013

Borrar archivos viejos en Linux


Como borrar archivos viejos en Linux, usando bash script.

borrar_viejos-cam-motion.sh

#!/bin/bash
#30 dias
rm -f `find /home/pepito/motion/*jpg -mtime +30`


En kernels viejos no podremos borrar mas de 4000 archivos, obtendremos un error "lista de argumentos demasiado larga". En ese caso podemos usar este script PHP:

borrar_viejos-cam-motion.sh

#!/usr/bin/php
$path="/home/fabian/motion/";
$dias=20;
$dir = opendir($path);
while($f = readdir($dir)) {
    if((time()-filemtime($path.$f) > 3600*24*$dias) and !(is_dir($path.$f)))
    if ($f!='..') unlink($path.$f);
}
closedir($dir);
?>




Version modificada, chequea extensión
#!/usr/bin/php
 3600*24*$dias) and !(is_dir($path.$f)))
  <------>if ($f!='..') unlink($path.$f);
 } 
}
closedir($dir);
?>