1 votos

Ejecución de los trabajos Cron w/ permisos de Sudo

Estrictamente para propósitos de aprendizaje (posiblemente de mantenimiento así) estoy tratando de tener un trabajo Cron para vaciar mi papelera una vez al día.

He abierto el terminal y entró en el comando crontab -e para acceder al editor VI para agregar el comando. He entrado en el modo de Inserción y añadió * * * * * sudo rm -rf ~/.Trash/*, pulsa la tecla esc para salir y salir de VI :wq!

Este script en particular tengo que ejecuta cada minuto para ver si funciona y no lo es. Pensé que podría ser un problema con el cron no tener acceso root, por lo que añadió la misma línea, a la sudo crontab -e archivo y no parece ser el ahorro.

Alguna idea de lo que podría estar mal con este trabajo cron?

3voto

Douglas Puntos 10417

Si desea especificar la root crontab del usuario, usted tiene que utilizar el -u opción.

sudo crontab -e -u root

Dicho esto, no hay una manera más segura para limpiar la basura que sólo la eliminación de todo el directorio. Personalmente, me gustaría eliminar archivos que son mayores que un cierto número de días. De esta manera, si puedo borrar sin querer algo hoy, tengo un "colchón" de tiempo para recuperarse.

El siguiente comando para eliminar todos los archivos que son mayores de 15 días.

find ~/.Trash/ -type f -mtime +15 -exec rm {} \;

Ahora...que dijo...

cron ha sido desaprobado por launchd. Me gustaría tomar algún tiempo y aprender a crear .plist ficheros XML para lauchd y el uso de ese servicio en lugar de cron

1voto

Marc Wilson Puntos 146

Usted piensa que necesita usar sudo. No. No estás tratando de vaciar la root de la carpeta de la Papelera. Usted tiene permiso para eliminar los archivos en su propia ~/.Trash carpeta, por lo que no necesitas ser root (que es lo que sudo no) rm.

Usted puede simplemente utilizar:

* * * * * rm -rf ~/.Trash/*

Nota, también me aconsejan contra usar ~ en un peligroso comando como este (en cualquier momento que usted está llamando rm -rf es potencialmente peligroso). Poner la ruta de acceso completa a la .Trash carpeta por lo que es muy explícito lo que va a pasar cuando la línea se ejecuta. Algo como /Users/yourusername/.Trash/. Así:

* * * * * rm -rf /Users/yourusername/.Trash/*

Donde se sustituye yourusername con tu nombre de usuario en el host.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X