[Manual Linux] Scritps RC [Shell Script y Servicos RC] [INIT.D]

Este manual que les dejo es sobre los scripts RC en linux con una detallada explicación de que son, para que sirven y sus comandos básicos…. ( start y stop ) no son la gran cosa los comandos pero si han usado linux y an tenido que instalar algo en la consola y luego reiniciar un servicio.. como por ejemplo, gnome /etc/rc/init.d/gdm stop… con eso han visto o escuchado hablar de los RC que en realidad son servicios del sistema.

Y si no han oido hablar o no saben que son…luego de leer esta guia (explicación, manual etc ) ya sabrán un poco mas sobre este tema de servicios del sistema en linux y un poco mas sobre scripts shells 😉

Servicios del Sistema Operativo (Linux)

Linux, como todos los Unix, es un sistema multi tarea, esto le permite mantener corriendo varios procesos simultáneamente. Los servicios del sistema operativo son generalmente demonios o procesos que están corriendo “en background” (sin interactuar directamente con un usuario o terminal). Estos demonios brindan diferentes servicios. Todos estos servicios se pueden activar y desactivar sin tener que apagar o reiniciar el equipo. Esto es una característica esencial en equipos que debe estar encendidos las 24 horas del día, los 365 días del año.

Linux nos da diferentes formas de activar y desactivar estos servicios. La forma que esta en todos los Linux (y también en la mayoría de los UNIX) es via shell scripts de rc.

Scripts de “rc”

Los scripts de “rc”, son shell scripts que permiten al administrador activar y desactivar servicios que brinda el sistema operativo. Cada uno de estos scripts representa un servicio específico.
Jerarquía de directorios (“rc”)

En RedHat Linux encontraremos la siguiente jerarquía de directorios. Esta jerarquía es muy
parecida a todas las distribuciones de Linux, pero existen algunas diferencias.

/etc/rc.d/
/init.d
/rc0.d
/rc1.d
/rc2.d
/rc3.d
/rc4.d
/rc5.d
/rc6.d

Como se puede observar la mayoría de los directorios contienen un número, este número representa el “run-level” o nivel de corrida. Como se ha visto en el módulo I de este curso, cada run-level define los servicios que se levantarán en esa sesión.

Los scripts que hay dentro de cada uno de estos directorios definen estos servicios.
El directorio /etc/rc.d/init.d es el que contiene todos los scripts
de “rc”. En este directorio generalmente se encontrarán nombres de archivos que hagan referencia al servicio que activan/desactivan. Por ejemplo “network” (script para activar el servicio de red).Por otro lado, en cada directorio “rc.d” se encontrarán nombres de archivos con una connotación especial. En la mayoría de los casos los servicios dependen de que este corriendo alguno otro, para que trabajen normalmente. Por ejemplo el servicio de “web-server” no puede funcionar si el servicio de red no esta corriendo. Para resolver esta problemática, se estipulo una forma de lograr que los scripts se ejecuten en un orden específico. Esto se logra con los nombres de los archivos. Por ejemplo, el script S01network se ejecutará antes que el S34httpd (alfabéticamente, el nombre de archivo S01network es anterior al S34httpd).

Uso

Todos los scripts de “rc” reciben como parámetro un argumento “start” o “stop” dependiendo si se desea activar o desactivar el servicio.

Ejemplo:
/etc/rc.d/init.d/httpd start (activa el servicio de httpd)
/etc/rc.d/init.d/httpd stop (desactiva el servicio de httpd)

Existen algunos scripts que se les puede pasar como argumento (además de “start” y “stop”),
“restart”, que reinicia el servicio. Esto es especialmente util cuando hacemos un simple cambio en un archivo de configuración y solamente queremos hacerlos efectivos. (y de paso, ahorrarnos un comando).

Administración de crontbs

El servicio de crontab permite definir tareas para que sean ejecutadas en un momento especifico en el tiempo (por ejemplo a las 14:00 hrs., todos los Martes).
Este servicio es muy útil para realizar tareas de mantenimiento como copias de respaldo (backups), verificación del equipo o estadísticas de uso.
Cada usuario puede definir sus propias tareas, y dichas tareas se ejecutaran con los privilegios del usuario que las definió.

Comando crontab

Las tareas que se activarán en el crontab se realizan a través de un comando llamado “crontab”.
Comando: crontab

Uso: crontab [opciones] [usuario]

Descripción:

Permite ver o editar las tareas del crontab

Opciones:
“-l”: lista el contenido de la tabla de tareas
“-e”: edita el contenido de la tabla de tareas
“-u”: Requiere la especificación de un usuario y permite modificar las tareas del usuario referencia (siempre y en cuanto se tengan permisos)

Cuando se ejecute “crontab -e” podremos modificar la tabla de tareas, para editarla se invocará alcomando que existe en la variable $EDITOR o al editor “vi”.

Formato de la tabla de tareas (crontab)

Minutos (0-59) Hora (0-23) Día del Mes (1-31) Mes (1-12) Día de la semana (0-7) Comando

Se pueden utilizar asteriscos (*) para especificar “todos” (ejemplo: todos los días de la semana), guiones para especificar rangos (ejemplo: de Domingo a Miércoles, 0-3) o comas para momentos exactos (ejemplo: a los 0, 10 y 30 minutos, “0,10,30”)

Ejemplos:
0 * * * * /usr/local/bin/updatedb.sh (cuando el reloj maque minutos en 0, ejecutar el shell script /usr/local/bin/updatedb.sh, todas las horas, todos los días del mes, todos los meses y todos los días
de la semana)

0 0 * * 1 /usr/local/bin/mail-stat.sh (a las doce de la noche, todos los Lunes se ejecuta el programaque saca estadísticas de correos enviados)

Directorios de crontab

Hasta aquí lo dejo si quieren puden seguir leyendo en el pdf, y en cuando a crond escribire un tuto mas detallado sobre este comando cuando tenga un rato.

El PDF subido a 4shared
Comprimido con RAR

Clic aquí para descargar PDF – Shell Scripts RC Servicios del Sistema

Nos vemos espero les sirva 🙂