nombre - weebly

25
Nombre: Yonaira Castillo Soriano Matricula: 2011-3770 Asignatura: Sistemas Operativos III Instructor: José Doñe Tema: Shell script en Debían

Upload: others

Post on 28-Jul-2022

19 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Nombre - Weebly

Nombre: Yonaira Castillo Soriano

Matricula: 2011-3770

Asignatura: Sistemas Operativos III

Instructor: José Doñe

Tema:

Shell script en Debían

Page 2: Nombre - Weebly

Un shell script ó script del shell, es una serie de comandos escritos en un archivo de

texto plano. Es parecido a los archivos batch en Windows, pero los Shell script tienen

mucho más poder.

Los script son casi siempre interpretados, pero no todo programa interpretado es

considerado un script. El uso habitual de los scripts es realizar diversas tareas como

combinar componentes, interactuar con el sistema operativo o con el usuario. Por este

uso es frecuente que los shells sean a la vez intérpretes de este tipo de programas.

El Shell es un programa – interface, que se provee como un elemento comunicacional

entre el usuario y el sistema operativo. Tiene como función aceptar los comandos

escritos y ejecutarlos.

¿Cómo funcionan?

Los Shell script se ejecutan de manera automática, leyendo cada uno de las líneas de

comando que contiene el archivo. Debido a que Linux interpreta comandos de forma

lineal-secuencial, es importante que al momento de redactar el script se separen con

un ( ; ) cada línea de comando. Por ejemplo:

Si escribimos:

echo HOLA1 echo HOLA2 echo HOLA3

Estaríamos cometiendo un fallo sintáctico y es que el intérprete de Linux está

preparado para ejecutar orden tras orden de forma lineal y secuencial y aquí se rompe

esa secuencia.

¿Cómo se identifican?

Se identifican como tener como extensión .sh. También se pueden identificar por su

encabezado en el contenido ó shebang:

#!/bin/bash ; #!/bin/ksh

Para python es #!/usr/bin/env python

Shebang es, el nombre que recibe el par de caracteres #! que se encuentran al inicio

de los programas ejecutables interpretados.

Términos que debemos conocer antes de empezar

Page 3: Nombre - Weebly

•Lo caracteres #! indican al sistema que el primer argumento que sigue en la linea es el

programa a utilizar para ejecutar este fichero. En este caso usamos el shell /bin/sh.

•Variables son como una fuente de almacenamiento en la que depositamos un

determinado dato. Además, sirven de enlace entre el usuario remoto y el programa,

otra de sus utilidades es poder utilizarlas en distintas partes de nuestro código-script.

•Creación de variables: Para crear una variable se usa la sintaxis: namevar=valordatos

Donde namevar es el nombre (identificador) de la variable y valordatos (contenido) es

el valor o los datos que queremos almacenar

•Comillas simples

•El contenido no es interpretado por el shell. Se suele usar para indicar caracteres

literales. Por ejemplo „a‟ es tomada como un carácter literal no es procesada por el

Shell.

•Comillas dobles: Agrupa una cadena de carácteres literal no es procesada por el Shell.

Por ejemplo: VAR=“Hola amigos”, aquí estaríamos almacenando en la variable VAR el

texto Hola amigos.

•Comillas invertidas: Hacen que se evalue el contenido y que su resultado sea devuelto

como el de una variable. Por ejemplo: verfecha=`date`

Comodines

•El signo * es un comodín que funciona como sustitución de cadena de literales.

•El signo # sirve como comodín que sustituye un carácter. Si añadimos mas

interrogantes sustituirá tantos caracteres como interrogantes haya.

•El signo (~) este carácter devuelve la ruta del home del usuario.

•El signo $ sirve para especificar que se muestre una variable.

Read

Sintaxis: read variable (s)

La orden read se usa para leer información escrita en el terminal de forma interactiva.

Expr

Page 4: Nombre - Weebly

Este comando se utiliza para realizar operaciones aritméticas.

Echo

Este comando escribe a la salida estándar la cadena de texto que se le pasa como

