Creación de Shell Scripts

Anuncio
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:
Descargar