BASCH – Paso de multiples argumentos a un script.-

En este ejemplo se muestra como procesar multiples argumentos pasados a un scripts Bash.

Al ejecutarlo, obtendremos el siguiente resultado : (bash ejemplo.sh uno dos tres cuatro cinco)

Publicado en Unix - Linux | Deja un comentario

BASH – Aplicar una acción A o B en función del contenido de un fichero de texto.-

Para aplicar una acción u otra en función de una determinada circunstancia tendremos que usar un condicional if. Imaginemos que tenemos un fichero opciones.txt y tiene el siguiente contenido:

Ahora queremos que si una de las líneas del fichero contiene la palabra blanco la terminal nos de como resultado 1. En el caso que el fichero de texto no disponga de la palabra blanco entonces queremos que nos devuelva 0. Para conseguir nuestro propósito podemos usar el siguiente comando:

y el resultado obtenido será:

Si ahora borramos la palabra blanco del fichero opciones.txt y volvemos a ejecutar el comando:

El resultado será el siguiente:

Nótese que en este ejemplo usamos grep con la opción -x. La opción -x hace que grep solo considere las líneas cuyo contenido completo sea la palabra blanco.

Publicado en Unix - Linux | Deja un comentario

BASH – Obtener direcciones IP desde un archivo.

Y obtendremos el siguiente resultado:

En el resaltado de color se muestra el contenido definido por nuestra expresión regular. En nuestro caso la expresión regular define 4 cifras entre el 0 y el 9, separadas por puntos. Cada una de las cifras entre el 0 y el 9 está separada puntos y podrá tener 1, 2 o 3 caracteres.

Si queremos que la salida del comando solo muestre las IP omitiendo las palabras localhost y gk55 podemos usar la opción -o. De este modo grep solo mostrará la cadena de texto o palabra de cada una de las líneas que coincide con nuestro criterio de búsqueda. Por lo tanto si ejecutamos el siguiente comando:

Obtendremos el siguiente resultado:

Publicado en Unix - Linux | Deja un comentario

Script BASH – Array asociativo para contabilizar la cantidad de errores por tipo desde un archivo de LOG.

En este ejemplo, se utiliza un array asociativo en bash (errores) para contabilizar la cantidad de errores por tipo desde un archivo de log ($archivo_log). El archivo de log se lee línea por línea utilizando un bucle while y el comando read, y luego se utiliza el comando cut para extraer el tipo de error de cada línea, asumiendo que los errores están separados por dos puntos («:») en el archivo de log. Luego, se incrementa la cuenta de errores en el array asociativo utilizando la sintaxis errores["$tipo_error"]++.

Finalmente, se muestra el resultado en la salida, iterando sobre las claves del array asociativo ("${!errores[@]}") y mostrando el tipo de error y la cantidad de errores correspondiente utilizando la sintaxis ${errores[$tipo_error]}.

Publicado en Unix - Linux | Deja un comentario

Script BASH – Respaldo incremental de directorio.

En este ejemplo, se utiliza el comando rsync para realizar un respaldo incremental del directorio de origen ($directorio_origen) al directorio de destino ($directorio_destino). El respaldo se realiza utilizando las opciones -a para mantener los atributos y permisos, --delete para eliminar archivos en el directorio de destino que ya no existen en el directorio de origen, y --backup para crear copias de seguridad de los archivos modificados o eliminados.

Además, se utiliza la opción --backup-dir para especificar el directorio de destino donde se guardarán las copias de seguridad de los archivos modificados o eliminados, utilizando la fecha actual en el nombre del directorio ($directorio_destino$fecha_actual) para hacer que el respaldo sea incremental.

La información del respaldo se registra en un archivo de registro ($archivo_log) que incluye la fecha del respaldo, los directorios de origen y destino, y el directorio de destino donde se guardaron las copias de seguridad.

Publicado en Unix - Linux | Deja un comentario