cd /home
for dir in .trash .Trash .spam
do
if [ $dir = ".spam" ]; then
days=2
else
days=14
fi
for dir2 in $(locate $dir | egrep '^/home/[0-9a-zA-Z]*/mail/')
do
if [ -d $dir2/new/ ]; then
find $dir2/new/ -name '[0-9]*.*' -type f -mtime +$days -exec rm -fv '{}' \;
fi
if [ -d $dir2/cur/ ]; then
find $dir2/cur/ -name '[0-9]*.*' -type f -mtime +$days -exec rm -fv '{}' \;
fi
done
done
latinwit1 he probado tu script y ahora me devuelve este msg el crow por mail:ov3r, buena observación, es correcto lo que indicas, sucede que lo copié y pegué de un archivos que tiene más tareas.
saludos,
para cambiar el locate por el find en el script solo hay que cambiar donde pone locate por el comando find no?ov3r, eso te sucede pues no se está actualizando slocate.db, normalmente se actualiza todos los días vía un cron (/etc/cron.daily/slocate.cron). Esto permite usar el comando "locate" en ves del "find" para asegurarse la velocidad.
Como soluciones:
1) busca de actualizar la slocate.db vía el comando updatedb una ves al día (que es lo normal)
2) actualiza a mano ejecutando /usr/sbin/updatedb (o donde se encuentre en tu sistema)
3) habría que modificar el script para que use siempre find en ves de locate.
saludos,