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.
Tabla de Contenidos
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.
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
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.
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
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.