parámetro. Recuerda que toda frase o cadena de caracteres deben estar entre comillas

(“ ”)

Script funcional para crear usuarios

Hacemos click en: Aplicaciones – Accesorios – Terminal.

Page 5: Nombre - Weebly

Para crear el script, necesitas ayudarte de un editor de texto que pueden ser Emacs,

Vi, gedit, entre otro. En mi caso utilizaré “gedit”, por lo cual escribe gedit [el nombre del

script].sh

Script para la creación de usuarios

Para la creación de usuario podemos utilizar dos comandos: adduser ó useradd. Para

este script emplearé el comando useradd (a diferencia de adduser, useradd no te

permite introducir ninguna otra información acerca del usuario). He empleado este

comando porque el script tendrá la información de una empresa “X”, lo que facilita crear

usuarios de una misma empresa.

Inicia el archivo escribiendo #!/bin/bash para indicar bajo que shell estas trabajando.

Todos los usuarios comparten el nombre de oficina: puebloitla y el número de teléfono

829 8849439.

Page 6: Nombre - Weebly

Durante el script se ejecuta, te preguntará acerca del nombre completo, contraseña y

número personal.

1. Var1 (guarda el nombre del usuario que introdujiste)

2. El parámetro –m indica que se creara el directorio personal del usuario en /home.

3. Sudo passwd utilizado para pedir que introduzcas la contraseña para el nuevo

usuario.

4. Luego la información de (chfn $var1 –w) y (chfn $var1 –o) será igual para todos los

usuarios.

5. Chfn $var1 –f para que se llene el campo del nombre completo del usuario, el cual

especificaste en var2.

Page 7: Nombre - Weebly

6. Chfn $var1 –h para hacer que se llene el campo del número de teléfono personal del

usuario que especificaste en var3. Luego haz clic en guardar y cierra la ventana. Y se

creara un archivo similar a este que dice usuarios.sh

7- Ahora sobre el archivo daremos permisos de lectura, escritura y ejecución

designados por el número 777.

Page 8: Nombre - Weebly

8- Ahora ejecutaremos el script, para mostrar que cumple con la funcionalidad para la

cual fue creada. Antes de ejecutarlo recuerda posicionarte el directorio donde lo

creaste. Luego, introduce en la terminal lo siguiente: sh [nombre del script].sh

9- Para comprobar que nuestro usuario ha sido creado, introduce el comando grep

[nombre del usuario] /etc/passwd

Page 9: Nombre - Weebly

Como puedes observar, por medio de ese comando te muestra la información del

usuario indicándote que existe en el sistema. “Puede ver, que el número de teléfono

personal coincide con el que introduje”.

Ahora probaremos que podemos iniciar sesión con la cuenta de usuario que creamos

Page 10: Nombre - Weebly

Script funcional para crear grupos

La forma de crear usuarios y la de crear grupos no difiere mucho, salvo en los

comandos a emplear y en ciertas especificaciones que no se emplean.

1- Estando ya en la terminal, escribe gedit [el nombre del script].sh

Page 11: Nombre - Weebly

Groupadd= para crear el grupo.

Gpasswd = para establecer la contraseña.

Gpasswd –A =designar administrador de grupo.

Gpasswd –a = para agregar un usuario al grupo.

Page 12: Nombre - Weebly

Ahora le daremos permisos de lectura, escritura y ejecución (representado con el 777)

al archivo crearusuario.sh

Ahora ejecutaremos el script, para mostrar que cumple con la funcionalidad para la cual

fue creada. Antes de ejecutarlo recuerda posicionarte el directorio donde lo creaste.

Luego, introduce en la terminal lo siguiente: sh [nombre del script].sh

Page 13: Nombre - Weebly

5- Para comprobar que nuestro usuario ha sido creado, introduce el comando grep

[nombre del usuario] /etc/group.

El comando grep, tiene por funcionalidad escribir en salida estándar aquellas líneas que

concuerden con un patrón.

Script para hacer una calculadora

Estando en la terminal, de igual manera que como se explico para el script de usuarios.

1- Estando ya en la terminal, escribe gedit [el nombre del script].sh

La creación de la calculadora emplearé el uso de variables y operadores.

Page 14: Nombre - Weebly

El comando “sleep” lo único que hace es esperar un poco de tiempo para crear la

sensación de que l programa está pensando poco antes de dar el resultado.

Variable (var1) que almacena el primer valor que se utilizará en la operación. Son los

operadores ó expresiones aritméticas.

Mensajes de inicio. Utilizando el comando echo, para que se muestren.Op1 almacena

el operador con el cual se llevará a cabo la operación. Variable (var2) que almacena el

segundo valor que se utilizará en la operación.

Esta expresión es la que se encarga de realizar la operación.

El comando “expr” los argumentos de este comando se toman como expresiones y

deben ir separados por blancos. La orden expr evalúa sus argumentos y escribe el

resultado en la salida estándar.

Expr $var 1 “$op1” $var 2

Page 15: Nombre - Weebly

Luego de haber creado nuestro script, debemos darle permiso de ejecución. Dentro de

la terminal, y ubicado en el directorio donde creaste el script, escribe lo siguiente:

Chmod +x mycal.sh

Chmod: es un comando que te permite

+x -----> agrega( +) el permiso de ejecución (x)

youcal.sh ---- > el archivo al cual se le otorgará el permiso.

4- Una vez que el script ya tiene el permiso de ejecución, procedemos a probarlo introduciendo

sh (Source) [nombre del archivo].sh

Esta variable es importante que esté encerrada entre comillas simples

“” ó esté precedidas por el símbolo backslash ( \ ). Debido a que el

símbolo de multiplicar es un asterisco ( * ), y como habrás visto al

principio de este tutorial, ese signo es un comodín y tiene una función

específica dentro del Shell.

Page 16: Nombre - Weebly
Page 17: Nombre - Weebly

Script funcional para hacer un backup

En esta parte del tutorial crearemos un script que lleve a cabo un backup de manera

automática; resulta muy conveniente porque con el solo hecho de ejecutar el script la copia de

seguridad se realizara por sí sola. También emplearemos un cron, para que el script se ejecute

solo cada “x” tiempo, y de esta manera tendremos nuestra copia de seguridad actualizada aún

si se nos olvida hacerlo.

Un backup ó copia de seguridad consiste una copia de datos de tal forma que estas puedan

restaurar un sistema después de una pérdida de información. Nos evitará problemas el tener

siempre una copia de nuestro trabajo.

1- En primer lugar, debemos que ubicar la carpeta o archivo al cual le creamos la copia de

seguridad (backup). En mi caso he decidido que sea la carpeta Documentos ubicada

dentro de mi usuario en /home.

2- Ahora crearemos la carpeta en donde se guardará nuestro backup. Nuestra carpeta se llamará prueba_backup, y estará ubicada en Escritorio. Para dar inicio, debes entrar a la terminal haciendo click en Aplicaciones – Accesorios – Terminal.

Page 18: Nombre - Weebly

Ahora crearemos la carpeta en donde se guardará nuestro backup. Nuestra

carpeta se llamará prueba backup, y estará ubicada en Escritorio. Para dar

inicio, debes entrar a la terminal haciendo click en Aplicaciones – Accesorios –

Terminal.

Page 19: Nombre - Weebly

Escribe su y presiona Enter; y luego la contraseña del superusuario. En esta ocasión

utilizaremos su (switch user), este comando te permite mover desde cualquier usuario hacia

otro. No entramos directamente al modo root, porque este modo tiene poder de acceso

ilimitado y la implementación de comandos peligrosos puede ocasionar daños permanentes.

Ahora debes de dirigirte al Escritorio, escribiendo cd Escritorio (ó Desktop depende del idioma

de tu sistema operativo). Estando dentro del directorio Escritorio, procede a crear la carpeta

que tendrá el backup usando la siguiente sintaxis de comando mkdir prueba_backup y

presiona enter. Para comprobar que efectivamente se ha creado puedes usar el como ls y

presionar enter.

Una vez creado nuestro directorio para le backup, crearemos el script; para lo cual debes

