Buenas tardes. Quisiera saber si se puede crear una tarea cron en CPanel para que periódicamente se puedan eliminar archivos de un directorio determinado y así no ocupar espacio innecesario en hosting.
Si es posible, qué comando habría que ejecutar?
Gracias y saludos
URL del sitio: Contenido solo visible a usuarios registrados
Hola
Los trabajos de cron son tareas programadas que se ejecutan en horarios predefinidos o a intervalos en el servidor. Muchas veces, un trabajo de cron es una serie de tareas sencillas ejecutadas desde un archivo script.
Añadir un correo electrónico para recibir las notificaciones de la tareas cron que se jecutan:
La sección del Correo electrónico de cron (Correo electrónico para cron) te permite especificar una dirección de correo electrónico en donde desea recibir notificaciones cuando corren sus tareas de cron.
Para especificar una dirección de correo electrónico:
- Escribe la dirección de correo electrónico donde deseas recibir las notificaciones en el campo Correo electrónico.
- Pulsa el botón Actualizar e-mail (Actualizar correo electrónico).
Añadir una tarea de cron:
1. Configura el intervalo al cual deseas ejecutar la tarea de cron:
- Configuraciones comunes — Este menú te permite seleccionar intervalos usados comúnmente, sin especificar las configuraciones para el minuto, hora, día, mes, etc.
- Minuto — Usa este menú desplegable para seleccionar la cantidad de minutos entre trabajos de cron o el minuto de cada hora que deseas ejecutar la tarea de cron.
- Hora — Usa este menú desplegable para seleccionar la cantidad de horas entre tareas cron o la hora de cada día que deseas ejecutar la tarea de cron.
- Día — Usa este menú desplegable para seleccionar la cantidad de días entre tareas cron o el día del mes que deseas ejecutar la tarea de cron.
- Mes — Usa este menú desplegable para seleccionar la cantidad de meses entre tareas cron o el mes del año que deseas ejecutar la tarea de cron.
- Día de semana — Usa el menú desplegable para seleccionar el (los) día(s) de la semana cuando deseas ejecutar la tarea de cron.
2. En el campo Comando, escribe el comando que deseas que ejecute el sistema.
- Si no deseas recibir un correo electrónico que te notifique sobre una tarea de cron específica, añade la siguiente línea al comando: >/dev/null 2>&1 .
3. Pulsa Agregar nueva tarea de cron (Añadir una nueva tarea de cron).
Ver trabajos de cron existentes
La tabla Tareas de cron actuales muestra las tareas de cron instaladas en tu servidor.
- Desde aquí, puedes editar o borrar una tarea de cron previamente creado.
Si deseas crear una tarea cron nueva, los pasos a seguir para configurar Cron Jobs serían los siguientes:
1. Accede al menú Cron Jobs y haz clic en el icono correspondiente situado en la pantalla principal de la interfaz de cPanel.
2. Clic en “Avanzado” o “Advanced” para acceder al Administrador Cron.
3. Introduzce la dirección de email a la que quieres enviar el comando.
4. Introduzce el comando que quieres que ejecute Cron Jobs en el campo en blanco que aparece bajo la etiqueta “Command” o “Comando”.
5. Selecciona la frecuencia con la que quieres que se ejecute dicho comando. Sólo tendrás que introducir un asterisco en la caja que corresponda.
6. Haz clic en “Guardar” o “Save Crontab” para que se salven los cambios de configuración.
Verifica que todo es correcto y que se ejecuta la tarea.
Nota: Ten cuidado al programar los trabajos de cron. Si los ejecutas con mucha frecuencia puedes causar que el servidor trabaje con lentitud y recibas avisos por parte de soporte al respecto.
Saludos
Gracias.
Y qué comando escribo para que elimine los archivos de un directorio? (El resto de configuraciones las tengo claras, pero no sé qué escribir en la línea comando).
Gracias de nuevo
Hola Musicvall,
Desde tu cPanel, Avanzado, podrás crear una tarea cron (cronjob), por ejemplo para eliminar cada semana el archivo error_log de /public_html:
find . -type f -name “/home/tu_usuario/public_html/error_log” -exec rm -f {} ;
Tendrás que establecer el día y hora en que se ejecutará dicha tarea y si son varios archivos crear un cronjob por cada archivo.
Por ejemplo:
*/15 * * * 1-5 find . -type f -name “/home/tu_usuario/public_html/error_log” -exec rm -f {} ;
Sintaxis:
- minutos: va de 0 a 59 y representa el minuto en que se ejecuta
- horas: va de 0 a 23 y representa la hora en que se ejecuta
- dia-mes: va de 1 a 31 y es el día del mes en que se ejecuta
- mes: va de 1 a 12 y representa el mes que se ejecuta
- dia-semana: va de 0 a 7 y el el día de la semana en que se ejecuta (el domingo se puede indicar con el 0 o con el 7, el lunes es 1, martes 2, etc)
- comando: es el comando a ejecutar (un comando o la ruta a un shell script que queramos ejecutar. )
Con un asterisco * se indica todo es decir todos los minutos, o todos los meses, o todos los días.
También se admiten rangos en los campos:
un guión - significa: 0-15 -> un intervalo de valores: todos los valores de 0 hasta 15
una coma , indica: 15,30,45 -> unos valores determinados: solo esos tres valores: 15, 30 y 45
una barra / indica: 1-10/2 -> un incremento de valores: valores en incremento de 2 en 2 , empezando desde 1, es decir: 1,3,5,7,9
Saludos
Hola:
Lo que describes es eliminar archivos concretos, pero yo necesito "vaciar los archivos de un directorio concreto", por ejemplo, los archivos que se crean en la carpeta caché de prestashop....
Gracias de nuevo
Hola,
Si no quieres tener archivos de caché lo mejor es que desactives esta opción. Revisa el siguiente enlace para ver si te sirve:
http://alvinjiang.blogspot.com.es/2012/01/prestashop-tips-how-to-disable-your.html