The Community Forums

Interact with an entire community of cPanel & WHM users!
  1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Vaciar el spam box automáticamente

Discussion in 'Discusión en Español' started by mgrizal, Nov 27, 2006.

  1. mgrizal

    mgrizal Well-Known Member

    Joined:
    Jun 15, 2004
    Messages:
    55
    Likes Received:
    0
    Trophy Points:
    6
    Hola,

    Conocen por ahí un metodo para vaciar la carpeta del spam automáticamente a todas las cuentas que tienen el servicio activado? digamos que cada mes o 15 días.

    Gracias !
     
  2. sv70

    sv70 Active Member

    Joined:
    Dec 24, 2006
    Messages:
    28
    Likes Received:
    0
    Trophy Points:
    1
    pues supongo que para la cuenta que quieras:

    rm -f /mail/yourdomainname/username/spam

    no lo he probado

    salu2
     
  3. kran

    kran Well-Known Member

    Joined:
    Jul 5, 2003
    Messages:
    74
    Likes Received:
    0
    Trophy Points:
    6
    Location:
    Colombia
    cPanel Access Level:
    Root Administrator
    Podria ser algo asi...

    Yo uso esta linea para remover los archivos en los directorios /cur que se llenan con correos viejos, podrias modificar este para las carpetas de Spam:

    1) buscar los /home/user/mail/cur mas llenos
    find /home/*/mail/cur -maxdepth 1 -type d -print | xargs du -sk | sort -rn

    1a) con mas de 250 dias
    find /home/*/mail/cur -maxdepth 1 -type f -ctime +250 -print | xargs du -sk | sort -rn

    1b) remover los cur con mas de 250 dias
    find /home/*/mail/cur -maxdepth 1 -type f -ctime +250 | xargs /bin/rm -v
     
  4. latinwit1

    latinwit1 Member

    Joined:
    Apr 23, 2006
    Messages:
    7
    Likes Received:
    0
    Trophy Points:
    1
    Hola!

    Hace un tiempo hice este script y lo coloqué en /etc/cron.daily/remove-old-mail para que corra una ves al día. Borra los mensajes de la carpeta spam de más de dos días y los de los trash de más de 14 días.

    Code:
    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
    
    Un abrazo,
     
  5. ov3r

    ov3r Member

    Joined:
    Aug 18, 2006
    Messages:
    22
    Likes Received:
    0
    Trophy Points:
    1
    a este script no le falta primero

    #!/bin/sh

    y darle +x ??

    un saluldo
     
  6. latinwit1

    latinwit1 Member

    Joined:
    Apr 23, 2006
    Messages:
    7
    Likes Received:
    0
    Trophy Points:
    1
    ov3r, buena observación, es correcto lo que indicas, sucede que lo copié y pegué de un archivos que tiene más tareas.

    saludos,
     
  7. ov3r

    ov3r Member

    Joined:
    Aug 18, 2006
    Messages:
    22
    Likes Received:
    0
    Trophy Points:
    1
    latinwit1 he probado tu script y ahora me devuelve este msg el crow por mail:

    /etc/cron.daily/remove-old-mail:


    /home/(censurado)/mail/.Trash/cur/1167942985.M846485P17461V0000000000000341I0093020D_6.(censurado),S=670:2,'
    removed
    otro user =

    Y luego:
    warning: locate: warning: database /var/lib/slocate/slocate.db' is more than 8 days old
    warning: locate: warning: database /var/lib/slocate/slocate.db' is more than 8 days old
    warning: locate: warning: database /var/lib/slocate/slocate.db' is more than 8 days old
     
  8. latinwit1

    latinwit1 Member

    Joined:
    Apr 23, 2006
    Messages:
    7
    Likes Received:
    0
    Trophy Points:
    1
    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,
     
  9. ov3r

    ov3r Member

    Joined:
    Aug 18, 2006
    Messages:
    22
    Likes Received:
    0
    Trophy Points:
    1
    para cambiar el locate por el find en el script solo hay que cambiar donde pone locate por el comando find no?

    un saludo
     
  10. latinwit1

    latinwit1 Member

    Joined:
    Apr 23, 2006
    Messages:
    7
    Likes Received:
    0
    Trophy Points:
    1
    ov3r, deberías cambiar toda la expresión:

    Code:
    $(locate $dir | egrep '^/home/[0-9a-zA-Z]*/mail/')
    
    por algo así:

    Code:
    $(find /home/*/mail/ -type d | grep "$dir$")
    
    Pero has varias pruebas primero, YMMV

    saludos,
     
  11. Alejandro P

    Alejandro P Well-Known Member

    Joined:
    Apr 6, 2007
    Messages:
    53
    Likes Received:
    0
    Trophy Points:
    6
    cPanel Access Level:
    Root Administrator
    Lo probe con los cambios sugeridos y funciona correctamente.

    Gracias.
     
  12. latinwit

    latinwit Member

    Joined:
    Nov 16, 2004
    Messages:
    11
    Likes Received:
    0
    Trophy Points:
    1
Loading...

Share This Page