spacer

Sysresccd-manual-es Ejecutar tus propios scripts con autorun

History


Visión general de Autorun

La función autorun permite ejecutar scripts de forma automática al iniciar el sistema.  Cada script de autorun gestiona una tarea. Por ejemplo, puedes crear un script de copia de seguridad que haga una copia de seguridad de una base de datos, otro script para limpiar el sistema, ...

Por defecto, los scripts de autorun se pueden copiar en la raíz del CD-ROM, fuera del bucle de la imagen de archivo comprimido (sysrcd.dat), pero hay también otros lugares: disquetes, particiones HD, red compartida, un servidor web .

Si el script está solo se puede nombrar como autorun. Si encadenas muchos scripts, puedes nombrarlos autorun0, autorun1, ... . En este caso, se pueden ejecutar scripts específicos de autorun con un autoruns= opción de arranque, dada en el momento del arranque. Por ejemplo, escribe rescuecd autoruns=2,3,4.

Para usar el diskete o la red como fuente de archivos autorun, tienes que especificar la fuente usando la opción ar_source en el arranque. Si deseas utilizar el disquete o  la red automática de los ficheros fuente, tendrás que especificar la fuente ar_source usando la opción en el arranque. Más sobre esto en la siguiente sección.
Autorun se ha reescrito en el SystemRescueCd-1.0.0 para que sea compatible con las  nuevas fuentes de autorun. Tienes más detalles sobre estos cambios en la página sobre autorun en la sección de noticias.

Puedes utilizar autorun para realizar tareas completamente automáticas utilizando SystemRescueCd. Hay un capítulo dedicado a esto que explica como utilizar autorun para gestionar un servidor que se encuentra en un centro de datos remoto. Opciones proporcionadas por autorun

Tienes que utilizar estas opciones en el momento del arranque, en la línea de comandos.
   * ar_source=xxx :  lugar donde se almacenan los autorun. Puede ser el directorio raíz de una partición (/dev/sda1), una carpeta compartida de nfs (nfs:/ /192.168.1.1/path/to/scripts), una carpeta compartida de samba (smb:/ /192.168.1.1/path/to/Scripts), o un directorio http (http://192.168.1.1/path/to/scripts).
   * autoruns=[0-9] :  lista separada por comas del script de autorun que tiene que ser ejecutado. Por ejemplo, si usas autoruns=0,2,7 entonces se ejecutarán los siguientes scripts autorun: autorun0, autorun2, autorun7. Utiliza autoruns=no para deshabilitar todos los scripts de autorun con un número.
   * ar_nowait :  no esperar a pulsar una tecla después de que el script de autorun haya sido ejecutado. 
Las siguientes opciones de arranque de autorun se han añadido al SystemRescueCd-1.0.0:
   * ar_ignorefail :  continúa ejecutando la cadena de scripts aunque falle uno de ellos (devuelve un estado de no-cero)
   * ar_nodel :  No elimines la copia temporal de los scripts de autorun colocados en /var/autorun/tmp después de la ejecución
   * ar_disable :  Deshabilita completamente autorun y el script  no se ejecutará 
Resumen de las normas de ejecución de scripts

At startup, a list of locations are checked against the presence of autorun files. Durante el arranque, una lista de lugares se compararán con la presencia de archivos autorun. Son, sucesivamente:

   *  si el parámetro ar_source= parameter se utilizó en el arranque, los scripts se cargarán a partir del lugar indicado en el parámetro de esta opción. Los dispositivos se montan a /mnt/autorun, permitiendo escribir datos en ellos si el dispositivo no está protegido contra escritura.
         o  Disketes: rescuecd ar_source=/dev/fd0
         o  Disco duro: rescuecd ar_source=/dev/hda2 (autorun scripts de autorun en la segunda partición del primer disco duro IDE)
         o NFS cuotas: rescuecd ar_source=nfs-server:/nfs/exported/directory
         o Samba cuotas: rescuecd ar_source=//samba-server/share (recomendado sin usuario/contraseña). 
         o Http servidor: rescuecd ar_source= http://web-server/adminscripts/ (requiere SystemRescueCd-1.0.0 or posterior) 
   *  El directorio raíz del CD-ROM
   *  El directorio de inicio del superusuario (/root)
   *  El directorio /usr/share/sys.autorun  
Si se encuentran  archivos autorun en algún lugar, se ejecutan y el proceso termina.  Las dos últimas localizaciones requieren la reconstrucción de SystemRescueCd y son para uso avanzados o pruebas.
En cada lugar de origen, existen dos posibles modos de funcionamiento:
   * Modo simple: si se encuentra un script de shell llamado autorun, se ejecuta
   * Modo flexible: si  se encuentran # scripts de autorun (# es un dígito del 0 al 9), o bien
         o autoruns= boot parameter NO se especificó parámetro de arranque, o
         o autoruns= boot parameter  el valor del parámetro de arranque contiene # 
 Ejemplo: rescuecd autoruns=0,1,4 En este ejemplo, sólo los scripts autorun0, autorun1 o autorun4 scripts pueden ser ejecutados si están presentes. . Otros scripts, como autorun2, autorun3 y autorun5, serán ignorados. Los scripts autorizados se ejecutan en orden alfabético. Siempre que un script devuelva un código de no-cero, el proceso se detiene y no se ejecutan los siguientes scripts. Puedes evitar cualquier ejecución "autorun #" con un autorun= parámetro de arranque sin ningún dígito, por ejemplo: autoruns=no.  Esto no tiene efecto en el script autorun.

Aunque es posible poner scripts de tanto autorun como autorun #, se debe evitar.

El script tiene que ser cualquier script de shell válido. Scripts de  Perl, Python, ... etc., no son compatibles en este momento. Los terminadores de línea de las órdenes de Windows se traducen para permitir ejecutar scripts de shell escritos con un editor de MS.

Ejemplos de scripts de ejecución automática

#!/bin/bash (   ifconfig eth0 | head -n 3   fdisk -l /dev/hda ) | tee -a /mnt/autorun/report sync exit 0 

Este script recogerá información acerca de la interfaz de red eth0 y de las particiones de disco en un archivo llamado informe en la primera unidad de diskette. La secuencia de la BIOS debe especificar en primer lugar el CD, ar_source= el parámetro de arranque tiene que estar correctamente, configurado y el disquete tine que estar habilitado para escribir. El CD y el disquete deben introducirse en el momento del arranque.

Si se configura la red automáticamente durante el arranque (DHCP), se puede enviar información a través de los archivos compartidos de NFS o Samba, por ejemplo.

No te olvides de dar la localización del autorun en el arranque. Si compartes a través de NFS un directorio con permisos de escritura llamado /nfs/backup en el host myserver, lo tienes que especificar:

   * rescuecd ar_source=nfs://myserver:/nfs/backup 
en el arranque de SystemRescueCd y poner  en el directorio compartido un  script autorun como éste:
#!/bin/bash date=$(date +%Y%m%d) cat /dev/hda | gzip > /mnt/autorun/$date.hda.gz && exit 0 echo $date hda backup error exit 1 

Si hay espacio suficiente en el directorio compartido NFS, esto copiará ahí una imagen comprimida del primer disco IDE. Ten en cuenta que puede haber un máximo de 2 GB de tamaño de archivo cuando la copia se realiza a través de la red o a un sistema de ficheros FAT.

Asegúrate que la resolución de nombres funciona si quieres acceder al servidor NFS por su nombre en lugar de por su dirección IP.

spacer