14.4.2.7 Práctica de laboratorio: Escribir scripts básicos en Windows y Linux

Última actualización: noviembre 19, 2021

14.4.2.7 Práctica de laboratorio: Escribir scripts básicos en Windows y Linux (versión para el instructor)

Nota para el instructor: Los elementos con color de fuente rojo o resaltados en gris indican texto que aparece solo en la copia del instructor.

Objetivos

En esta práctica de laboratorio, escribirá scripts básicos en diferentes lenguajes de secuencias de comandos para ayudar a comprender cómo maneja cada lenguaje las tareas de automatización.

Antecedentes / Escenario

La escritura de secuencias de comandos para automatizar las funciones de administración comunes ahorra tiempo y provee al administrador flexibilidad para realizar otras tareas. En la práctica de laboratorio, escribirá tres tipos de scripts que realizarán tareas similares. Compare los diferentes lenguajes a medida que automatiza una tarea simple.

Recursos necesarios

  • Computadora con Windows
  • VM con distribución de Linux

Instrucciones

Paso 1: Cree un script por lotes de Windows.

a. En un editor de texto, como el Bloc de notas, guarde un archivo de texto llamado info.bat en su directorio de inicio (C:\Users\yourusername) con el siguiente texto:

Abra la ventana de configuración
@echo off
echo Computer Name is: %computername%
echo Windows version is:
ver
echo CPU is: %PROCESSOR_IDENTIFIER%
echo Total memory is:
rem WMIC (comando para el instrumental de administración de Windows) es una
utilidad de la línea de comandos que puede recuperar información sobre
computadoras locales o remotas. Para obtener más información en línea,
introduzca help wmic o wmic /? en el símbolo del sistema.
wmic ComputerSystem get TotalPhysicalMemory
echo The disks that are installed and their freespace:
wmic logicaldisk get size,freespace,caption
echo All the %computername% IP addresses
Rem netsh es una utilidad de scripts de línea de comandos que permite que los
usuarios vean o modifiquen las configuraciones de red de una computadora en
ejecución. Para obtener más información en línea, introduzca nesh /? en el
símbolo del sistema.
rem findstr se utiliza para buscar una cadena de texto en archivos. Para
obtener más información en línea, escriba findstr /? en el símbolo del
sistema.
netsh interface ip show address | findstr "IP Address"

b. Abra un símbolo del sistema y navegue hasta su directorio de inicio.

c. Enumere el contenido de su directorio de inicio y verifique que el archivo info.bat se guarde con el archivo correcto. De lo contrario, cambie el nombre del archivo, por ejemplo, rename info.bat.txt info.bat.

d. En la línea de comandos, ingrese info.bat para ejecutar el script.

Preguntas:

¿Cuál fue la salida?
Las respuestas pueden variar

El nombre de la computadora es: KDV-PC 
La versión de Windows es: 
Microsoft Windows [versión 10.0.17763.437] 
La CPU es: Intel64 Family 6 Modelo 61 Stepping 4, GenuineIntel 
La memoria total es: 
Memoria física total 
17091084288
Los discos que están instalados y sus espacios libres son los siguientes: 
Tamaño del espacio libre para leyenda 
C:      212692340736  997923037184
Todas las direcciones IP de KDV-PC
 Dirección IP:                          192.168.56.1
 Dirección IP:                          169.254.45.2
 Dirección IP:                          169.254.126.64
 Dirección IP:                          192.168.159.1
 Dirección IP:                          192.168.181.1
 Dirección IP:                          192.168.1.40
 Dirección IP:                          127.0.0.1

¿Para qué se utilizan los %nombres% en el script?
Las respuestas pueden variar. Estas son las variables de entorno que mantienen los valores establecidos por el sistema operativo.

Identifique lo que hacen los siguientes comandos en el script:

echo:
Muestra en pantalla lo que viene después

findstr:
Busca una cadena de caracteres.

netsh:
El shell de red permite mostrar y modificar la configuración de red.

ver:
Proporciona la versión actual del SO.

wmic:
La interfaz de administración de Windows permite que un administrador vea o modifique la configuración.

Paso 2: Cree un script de PowerShell ISE.

a. Haga clic en Inicio, busque PowerShell ISE, haga clic con el botón secundario del mouse en la selección y, luego, en Ejecutar como administrador.

b. Verifique que se encuentre en su directorio de inicio: PS C:\Users\YourUsername

c. Para permitir que el script se ejecute, ingrese Set-ExecutionPolicy RemoteSigned en la línea de comandos. Haga clic en para permitir que se ejecute el script. La configuración se puede volver a cambiar a No después de que se complete el script.

PS C:\Users\YourUsername> Set-ExecutionPolicy RemoteSigned

d. Elija Archivo, Nuevo y cree un nuevo script.

e. Ingrese el siguiente texto en la ventana Untitled.ps1 y guárdela como info.ps1 en su directorio de inicio.

Abrir la ventana de configuración
Write-Output "Computer name is:"
get-content env:computername
Write-Output "Windows version is:"
(Get-WmiObject -class Win32_OperatingSystem).Leyenda
Write-Output "CPU is:"
Get-WmiObject Win32_Processor | findstr "Name"
Write-Output "total Memory is:"
[Math]::Round((Get-WmiObject -Class win32_computersystem -ComputerName
localhost).TotalPhysicalMemory/1 GB)
Write-Output "los discos que están instalados y su espacio libre:"
Get-WMIObject -Class Win32_logicaldisk -Filter "Drivetype = ' 3 '"
Write-Output "IPv4 Addresses"
Get-NetIPAddress -AddressFamily IPv4 | Sort-Object -Property InterfaceIndex |
Format-table

Nota: El comando Get-NetIPAddress no está disponible en Windows 7.

Nota: Dentro de PowerShell ISE, puede presionar F1 o seleccionar Ayuda > Ayuda de Windows PowerShell ISE para obtener más información.

f. Para ver las funciones de cada comando, haga clic en Complementos, verifique que esté marcada la opción Comando. En la pestaña Comandos, introduzca el nombre del comando en el campo Nombre. Seleccione el comando deseado y haga clic en ? para obtener más información acerca de él.

En Windows 7, haga clic en Ayuda, seleccione Ayuda de Windows PowerShell. Seleccione Temas de ayuda sobre Cmdlet de Windows PowerShell. Busque el comando deseado.

g. Introduzca .\info.ps1 en la línea de comandos PS. Nota: Asegúrese de que está utilizando la barra oblicua correcta.

PS C:\Users\YourUsername> .\info.ps1

Pregunta:

¿Cuál es el resultado del script?
Las respuestas pueden variar.

PS C:\> .\info.ps1
El nombre de la computadora es: 
KDV-PC
La versión de Windows es: 
Microsoft Windows 10 Education La CPU es: 
Nombre: Intel(R) Core(TM) i5-5200U CPU @ 2,20 GHz 
La memoria total es: 
16
Los discos que están instalados y sus espacios libres son los siguientes:
ID de dispositivo : C: 
TipoDeUnidad      : 3 
NombreDeProveedor : 
EspacioLibre      : 212635987968 
Tamaño            : 997923037184 
NombreDelVolumen  : Windows 

Direcciones IPv4
ifIndex IPAddress                                       PrefixLength PrefixOrigin 
SuffixOrigin AddressState PolicyStore 
------- ---------                                       ------------ ------------ -------
----- ------------ -----------
1       127.0.0.1                                                  8 WellKnown 
WellKnown    Preferred    ActiveStore 
3       169.254.220.156                                           16 WellKnown    Link 
Tentative    ActiveStore 
5       de 192.168.159.1                                          24 Manual       Manual 
Preferred    ActiveStore 
7       169.254.160.146                                           16 WellKnown    Link 
Tentative    ActiveStore 
11      192.168.56.1                                              24 Manual       Manual 
Preferred    ActiveStore 
15      169.254.45.2                                              16 WellKnown    Link 
Preferred    ActiveStore 
17      192.168.1.40                                              24 DHCP         DHCP
Preferred    ActiveStore 
24      169.254.2.220                                             16 WellKnown    Link 
Tentative    ActiveStore 
25      169.254.126.36                                            16 WellKnown    Link 
Tentative    ActiveStore 
29      169.254.18.19                                             16 WellKnown    Link 
Tentative    ActiveStore 
39      192.168.181.1                                             24 Manual       Manual 
Preferred    ActiveStore 
73      169.254.126.64                                            16 WellKnown    Link

h. Compare los dos scripts. Una el comando por lotes con los siguientes comandos de PowerShell:

Comando por lotes de Windows Comando de PowerShell
echo Computer Name is: %computername% Write-Output «Computer name is:» get-content env:computername
echo Windows version is: ver Write-Output «Windows version is:» (Get-WmiObject -class Win32_OperatingSystem).Caption
echo CPU is: %PROCESSOR_IDENTIFIER% Write-Output «CPU is:» Get-WmiObject Win32_Processor | findstr «Name»
echo Total memory is: Write-Output «total Memory is:»
wmic ComputerSystem get TotalPhysicalMemory [Math]::Round((Get-WmiObject -Class win32_computersystem -ComputerName localhost).TotalPhysicalMemory/1Gb)
echo The disks that are installed and their freespace: Write-Output «The Disks that are installed and their freespace:»
wmic logicaldisk get size,freespace,caption Get-WMIObject -Class Win32_logicaldisk -Filter «Drivetype = ‘ 3 ‘»
echo All the %computername% IP addresses Write-Output «IPv4 Addresses»
netsh interface ip show address | findstr «IP Address» Get-NetIPAddress -AddressFamily IPv4 | SortObject -Property InterfaceIndex | Format-Table

Paso 3: Cree un script BASH.

Se utiliza un editor de texto para crear un script ejecutable. Una de las herramientas del editor de texto, vi, o la versión mejorada de vi, vim, se basa en comandos de letras y números para modificar el texto. Por ejemplo, dd eliminará toda la línea en la que se encuentra el cursor. 5dd eliminaría 5 líneas. Cuando vi está en modo de comando, la entrada se interpreta como comando.

Para ingresar al modo de inserción en la posición actual del cursor, escriba i. Para anexar texto al final de la línea actual, escriba a. Para insertar texto en una nueva línea debajo de la línea actual, escriba o. Utilice la tecla Esc para salir del modo de inserción y pasar al modo de comando.

Para guardar un archivo en el editor de vi, utilice :w desde el modo de comando. Para guardar y salir, escriba :wq. Para salir sin guardar, escriba :q!.

Según cuál sea su versión de SO similar a Unix, es posible que encuentre otra herramienta de editor de texto, como nano, pico y gedit. Se puede acceder a las herramientas de edición de texto, como vi, nano y pico, a través de la línea de comandos; mientras que los editores de texto basados en la GUI, como gedit, pueden ubicarse a través del menú de aplicaciones o de la línea de comandos.

a. Inicie una computadora Linux o una VM.

b. Utilice una herramienta del editor de texto y cree un archivo llamado info.sh en el directorio de inicio con el siguiente texto:

#!/bin/bash
echo "Computer name is: " $HOSTNAME
echo "Operating System is:"
cat /etc/os-release | grep PRETTY_NAME
echo "CPU is"
lscpu | grep "Model name:" | sed -r 's/Model name:\s{1,}//g'
echo "Total Memory is"
cat /proc/meminfo | grep "MemTotal"
echo "The disks that are installed and their freespace"
df -h
echo "All the" $HOSTNAME "IP addresses"
hostname -I

c. Abra una terminal y navegue hasta el directorio de inicio. Para convertir el script en ejecutable, introduzca chmod 755 info.sh en la línea de comandos.

d. En la línea de comandos, introduzca ./info.sh para ejecutar el script.

Preguntas:

¿Cuál es el resultado del script?
Las respuestas pueden variar.

El nombre de la computadora es:  KDV-PC 
El sistema operativo es: 
PRETTY_NAME="Ubuntu 16.04.5 LTS"
La CPU es 
Intel(R) Core(TM) i5-5200U CPU @ 2,20 GHz 
La memoria total es: 
MemTotal:            16690512 kB 
Los discos que están instalados y sus espacios libres 
Sistema de archivos  Tamaño  Usado Disponible % de uso Montado en 
rootfs               930G    732G  198G       79%      / 
root                 930G    732G  198G       79%      /root 
home                 930G    732G  198G       79%      /home 
data                 930G    732G  198G       79%      /data 
cache                930G    732G  198G       79%      /cache 
mnt                  930G    732G  198G       79%      /mnt 
none                 930G    732G  198G       79%      /dev 
none                 930G    732G  198G       79%      /run 
none                 930G    732G  198G       79%      /run/lock 
none                 930G    732G  198G       79%      /run/shm 
none                 930G    732G  198G       79%      /run/user 
C:                   930G    732G  198G       79%      /mnt/c 
Todas las direcciones IP de KDV-PC 
192.168.56.1 192.168.159.1 192.168.181.1 169.254.45.2 169.254.126.64
192.168.1.40

¿Qué significa “#!/bin/bash” al comienzo del script?
Le indica al script qué intérprete debe utilizar para el código.

¿Qué comando usaría para obtener más información sobre los comandos df y lscpu?
Utilice el comando man para obtener más información. En la línea de comandos, escriba man df y man lscpu.

Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
¿Tienes otra pregunta? Por favor comentax