O cómo hacer tu vida (de Administrador de Sistemas) un poquito más fácil. y de regalo, la primera lección de inglés para el próximo año.
Los que ya habéis trabajado alguna vez en esto, sabéis que posiblemente tendréis que hacer un montón de tareas repetitivas, completamente iguales todos los días, alguna varias veces y estaréis conmigo en que aparte de ser insufrible perdéis un montón de tiempo que podríais dedicas a cosas mucho más productivas tales cómo ver alguna peli, actualizar vuestro caralibro o cualquiera de esas cosas importantes que todos hacemos en nuestro puesto de trabajo, que total, para lo que nos pagan…………
Uno de los problemás con los que nos solemos encontrar es que normalmente nos incorporamos a grupos de trabajo ya constituidos, super procedimentados y donde tenemos poco margen de maniobra, pero si tenemos la suerte de poder adaptar el trabajo a nosotros y no al revés, siempre podemos «tirar» de herramientas de planificación de tareas para que sean ellas quienes trabajen y no nosotros; esto nos llevará un poco de curro en los primeros momentos pero hará que nuestra vida sea mucho más placentera e incluso parecida a la de un ser humano normal.
Ya que en este momento del curso, estamos «fuchiqueando» con Linux voy a comentaros un poco como funciona uno de estos gestores, personalmente es el único que conozco un poco y por loque se comenta, de los más fiables y robustos; estamos hablando de cron.
Cómo todos sabéis ya, estimados compañeros, en Linux y todos los SO basados en UNIX, todo son archivos y el archivo principal de cron es el /etc/contrab que tiene un aspecto similar a esto:
En la primera sección del archivo encontramos la configuración que define el entorno de ejecución de las tareas que programemos.
SHELL: Indica bajo que SHELL queremos trabajar
PATH: Indica la ruta bajo la que queremos que se ejecuten
MAILTO: Indica el correo al que queremos que se envié el resultado de las tares. Si se deja vacio, no se enviará ningún correo
HOME: Indica la ruta bajo la que queremos que se ejecuten las tareas
Cada línea del archivo crontab tiene un formato que debemos respetar:
minuto hora día_mes día_de_la_semana comando
El mes acepta valores del 1 al 12 y el formato corto del mes en inglés y el día de la semana valores del 1 al 7 y el formato corto del día en inglés. Tener en cuenta, que el 1 corresponde al domingo, yo para no liarme, pongo siempre le formato corto del día en inglés y nos evitamos problemas.
Podemos usar también para todos los parámetros caracteres comodín (*) para todos los valores del rango, (-) para un rango, (,) para separar varios valores, (/) para saltos, por ejemplo (*/2) significa que se hace siempre cada dos ciclos y por supuesto (#) que indica que esa línea es un comentario.
En la segunda parte del contrab podéis observar el uso del comando run-parts que llama a ejecución a los comandos definidos en los ficheros cron.hourly, cron.daily, cron.monthly. En estos scripts se almacenan llamadas a tareas que se ejecutan cada hora, dia….. Aquí solo podemos almacenar scripts. Si alguna de las tareas se tiene que realizar fuera de estos ciclos de ejecución se almacenara en el directorio /etc/cron/d/ con el formato que os he comentado arriba.
Cómo podéis imaginar, teniendo los permisos necesarios podemos programar practicamente las tareas que nos dé la gana simplemente ejecutando el comando contrab -e con el que generaremos un archivo que se guarda en /var/spool/cron/nombre_usuario además no es necesario reiniciar el sistema puesto que el demonio de cron se encarga de comprobar periodicamente si se ha producido alguna actualización para cargarla correctamente, más fácil imposible, oiga!!.
Algunos ejemplos, para que os hagáis una idea de cómo va la cosa.
1 – Vamos a revisar quien esta conectado todos los días a las 22:00 a nuestro servidor. Obviamente si hemos configurado el MAILTO nos llegará un correo con la info
2 – Vamos a recordarnos vía mail, que todos los viernes a las 22:00 nos toca realizar una revisión física de nuestro servidor.
3 – Por último vamos a pedir al sistemas que nos envíe un mail cada dos horas con las conexiones abiertas los días 1, 15 y 30 de cada mes
A partir de aquí, todo es echarle imaginación, y cacharrear, programaros la ejecución de vuestros backups, creación de usuarios, vaciado de logs… hasta el infinito y más allá!!!!