0% encontró este documento útil (0 votos)
70 vistas17 páginas

Programación Bash

El documento detalla la creación de scripts en Bash para programar tareas automáticas en Linux, incluyendo la captura de pantalla y la realización de respaldos. Se presentan objetivos generales y específicos, así como el desarrollo de scripts que utilizan comandos como scrot y tar, programados para ejecutarse mediante crontab. Además, se incluyen instrucciones sobre la instalación de herramientas necesarias y la configuración de permisos para la ejecución de los scripts.

Cargado por

carlos orozco
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
70 vistas17 páginas

Programación Bash

El documento detalla la creación de scripts en Bash para programar tareas automáticas en Linux, incluyendo la captura de pantalla y la realización de respaldos. Se presentan objetivos generales y específicos, así como el desarrollo de scripts que utilizan comandos como scrot y tar, programados para ejecutarse mediante crontab. Además, se incluyen instrucciones sobre la instalación de herramientas necesarias y la configuración de permisos para la ejecución de los scripts.

Cargado por

carlos orozco
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Universidad Técnica de Ambato

Facultad de Ingeniería en Sistemas,Electrónica e Industrial


Comunicaciones Avanzadas

Programación en Bash
Scripts Bash

Integrantes: Carlos Orozco


Profesor: Ing. Santiago Manzano

Fecha de realización: 19 de mayo de 2021


Fecha de entrega: 19 de mayo de 2021
Ambato, Ecuador
Índice de Contenidos i

Índice de Contenidos
1. Objetivos 1
1.1. Objetivo General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Objetivos Específicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2. Desarrollo 2
2.1. Captura de pantalla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2. Archivo de respaldos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.3. Memoria del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.4. Usuarios conectados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.5. Configurarción ip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3. Conclusiones 13

Referencias 14

Índice de Figuras
1. Instalacion scrot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Código scripts captura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3. Habilitamos permisos al archivo screem.sh . . . . . . . . . . . . . . . . . . . . . . . . . 2
4. Configuración del crontab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
5. Archivo Capturado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
6. Capturas en CentOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
7. Configuración del crontab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
8. Concedemos permisos al archivo backup.sh . . . . . . . . . . . . . . . . . . . . . . . . 4
9. Configuración del crontab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
10. Respaldos Generados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
11. Archivo descomprimido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
12. Carpeta de los respaldos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
13. Código memoria del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
14. Aplicación de permisos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
15. Configuración Crontab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
16. Carpeta de archivo generado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
17. Ejecucion del archivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
18. Ejecución del comando w . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
19. Ejecución del comando sar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
20. Código del script usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
21. Ubicación de archivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
22. Archivo de usuarios.txt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
23. Código del script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
24. Ejecución del script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
25. Opción 0 Automatica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
26. ip add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

Programación en Bash Noveno "A"


Índice de Figuras ii

27. Opción 1 Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12


28. ip add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

Programación en Bash Noveno "A"


Objetivos 1

1. Objetivos
1.1. Objetivo General
• Desarrollar scripts utilizando el lenguaje bash en Linux que permita programar tareas con el
comando crontab.

1.2. Objetivos Específicos


• Desarrollar un script que permita obtener la captura de pantalla en Linux a cada minuto.

• Desarrollar un script que permita obtener un respaldo de archivos de texto en Linux cada
minuto.

• Desarrollar un script que permita cambiar la ip de manera manual y automática de una maquina
Linux.

Programación en Bash Noveno "A"


Desarrollo 2

2. Desarrollo
2.1. Captura de pantalla
Para poder captura la pantalla de Linux, lo podemos realizar de varias maneras, ya sea de consola
o mediante guide. El comando a utilizar para esta práctica se utilizó el comando scrot.

Instalación de Scrot en Linux

Para poder instalar en una maquina Linux ejecutamos el siguiente comando: yum install scrot

Figura 1: Instalacion scrot

Después de la instalación ya podemos capturar la pantalla de nuestra máquina de Linux, con el


siguiente comando : scrot

Código del script

Cree un archivo screen.sh con el comando vi y agregue el siguiente contenido. Se programo en


bash, utilizando el comando scrot, en cual se coloca el nombre del archivo con las fecha y hora, para
después guardarlo en la carpeta que deseemos guardar.

Figura 2: Código scripts captura

Ahora concedemos el permiso 777 y configure un trabajo Cron.

Figura 3: Habilitamos permisos al archivo screem.sh

Abra un archivo crontab y agregue la siguiente entrada.

Figura 4: Configuración del crontab

Programación en Bash Noveno "A"


Desarrollo 3

La entrada de Cron anterior se ejecutará cada "10"minutos y tomará capturas de pantalla y las
almacenará en el directorio /home/Orozco/Pictures/ con el nombre de archivo como fecha y hora.

Figura 5: Archivo Capturado

También podemos visualizar las imágenes capturadas en la interfaz guide de CentOS.

Figura 6: Capturas en CentOS

2.2. Archivo de respaldos


Para poder realizar respaldos en RedHat utilizaremos el comando tar , para lo cual lo instalaremos
con el siguiente comando: yum install tar tar-doc.

Después de esto ya podemos realizar nuestros respaldos, para lo cual utilizaremos el siguiente
comando:

Programación en Bash Noveno "A"


Desarrollo 4

Código del script


A continuación, se muestra el script desarrollar el cual permite sacar una copia de respaldos de
documentos con extensión “.docx”.

Figura 7: Configuración del crontab

1. La primera línea es la llamada shebang, encargada de compartir con el sistema operativo el


intérprete que ha de usarse. En este caso concreto, se usa bash.

2. Obtenemos la fecha y hora para poder identificar cada copia de seguridad. Las variables mues-
tran, por ejemplo, el formato año-mes-día-horaminutosegundo.

3. Colocamos como queremos que se llame nuestra copia de seguridad.

4. Acceder a la carpeta a respaldar.

5. La línea del script contiene el comando tar: cf crea un archivo tar (-c), se comprime con gzip
(-z), y todo se envía al siguiente archivo (-f). Además, se agrega la extension .docx.

6. Y por último colocamos la ruta a guardar.

Ahora concedemos el permiso 777 y configure un trabajo Cron.

Figura 8: Concedemos permisos al archivo backup.sh

Abra un archivo crontab y agregue la siguiente entrada.

Figura 9: Configuración del crontab

La entrada de Cron anterior se ejecutará cada "10"minutos y realizara copias de seguridad y las
almacenará en el directorio /home/Orozco/Downloads/ con el nombre de archivo como fecha y hora.

Programación en Bash Noveno "A"


Desarrollo 5

Figura 10: Respaldos Generados

Para poder ver que documentos contiene nuestro respaldo comprimido , podemos ver con el
comando: tar -xvf

Figura 11: Archivo descomprimido

También podemos ver los respaldos creados desde la interfaz gráfica de CentOS.

Programación en Bash Noveno "A"


Desarrollo 6

Figura 12: Carpeta de los respaldos

2.3. Memoria del sistema


Para poder consultar los procesos que estamos realizando en la máquina de Linux lo realizaremos
con el comando ps aux.

Instalacion de ps en Linux
Realizamos el siguiente paso: sudo yum -y install sysstat

Una vez instalado “sysstat”, se creará el servicio con el mismo nombre, que debemos añadir al
inicio: systemctl enable sysstat , systemctl start sysstat

Despues podemos ver algunos ejemplos, el primero el uso más básico, que nos muestre información
del sistema cada 2 segundos hasta cinco veces: ps aux

Código del script


A Continuación se muestra el código del script realizado :

Figura 13: Código memoria del sistema

1. La primera línea es la llamada shebang, encargada de compartir con el sistema operativo el

Programación en Bash Noveno "A"


Desarrollo 7

intérprete que ha de usarse. En este caso concreto, se usa bash.

2. Ejecutamos en comando ps aux para obtener el reporte en tiempo real y después lo guardaos
en un archivo txt.

Ahora concedemos el permiso 777 y configure un trabajo Cron.

Figura 14: Aplicación de permisos

Abra un archivo crontab y agregue la siguiente entrada.

Figura 15: Configuración Crontab

La entrada de Cron anterior se ejecutará cada "10"minutos y tomará reportes de los procesos
realizados en tiempo real y las almacenará en el directorio /home/Orozco / con el nombre de memo-
ria.txt.

Figura 16: Carpeta de archivo generado

El archivo generado se guardara en el escritorio principal con el nombre : memoria.txt

Para poder ver el archivo, la abrimos con el comando: vi memoria.txt

Programación en Bash Noveno "A"


Desarrollo 8

Figura 17: Ejecucion del archivo

Para poder ver el archivo, la abrimos con el comando: vi memoria.txt

2.4. Usuarios conectados

Para poder ver los usuarios en Linux, ocuparemos dos comandos el cual nos permitirán obtener
información del número de usuarios y actividades que realizan.

Comando w: Muestra información sobre los usuarios que están conectados a la computadora y
además indica los procesos correspondientes de cada uno, el parámetro CPU revela el tiempo total
de procesador usado por todos los procesos.

Programación en Bash Noveno "A"


Desarrollo 9

Figura 18: Ejecución del comando w

El otro comando a utilizar es : sar 2 5

Figura 19: Ejecución del comando sar

Código del script


En la imagen se presenta el código desarrollado en el lenguaje bash.

1. La primera línea es la llamada shebang, encargada de compartir con el sistema operativo el


intérprete que ha de usarse. En este caso concreto, se usa bash.

2. Ejecutamos el comando w y sar los cuales nos generan reportes del sistema en tiempo real.
Estos reportes se guardan en el archivo usuarios.txt

3. Impresión de finalización del proceso.

Figura 20: Código del script usuarios

El archivo generado se guardará en el escritorio principal con el nombre: usuarios.txt

Programación en Bash Noveno "A"


Desarrollo 10

Figura 21: Ubicación de archivo

Abrimos el archivo y verificamos su información.

En la imagen se presenta los reportes obtenidos de los usuarios con sus diferentes procesos en
tiempo real.

Para lo cual abrimos el archivo usuarios.txt con el comando vi.

Figura 22: Archivo de usuarios.txt

2.5. Configurarción ip

A continuación se presenta el código del programa desarrollado , para lo cual se creo un archivo
.sh en cual tenemos 2 opciones de configuración:

Programación en Bash Noveno "A"


Desarrollo 11

• 0 para configuración ip automática

• 1 para configuración ip manual

Figura 23: Código del script

1. Mostramos un mensaje al usuario para que decida si desea configurar de manera manual o
automática de la dirección ip.

2. Si escogemos 0 la maquina tomara una dirección ip automáticamente por medio de adaptador


puente. Para lo cual se realizo una copia de seguridad de la configuración de red para poder copiarlo
cuando se seleccione de manera automática.

3. Si escogemos 1 tendremos que asignarle una dirección ip ,con son Gateway y dns .Para asignarlo
ocupamos el comando nmcli con se ve en el código.

Corremos el programa y tenemos dos opciones :

Figura 24: Ejecución del script

Si escogemos 0 la maquina tomara una ip automáticamente.

Programación en Bash Noveno "A"


Desarrollo 12

Figura 25: Opción 0 Automatica

Para verificar la dirección ip ejecutamos los siguiente:

Figura 26: ip add

Si escogemos 1 la maquina tomara una ip manual. aquí debemos ingresar la dirección ip con su
mascara , Gateway y su dns.

Figura 27: Opción 1 Manual

Para verificar la dirección ip ejecutamos los siguiente:

Figura 28: ip add

Programación en Bash Noveno "A"


Conclusiones 13

3. Conclusiones
• Para poder capturar la pantalla, Linux nos ofrece muchos comandos que poder ocupar para dicha
actividad, entre los cuales podemos encontrar los siguientes: scrot, ImageMagick , Shutter Gnome.
Para esta práctica ocupamos el comando scrot, permitiéndonos capturar la pantalla de CentOS.

• En la programación de los diferentes scripts presentados se utilizaron el lenguaje bash y el len-


guaje de programación C , el cual nos permitió programas la tareas utilizando sentencias condicionales
de lenguaje C.

• El desarrollo de los scripts se la realizo en la máquina de CentOS , pero también se puede


utilizar redhat con los mismos comandos presentados anteriormente.

Programación en Bash Noveno "A"


Referencias 14

Referencias
[1] Scrot. Scrot: una herramienta de línea de comandos para tomar capturas de pantalla de escritorio
/ servidor automáticamente en Linux
https://es.linux-console.net/?p=1826#:~:text=Instalaci%C3%B3n%20de%20Scrot%20en%
20Linux,como%20se%20muestra%20a%20continuaci%C3%B3n.
[2] Digital Guide. Programa de archivo tar: creación de backups y archivado de ficheros
https://www.ionos.es/digitalguide/servidores/herramientas/programa-de-archivo-tar-como-
crear-backups-en-linux/
[3] Linux Console. 3 maneras de establecer una dirección IP estática en RHEL 8
https://es.linux-console.net/?p=148
[4] Reportes Linux. Monitorización de procesos en Linux .
https://www.uaeh.edu.mx/scige/boletin/huejutla/n11/p2.html

Programación en Bash Noveno "A"

También podría gustarte