Eliminar viejos archivos de la papelera de un Samba

  • 28 Nov 2010
  • Shell script

Cuando en Samba se configura el módulo recycle los archivos y/o directorios se mueven a una carpeta determinada cuando un cliente pretendió eliminarlos. En algunos casos, esta carpeta se configura de forma tal que el usuario no tenga acceso a ella (para prevenir desastres o actos de venganza). En este escenario, es necesario (aún más que conveniente) crear una rutina que elimine los archivos eliminados una vez pasado cierto tiempo.

La estructura de directorios que se tiene es similar a esta:

- home

- bancos

- .recycle

- compartida

- .recycle

...

Lo que se necesita es buscar dentro de cada carpeta .recycle si hay archivos cuyo tiempo de "Change" (comando stat) sea mayor al que se quiera tener de histórico.

También es necesario saber que una semana tiene 10080 minutos

#!/bin/bash
for file in $( find home/ -name .recycle -type d | sort );
do
  find "${file}" -type f -cmin +10080 -exec rm -fR {}  \;
done