-----------------------------------------------------------
---- Configuracion de Crontab
---- Automatizacion de Procesos
-----------------------------------------------------------

**********************************************
**** Autor: Emmanuel Arreguez
**** Soporte Tecnico - IRCDShells
**** http://www.ircdshells.com.ar
**** info[arroba]ircdshells.com.ar
**********************************************
Volver al Indice


Con crontab vamos a poder programar tareas que necesitamos que el servidor realice cada cierto tiempo.
Lo que hace principalmente crontab es programar crones, las cuales son tareas que nosotros le asignaremos
que ejecute cada un tiempo que determinaremos y esto lo hara basandose en el reloj del servidor.
Si se encuentra una tarea a ejecutar en el minuto,hora,dia programada lo hara automaticamente sin necesidad
de que una persona lo deba hacer manualmente.
El beneficio que logramos con esta potente herramienta, es que por ejemplo los clientes que tienen servidores
de ircd instalados en su shell necesitan estar el mayor tiempo online posible, y sea cual fuere el motivo de la
caida de un proceso o un reinicio general en el servidor por mantenimiento hace que el cliente deba entrar a la shell
a subir los procesos manualmente, encambio usando crontab lo hara automatico.

Los 3 comandos basicos y los unicos que vamos a usar para manejar crontab son:

Con este vamos a listar los crones (tareas) que tenemos programadas:

# crontab -l



Para editar la lista de crones:

# crontab -e



Y por ultimo para eliminar toda las tareas que tengamos:

# crontab -r



La sintaxis de los crontab en la seccion de tiempo es la siguiente:

Minutos: (0-59)
Horas: (0-23)
Días: (1-31)
Mes: (1-12)
Dia de la semana: (0-6), siendo 1=Lunes, 2=Martes,... 6=sabado y 0=Domingo

Sabiendo la sintaxis que debe ir, ahora veremos el formato de la linea de crontab:

[minutos] [hora] [día] [mes] [dia_de_semana] [comando]

****************************************************************************************************

Ejemplos de Configuraciones crontab:

Crontab para Unreal3.2.7

# crontab -e

Se abre el editor de texto y agregamos la siguiente linea:

*/1 * * * * /home/USUARIO/Unreal3.2.7/ircdcron/ircdchk >/dev/null 2>&1

Cuando ponemos (*) quiere decir todo, entonces va a monitorear el ircd si funciona cada 1 minuto,
todas las horas, todos los dias, todos los meses, todos los dias de la semana.

NOTA: Cuando crontab ejecuta una tarea automaticamente envia un email al usuario shell informando sobre
dicha ejecucion, y si configuramos un crontab que se ejecute cada 1 minuto en poco tiempo se llenara nuestro
correo.
La solucion es agregar un simple: >/dev/null 2>&1 al final de la linea de crontab, ya que asi no nos
enviara el email.



Guardamos los cambios y salimos del editor.

NOTA: Esta de mas decir que USUARIO deben cambiarlo por el usuario shell suyo o si el ircd
se encuentra en una ruta distinta modificar la ruta tambien.

Si desea puede listar los crontab que haya en su shell para ver si se agrego correctamente su cron.

# crontab -l



Con esto ya estaria el crontab funcionando y si el unreal no esta funcionando lo ejecuta automaticamente.
Podemos probar en nuestro servidor de matar el proceso de unreal y fijarse si levanta solito.


****************************************************************************************************

Crontab para psyBNC

Para psybnc no solo basta con agregar la linea del crontab, sino que hay que modificar el PATH del archivo
de ejecucion determinado del psybnc.

Veamos como se hace esto:

Vamos a ingresar al directorio donde hayamos instalado nuestro psybnc, en este caso es /home/argentina/psybnc

# cd /home/USUARIO/psybnc

O cual fuere que sea el directorio que haya instalado. (Cambie USUARIO por el suyo)



Ahora lo que vamos a hacer es modificar el directorio donde se encuentra el psybnc editando
el archivo psybncchk

# nano psybncchk

Se nos abre el editor



Y la unica linea que vamos a modificar es la siguiente:

PSYBNCPATH=/home/foobar/psybnc

Por la ruta donde se encuentre el psybnc, en este caso de ejemplo la modificaremos por:

PSYBNCPATH=/home/argentina/psybnc

Lo cual nos queda asi:



Guardamos y salimos.

Ahora si nos vemos en condiciones de agregar la linea al crontab:

# crontab -e

Y agregamos la siguiente linea:

*/2 * * * * /home/USUARIO/psybnc/psybncchk >/dev/null 2>&1

Igual que el crontab del unreal solo que aqui le indico que monitoree el proceso cada 2 minutos



Guardamos y salimos.

Si queremos verificamos si se agrego bien la linea con:

# crontab -l



Aqui ya tengo el crontab del Unreal que configure anteriormente y el nuevo que agregue de psybnc.


****************************************************************************************************


Algunos ejemplos para entender mejor el sistema de tiempo a configurar:

*** Recordemos el formato:
[minutos] [hora] [día] [mes] [dia_de_semana] [comando]

Para levantar un proceso a las 7:30 de la mañana del 15 de febrero:
30 7 15 2 * /home/bahamut/ircd/ircd -p 6663 >/dev/null 2>&1

Para hacer un .tar.gz de un directorio (como backup, por ejemplo), todos los días laborables a las 14:00:
0 14 * * 1-5 tar -czf /home/backups/backup.tar.gz /usr/importante/ >/dev/null 2>&1



Volver al Indice

**********************************************
**** Autor: Emmanuel Arreguez
**** Soporte Tecnico - IRCDShells
**** http://www.ircdshells.com.ar
**** info[arroba]ircdshells.com.ar
**********************************************