escribir gedit [el nombre del script].sh

Para la creación de este script utilizaré el comando tar y el mv (move). El comando tar

tiene como tarea principal comprimir y descomprimir archivos; y el mv como indica su

nombre en español es para mover directorios ó archivos desde un lugar a otro.

La línea tar –cvzf $var2$FECHA.tar.gz $/var1/$var2 es la que se encarga de

comprimir el directorio indicado en var2 que se encuentra en la ruta indicada en var1.

Entonces, en un lenguaje simple esta línea dice: “Créame un nuevo archivo,

muéstrame todo lo que sucede, comprímelo y empaquétalo. El nombre con el cual se

creará el nuevo archivo está indicado en $var2$FECHA que indica que será el mismo

nombre del archivo original pero agregándole la fecha. Esto te ayuda a tener un orden

entre las diversas copias que puedes tener.

Page 20: Nombre - Weebly

En la línea mv /home/yonaira/*.tar.gz /home/yonaira/Escritorio/prueba_backup, indica que

se mueva todos los archivo que tengan por extensión .tar.gz al directorio Escritorio – carpeta

prueba_backup (que fue la carpeta que creamos al principio).

Para que el script se pueda ejecutar sin ningún problema, debes otorgarle permiso de ejecución

empleando el comando chmod +x [nombre del archivo].

Page 21: Nombre - Weebly

Para ejecutar el script, estando ubicado en el directorio en el cual se encuentra, escribe sh

[nombre del script].sh

Si te dirige a la carpeta de destino /home/yonaira/Escritorio/prueba_backup podrás ver el

archivo comprimido y empaquetado.

Page 22: Nombre - Weebly

Ejecución automática por medio de CRON

10- Para configurar el cron, tienes que escribir dentro de la terminal crontab –e y presionar

Enter. Se te abrirá un editor. Crontab –e se emplea para facilitar la información al cron de los

programas que hay programados para ser ejecutados. La sintaxis de la línea a añadir en este

archivo para programar una nueva tarea es:

[hora] [minuto] [dia_del_mes] [mes] [dia_de_la_semana] [comando]

Page 23: Nombre - Weebly

Script funcional para transferir datos entre PC

Para la creación de este script, utilizaremos NFS. Lo primero que debemos hacer es

crear la carpeta que compartiremos en la red y darles los permisos necesarios para que

se pueda transferir los datos.

1- Crearemos una carpeta llamada compartimiento, que estará ubicada en el

escritorio. En la terminal, escribe mkdir Compartir. Luego, debemos de darle los

permisos de escritura, lectura y ejecución que se representa con el 777 y es

utilizado con el comando chmod.

Una vez creada la carpeta que compartiremos, debemos especificar el rango de

direcciones IP que tendrán acceso a los archivos compartidos.

En el archivo /etc/exports estableceremos la ruta de la carpeta que compartiremos, el

rango de direcciones, y los permisos que como podrás ver son leer y escribir.

Page 24: Nombre - Weebly

Cuando hayas realizado la modificación especificada en el paso anterior, haz click en

Guardar y luego procede a reiniciar el servicio NFS escribiendo /etc/init.d/nfs-kernel-

server restart y presiona Enter.

Estando en el cliente, vamos a crear una carpeta para poder compartir los datos de

igual manera. Realizamos el mismo paso 1, pero cambiándole el nombre a la carpeta.

Ahora montaremos el enlace dentro del cliente, con el comando showmount – e

[dirección del servidor] en mi caso shownmount –e 192.168.1.0

Page 25: Nombre - Weebly

Con el enlace montado, crearemos el script para la transferencia. Escríbe gedit

compartimiento.sh. Dentro del editor, escribe los comandos que se muestran en la

imagen. Mount- t es para montar la carpeta como una unidad física.

Mount –t nfs [dirección IP del servidor]:[ruta de la carpeta en el servidor] [ruta de la

carpeta en el cliente] guarda el archivo y cierra la ventana. Ahora procede a darle

permiso de ejecución al script. En la terminal escribe chmod 777 transferencia.sh.