Creación de Shell Scripts Un script es una secuencia de instrucciones que un programa es capaz de seguir, interpretar, y ejecutar, pero el Shell Script no es solamente eso; también son ficheros de texto ASCII que presentan una serie de órdenes y estructuras organizadas secuencialmente. Los programas de Shell no necesitan ser compilados como ocurre en otros lenguajes. En este caso, el propio Shell los ejecuta línea a línea. En este documento aprenderemos como hacer algunos Scripts de Shell que nos ayuden a realizar algunas tareas. Bien, antes que nada vamos a crear un directorio donde vamos a guardar todos nuestros scripts, que en mi caso le he llamado “DirectorioScripts” y está ubicado en /root/DirectorioScripts como se ve a continuación: Utilizando el comando “ls” y “ls –l”, comprobamos que efectivamente nuestro directorio fue creado, y se encuentra en dicha ubicación. Script para crear una calculadora: Para empezar debemos crear un archivo de texto en donde será creado el script. Esto puede hacerse con el editor que deseemos, yo he utilizado VIM y le he llamado scriptcalculadora.sh , donde sh hará la función de extensión para todos nuestros archivos de script. Creamos el archivo de texto: Ahora dentro del editor de textos introducimos los siguientes comandos: #!/bin/bash: Será para especificar que es un script que ha de ser ejecutado por el Shell BASH. Echo “XXXXXXXXX”: Lo que escribamos luego del comando Echo ha de estar entre comillas (“ ”) y será sencillamente un mensaje que vera el usuario cuando inicie el script. De la misma forma usamos el comando para indicarle al usuario que interactúe con el script como usarlo. Read var1, var2, var3, etc.: Con eso le decimos al equipo que lea una variable que introduciremos, que en este caso serán las cantidades y operadores. Sleep: este comando sirve para retrasar un poquito a la maquina antes de ejecutar la siguiente línea. Expr $var1 $op $var2: Indica que lo que se lee en la variable 1 se afectado por alguna operación matemática en frente a la variable 2. Guardamos el archivo, que en VIM es saliendo de la interfaz de edición con esc y luego introduciendo “:w” para guardar y “:q” para salir. Ahora, le damos permisos al archivo y lo probamos con el comando source: Script para crear usuarios. Para empezar creamos un archivo de texto y lo modificamos con un editor como VIM. En mi caso he llamado al archivo: userscript.sh, véase: Ya dentro del editor, introducimos los siguientes comandos: #!/bin/bash: será para especificar que es un script que ha de ser ejecutado por el Shell BASH. Echo “Functional Script”: lo que escribamos luego del comando comando Echo ha de estar entre comillas (“ ”) y será sencillamente un mensaje que vera el usuario cuando inicie el script. De la misma forma usamos el comando para que diga Escriba el nombre de usuarios. Read var1: con eso le decimos al equipo que lea una variable que introduciremos, que en este caso será el nombre del usuario que queremos crear. Sudo adduser $var1: este es el comando que usara el script para crear el usuario. La parte $var1 es para invocar la variable que creamos anteriormente. Tras escribir esos comandos guardamos el archivo y nos dirigimos al directorio donde se encuentra (cd /home/DirectorioScripts). Allí le damos los permisos necesarios al script para definir quienes pueden ejecutarlo, que en este caso serán todos los usuarios (chmod 777 userscript.sh). Con eso queda terminada la creación del script. Para probarlo usamos el comando source userscript.sh El script se verá de la siguiente manera: Script para crear grupos Para empezar el procedimiento es muy similar al de los usuarios sin embargo en el caso de los grupos el comando que usamos es groupadd para crear uno nuevo. Así que en este caso seguiremos los mimos pasos que en el script anterior pero en este la última línea del script será sudo group add $var1. En este caso hemos nombrado al script groupscript.sh. Y lo editamos… Así como lo hicimos con el script pasado, también nos dirigiremos al directorio en que este se encuentra (cd /home/Practica06) para darle los permisos necesarios (chmod 777 gruposcript.sh). Lo probamos con el comando source gruposcript y si está todo bien, veremos lo siguiente: Script para hacer backups Para este script primero crearemos 2 carpetas dentro de /home/DirectorioScripts llamadas “backup” y “copiabackup” y le daremos los permisos necesarios para que puedan acceder los usuarios que deseemos a estas. Esto lo hacemos con los siguientes comandos: Dentro de la carpeta backup guardaremos un archivo llamado EjemploBackup, este será el archivo que copiaremos en la carpeta copiabackup para probar que nuestro script funciona: Como en los demás scripts nos dirigimos al directorio /home/DirectorioScripts y allí abrimos un archivo de texto con el editor de textos de nuestra preferencia. En este caso hemos llamado al script scriptbackup.sh Al editarlo escribimos lo siguiente: Read var1: ahí el usuario que abra el script introducirá una variable, que en este caso será el directorio y/o el archivo que quiere copiar. Read var2: ahí el usuario que abra el script introducirá una variable, que en este caso será el directorio donde se quiere guardar la copia. Sudo cp –f $var1 $var2: con este comando le ordenamos al script que copie el directorio que especificamos como directorio de origen en el directorio que especificamos como directorio de destino. Tras guardar el script le damos los permisos de usos y abrimos con el comando source scriptbackup.sh Al abrirlo especificamos el directorio y/o el archivo que queremos copiar y el directorio de destino, cuando se nos pida. Comprobamos que se ha hecho el backup de una carpeta a otra. Automatizar scripts con Cron. Cron se define como un administrador regular de procesos en segundo plano (daemon) que ejecuta procesos (por ejemplo, cada minuto, día, semana o mes). Los procesos que deben ejecutarse y la hora en la que deben hacerlo se especifican en el fichero crontab. Cron es como el programador de tareas en Windows y nos ayuda bastante a ahorrar tiempo cuando tenemos mucho trabajo. Antes que nada hay que saber que para que un script pueda ser ejecutado automáticamente con cron tiene que ser uno que no necesite de la intervención de un usuario para realizarse. A continuación realizaremos uno que realice un Backup de forma automática una vez se le invoque. El script contendrá lo siguiente: Ahí estamos especificando que cada vez que ejecutemos este script se copiara el archivo Backup en el directorio /home/DirectorioScripts/copiabackup. La forma más fácil para poder ejecutar un script periódicamente con un usuario es usando el comando crontab –e. Pero primero le otorgamos los permisos necesarios al script: Luego de esto nos aparecerá un fichero donde tendremos que introducir cada cuanto queremos que se ejecute el script y la ruta al script, en el siguiente formato: El símbolo asterisco (*) significa que se abarcará todos los días, horas, etc, según el campo que se especifique en el fichero. Nota: como comando pondré la ruta de un fichero de backup que ya había creado previamente. Cron.daily, cron.hourly, cron.weekly, cron.monthly: Estas carpetas se encuentran en /etc/, y si ubicamos cualquier script en ellas se ejecutara una vez al día (daily), a la hora (hourly), a la semana (weekly) o al mes (monthly). Algo sencillo y sin complicaciones para el usuario. Por ejemplo, si queremos que se ejecute todos los días a las 4:40 escribimos lo siguiente: