Creación de Shell Scripts
POR:
DANILO A. JIMÉNEZ
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: