Tutoriales

5 scripts de shell útiles para principiantes en Linux

Los scripts de shell de Linux son el arte de escribir pequeños programas (scripts) para automatizar tareas en una interfaz de línea de comandos, lo que implica el uso de comandos, variables, bucles y condicionales para crear flujos de trabajo eficientes y automatizados.

Este artículo es una extensión de nuestro primer artículo, «Comprensión de los scripts de Shell de Linux». En ese artículo, le presentamos las secuencias de comandos. A continuación, nuestro objetivo en este artículo es mantener el impulso y no decepcionarlo.

Guión 1: Dibuja patrones especiales

El siguiente script Bash «Special_Pattern.sh» solicita al usuario que ingrese un número entre 5 y 9. Si la entrada está dentro de este rango, el script creará el patrón de puntos en dos etapas: patrón ascendente y patrón descendente.

El script utiliza bucles anidados para lograr esto, creando un patrón visualmente atractivo. Finalmente, se muestra un mensaje que indica que el soporte de Tecmint.com está disponible siempre que sea necesario.

#!/bin/bash

MAX_NO=0
echo -n "Enter a number between (5 to 9): "
read MAX_NO

if ! [ $MAX_NO -ge 5 -a $MAX_NO -le 9 ]; then
   echo "Please enter a number between 5 and 9. Try again."
   exit 1
fi

clear

for ((i=1; i<=MAX_NO; i++)); do
    for ((s=MAX_NO; s>=i; s--)); do
        echo -n " "
    done
    for ((j=1; j<=i; j++)); do
        echo -n " ."
    done
    echo ""
done

###### Second stage ######################

for ((i=MAX_NO; i>=1; i--)); do
    for ((s=i; s<=MAX_NO; s++)); do
        echo -n " "
    done
    for ((j=1; j<=i; j++)); do
        echo -n " ."
    done
    echo ""
done

echo -e "\n\n\t\t\t Whenever you need help, Tecmint.com is always there"

La mayoría de los anteriores'Palabras claveDebería resultarle familiar y gran parte se explica por sí mismo. Por ejemplo, 'máximo'Establecer el valor máximo de la variable,'para' es un bucle, cualquier cosa dentro del bucle se ejecuta repetidamente hasta que el bucle sea válido para el valor de entrada dado.

Script de patrón_especial

Si tiene algún conocimiento de cualquier lenguaje de programación, aprender el script anterior no es difícil, e incluso si es nuevo en informática, programación y Linux, no será mucho más difícil.

Guión 2: crear un guión de color

El script "Colorful.sh" es un script Bash diseñado para demostrar cómo utilizar Instituto Americano de Estándares Nacionales Códigos de escape utilizados para agregar color y efectos de formato a la salida de texto en la terminal.

Estos códigos de escape proporcionan una forma sencilla de mejorar el atractivo visual de scripts o programas basados ​​en terminales que muestran una variedad de estilos de texto, colores y colores de fondo, lo que permite a los usuarios probar diferentes combinaciones.

#!/bin/bash borrar eco -e "\e[1mHello World"    # bold effect
echo -e "\e[5mBlink"           # blink effect
echo -e "\e[0mHello World"      # back to normal
echo -e "\e[31mHello World"     # Red color
echo -e "\e[32mHello World"     # Green color
echo -e "\e[33mHello World"     # Yellow color
echo -e "\e[34mHello World"     # Blue color
echo -e "\e[35mHello World"     # Magenta color
echo -e "\e[36mHello World"     # Cyan color
echo -e "\e[0m"                 # back to normal
echo -e "\e[41mHello World"     # Red background
echo -e "\e[42mHello World"     # Green background
echo -e "\e[43mHello World"     # Yellow background
echo -e "\e[44mHello World"     # Blue background
echo -e "\e[45mHello World"     # Magenta background
echo -e "\e[46mHello World"     # Cyan background
echo -e "\e[0mHello World"      # back to normal
Creating Colorful Shell Script
Creating Colorful Shell Script

Script 3: Encrypt a File or Directory

The “Encrypt.sh” script is a Bash script designed to provide a simple interface for encrypting a file using the GnuPG (GPG) encryption tool.

The script welcomes the user and prompts them to enter the exact filename, including the extension, of the file or folder they want to encrypt. It then uses GPG to encrypt the specified file, displaying a success message afterward.

Additionally, the script removes the original unencrypted file for added security. Note that the script should be placed in the same directory as the file to be encrypted due to its current limitation.

#!/bin/bash
echo "Welcome! I am ready to encrypt a file/folder for you."
echo "Currently, I have a limitation. Please place me in the same folder where the file to be encrypted is located."
echo "Enter the exact file name with the extension."
read file;
gpg -c $file
echo "I have successfully encrypted the file..."
echo "Now, I will be removing the original file."
rm -rf $file

The command "gpg -c filename" is used to encrypt a file using GnuPG (GNU Privacy Guard) with symmetric encryption and the command "gpg -d filename.gpg > filename" is used to decrypt a GPG-encrypted file and save the decrypted content into a new file.

Encrypt File Script
Encrypt File Script

Script 4: Linux Server Monitor Script

The “Server-Health.sh” script is a Bash script designed to provide a comprehensive overview of the health and performance of a server.

When executed, the script gathers various system-related information and presents it in a structured format that includes uptime, currently connected users, disk and memory usage, list open ports, network connections, running processes, and system statistics.

#!/bin/bash
    date;
    echo "uptime:"
    uptime
    echo "Currently connected:"
    w
    echo "--------------------"
    echo "Last logins:"
    last -a |head -3
    echo "--------------------"
    echo "Disk and memory usage:"
    df -h | xargs | awk '{print "Free/total disk: " $11 " / " $9}'
    free -m | xargs | awk '{print "Free/total memory: " $17 " / " $8 " MB"}'
    echo "--------------------"
    start_log=`head -1 /var/log/messages |cut -c 1-12`
    oom=`grep -ci kill /var/log/messages`
    echo -n "OOM errors since $start_log :" $oom
    echo ""
    echo "--------------------"
    echo "Utilization and most expensive processes:"
    top -b |head -3
    echo
	top -b |head -10 |tail -4
    echo "--------------------"
    echo "Open TCP ports:"
    nmap -p- -T4 127.0.0.1
    echo "--------------------"
    echo "Current connections:"
    ss -s
    echo "--------------------"
    echo "processes:"
    ps auxf --width=200
    echo "--------------------"
    echo "vmstat:"
    vmstat 1 5
Linux Server Health Script
Linux Server Health Script

To redirect the output of the “Server-Health.sh” script to a file, you can use the following command:

./Server-Health.sh > server_health_report.txt

Script 5: Linux Disk Space Monitor Script

The “Check-Disk-Space.sh” script is designed to monitor disk space usage on a specified partition of a server. Configurable parameters include the maximum allowed disk space usage percentage (`MAX`), the email address for receiving alerts (`EMAIL`), and the target partition (`PARTITION`).

The script utilizes the df command to gather disk usage information and sends email alerts if the current usage exceeds the defined threshold.

#!/bin/bash

# Set the maximum allowed disk space usage percentage
MAX=90

# Set the email address to receive alerts
[email protected]

# Configure la partición a monitorear (correspondiente a los cambios, como /dev/sda1) PARTITION=/dev/sda1 # Obtenga el porcentaje de uso actual del disco y la información relacionada USAGE_INFO=$(df -h "$PARTITION" | awk 'NR = = 2 { print $5, $1, $2, $3, $4}' | tr '\n' ' ') USAGE=$(echo "$USAGE_INFO" | awk '{print int($1)}') # Elimina el porcentaje firmar si [ "$USAGE" -gt "$MAX" ]; luego # Enviar una alerta por correo electrónico con información detallada sobre el uso del disco echo -e "Advertencia: el uso de espacio en disco en $PARTITION es $USAGE%.\n\nInformación de uso del disco:\n$USAGE_INFO" | \ mail -s "Alerta de espacio en disco en $HOSTNAME" "$EMAIL" fi

No hay límites para los scripts y la programación; puedes implementar lo que quieras. Eso es todo por ahora. En mi próximo artículo, les presentaré algunos estilos de secuencias de comandos diferentes.

LEER  HTTrack - Desconecta cualquier sitio web

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba