CÓMO HABILITAR EL MODO DE DEPURACIÓN DE SECUENCIAS DE COMANDOS DE LA SHELL EN LINUX

bash-148836_640Os dejo este interesante y útil post que he traducido de la fuente original, la cual podéis visitar en el siguiente enlace:

http://www.tecmint.com/enable-shell-debug-mode-linux/

y que trata sobre las diversas opciones de depuración de fallos (Debuggin) de las que disponemos a la hora de programar un script de SHELL. Podemos decir que el siguiente articulo nos da las pautas a seguir a la hora de iniciarnos en la programación SHELL dando uso de las buenas practicas. Esto nos facilitará la detección de errores en nuestros scripts y sus correspondientes correcciones.

 

Un script es simplemente una lista de comandos almacenados en un archivo. En lugar de ejecutar una secuencia de comandos escribiéndolos uno a uno todo el tiempo en el terminal, un usuario del sistema puede almacenar todos ellos (comandos) en un archivo y repetidamente invocar dicho archivo para volver a ejecutar los comandos varias veces.

Mientras aprendemos a programar scripts o durante las primeras etapas de aprendizaje, comenzamos normalmente escribiendo éstos, con unas pocas líneas de comandos, o sea un pequeño script nada complejo. Y normalmente depuramos tales scripts solo mirando su salida en el interprete de comandos y asegurándonos de que funcionen como queríamos.

Sin embargo, a medida que empezamos a escribir secuencias de comandos muy largas y avanzadas con múltiples líneas, por ejemplo scripts que modifican la configuración del sistema, realizan copias de seguridad críticas sobre redes y muchos más, nos daremos cuenta de que sólo mirar la salida de un script no es suficiente para encontrar errores en ellos.

Por lo tanto, vamos a ver varias formas a través de las cuales podremos habilitar la depuración de scripts de shell.

 

Cómo iniciar un script

Un script se distingue de otros archivos por su primera línea, que contiene un #! (She-bang – define el tipo de archivo) y un nombre de ruta (path to interpreter) que informa al sistema que el archivo es una colección de comandos que serán interpretados por el programa especificado (intérprete).

A continuación se presentan ejemplos de las «primeras líneas» en diferentes tipos de scripts:

foto-1

Cómo ejecutar una secuencia de comandos de Shell en Linux

La sintaxis convencional para invocar una secuencia de comandos de shell es:

foto-2

Otra forma posible es especificar claramente el shell que ejecutará el script, como se muestra a continuación:

foto-3

Por ejemplo:

foto-4

Para los scripts que no tienen el “She-bang” #! en la primera línea y sólo contienen comandos básicos del sistema, como el siguiente:

foto-5

Basta con hacerlo ejecutable y correrlo de la siguiente manera:

foto-6

Métodos para habilitar el modo de depuración de secuencias de comandos en la Shell

A continuación se muestran las principales opciones o parámetros de depuración de una secuencia de comandos:

-v (short for verbose) – le dice a la shell que muestre todas las líneas de un script mientras se leen, activa el modo verboso o detallado, paso por paso.

-n (abreviatura de noexec o no ecxecution) – instruye a la shell a leer todos los comandos, sin embargo no los ejecuta. Esta opción activa el modo de comprobación de sintaxis.

-x (abreviatura de xtrace o rastreo de ejecución): indica a la shell que muestre todos los comandos y sus argumentos en el terminal mientras se ejecutan. Esta opción activa el modo de rastreo de la shell.

  1. Modificación de la primera línea de una secuencia de comandos de Shell

El primer mecanismo es alterando la primera línea del script como se indica a continuación, esto permitirá la depuración de todo el script.

foto-7

Según la forma de la foto anterior, la opción puede ser una o una combinación de las opciones o parámetros de depuración anteriormente citados.

  1. Invocar la Shell con opciones de depuración

El segundo es invocando la shell con las opciones de depuración de la siguiente manera, este método también activará la depuración de todo el script.

foto-8

Por ejemplo:

foto-9

  1. Usando el comando interno (built-in) set de la Shell

El tercer método es mediante el comando interno (built-in) “set” para depurar una sección determinada de un script, como una función por ejemplo. Este mecanismo es importante, ya que nos permite activar la depuración en cualquier segmento de un script de shell.

Podemos activar el modo de depuración utilizando el comando set como se muestra en la siguiente captura, donde option es cualquiera de las opciones de depuración.

foto-10

Para habilitar el modo de depuración, usaremos:

foto-11

Y para deshabilitar el modo de depuración, usaremos:

foto-12

Además, si hemos habilitado varios modos de depuración en diferentes segmentos de una secuencia de comandos de shell, podemos desactivar todos ellos a la vez de la siguiente manera:

foto-13

Como hemos visto, podemos depurar un script de shell completo o una sección particular del mismo.

 

En el siguiente post de esta serie, cubriremos cómo utilizar las opciones de depuración explicando los modos “verbose”, “syntax checking” y el “shell tracing debugging” con ejemplos. Espero que os haya resultado de utilidad tanto a los que se inician como a los que tienen experiencia y buscaban información al respecto.

 

Podéis ver el siguiente post de esta serie, en inglés, en su fuente original. Os dejo el enlace a la web:

http://www.tecmint.com/check-syntax-in-shell-script/

¿CUÁL ES EL PRECIO QUE PAGAMOS POR USAR LAS NUEVAS TECNOLOGÍAS?

privacy_surveillance

Últimamente no he tenido mucho tiempo para publicar nuevos post, por lo que en esta nueva entrada simplemente os dejaré el enlace a una interesante conferencia publicada en www.ted.com por el ponente Mikko Hypponen, experto en seguridad informática, en la cual nos habla sobre el estado de vigilancia constante al que estamos expuestos los usuarios finales de las Nuevas Tecnologías por parte de los gobiernos y las grandes corporaciones.

Mikko Hypponen es jefe de investigación de la empresa Finlandesa F-secure, experto en seguridad informática con una extensa experiencia a sus espaldas. En esta conferencia de Ted Talks nos muestra como nuestros datos son recopilados sin que sepamos e incluso ni nos cuestionemos como los gobiernos y las grandes corporaciones rastrean nuestra información personal. Una forma impune de asaltar nuestra privacidad en aras de mantener al conjunto de la sociedad «libre» y «segura» de los ataques terroristas y posibles amenazas.

Probablemente, si alguno de vosotros ha tenido el placer de leer el famoso libro de George Orwell «1984» encuentre ciertas similitudes entre la sociedad en la que vivimos actualmente y la que expone este visionario escritor adelantado a su tiempo. Sin más, os dejo el enlace a la conferencia de Mikko Hypponen que no tiene desperdicio alguno, espero que la disfrutéis y os haga reflexionar……

 

 

ALMACENAMIENTO, INTRODUCCIÓN Y TERMINOLOGÍA

serverIntroducción:

NOTA: El siguiente articulo es un extracto y traducción del website:

http://whatis.techtarget.com/glossary/Storage-area-network-SAN

En este post, vamos a tratar el tema de almacenamiento a nivel básico, introduciremos los principales conceptos, arquitecturas, tecnologías más usadas, etc. Este articulo pretende ser también un glosario de términos referente a dichos medios, tales como:

SAN, NAS, DAS, NFS, SMB, CIFS, “Fibre Channel”, HBA, “Switch Fabric”, iSCSI, IQN, MPIO, LUN, “Switch Zoning”, “LUN Masking”, WWN, WWNN, WWPN, FCIP, iFCP.

Por consiguiente intentaremos explicar, qué son y qué significa cada una de estas terminologías.

 

Arquitecturas de Almacenamiento:

Empezaremos con los términos DAS (“Direct Attached Storage”), NAS (“Network Attached Storage”), y SAN (“Storage Area Network”), sus ventajas e inconvenientes, diferencias y similitudes, así como su relación con otros conceptos y tecnologías (SCSI, “Fibre Channel”, RAID, NFS ó “Network File System”, CIFS ó “Common Internet File System”, iSCSI, MPIO, “SecurePath”, “LUN Masking”, “Zoning”, etc). Sigue leyendo

CONFIGURACIÓN BÁSICA DE HP BLADESYSTEMS

HP-LOGOIntroducción

En este post vamos a mostrar las opciones de configuración de los servidores “HP Bladesystems”, un sistema de servidores con una serie de características peculiares que los hacen idóneos para entornos reducidos y de bajo consumo y que simplifican bastante el tema del cableado estructurado, así como la gestión de un número considerable de servidores ya sean virtualizados o no.

Existen diferentes modelos de “Blades” en el mercado tanto para el “enclosure” c7000 como para el c3000. La gestión y configuración de estos sistemas la podemos realizar desde su “OA” conocida también como “HP Onboard Administrator”, ésta, es la consola de gestión de todo el chasis (enclosure) y del resto de componentes o elementos que lo conforman (blades, fuentes de alimentación, ventiladores, switches, etc).

 

intro-1intro-3intro-5

Podemos decir que un “HP Bladesystems” consta de una estructura o cajón (llamado enclosure) en la cual podemos ubicar los servidores (blades). El número de “blades” puede oscilar entre 8 y 16 dependiendo del modelo, todo en sí dispone de la posibilidad de redundancia y es bastante compacto, a diferencia de los servidores en formato “rack”. Disponemos de varias fuentes de alimentación que suministran corriente al chasis de forma global (no individualmente a cada blade), así como los ventiladores para mantener refrigerado el entorno. Estos ventiladores son configurables en todo momento, así como las fuentes de alimentación y demás componentes. Sigue leyendo

INTRODUCCIÓN A VAGRANT, CÓMO INSTALAR “LAMP” EN CENTOS 7

vagrantEl siguiente post es un extracto y traducción de la pagina de documentación de Vagrant:

https://docs.vagrantup.com/v2/

El tutorial está escrito usando el siguiente entorno para el “LAB”:

 

  • Hardware: Portátil MacBook Pro.
  • Sistema Operativo: Mac OS X Snow Leopard 10.6.8.
  • Vagrant versión 1.7.4
  • VirtualBOX versión 4.3.28
  • Box de CentOS 7

 

¿Qué es Vagrant?

“Vagrant” es un software que te ayuda a crear y gestionar “entornos virtuales”, por el cual puedes ejecutar una imagen de una distribución de “GNU/Linux” o cualquier otro Sistema Operativo (MS Windows, BSD, etc.), llamada “box” dentro de tu sistema anfitrión y ejecutar una aplicación y sus dependencias fácilmente en el interior de la misma. También te permite empaquetar la máquina configurada y compartirla con los demás, o simplemente compartir tus archivos de configuración y replicar el mismo entorno en diferentes máquinas. Vamos a ver un poco de la terminología antes de empezar: Sigue leyendo

“DNSMASQ”, UN SENCILLO SERVIDOR DNS

dnsmasqNOTA: En la primera parte de este post se explica en líneas generales que es un servidor DNS y la configuración de DNSMASQ, al final del post he añadido capturas de cada uno de los pasos realizados en este “LAB”. El material necesario para realizar el entorno ha sido:

 

 

  • Máquina Host MacBook Pro con VirtualBOX instalado.

  • Máquina virtual con Opensuse y dos tarjetas de red en modo “bridge” y “red interna” (192.168.1.200 y 172.16.0.1) respectivamente, en la que he instalado DNSMASQ (haciendo de servidor DNS y servidor DHCP).

  • Máquina virtual con Fedora y tarjeta de red en modo “red interna” (cesión IP 172.16.0.78) haciendo de cliente DNS y cliente DHCP.

Sigue leyendo

INTRODUCCIÓN A LAS COPIAS DE SEGURIDAD

database-backup-cd-512Definición

Una copia de seguridad, copia de respaldo o backup (su nombre en inglés) en tecnologías de la información e informática es una copia de los datos originales que se realiza con el fin de disponer de un medio para recuperarlos en caso de su pérdida. Las copias de seguridad son útiles ante distintos eventos y usos: recuperar los sistemas informáticos y los datos de una catástrofe informática, natural o ataque; restaurar una pequeña cantidad de archivos que pueden haberse eliminado accidentalmente, corrompido, infectado por un virus informático u otras causas. Sigue leyendo

CÓMO INSTALAR Y CONFIGURAR OPENLDAP EN GNU/LINUX

database-openldap¿Qué es OpenLDAP?

OpenLDAP es una implementación libre de código abierto del protocolo “Lightweight Directory Access Protocol” (LDAP) y está liberada bajo su propia licencia “OpenLDAP Public License”. En si mismo, LDAP es un protocolo de comunicación independiente de la plataforma, muchas distribuciones GNU/Linux incluyen el software OpenLDAP, aunque también corre bajo BSD, AIX, HP-UX, Mac OS X, Oracle Solaris y Microsoft Windows.

El proyecto OpenLDAP se inició en 1998 por Kurt Zeilenga. Comenzó como un clon de la implementación LDAP de la “Universidad de Michigan”, entidad donde se desarrolló originalmente el protocolo y que actualmente sigue trabajando en la evolución del mismo.

En pocas palabras, si en nuestra red disponemos de un servidor LDAP, bastará con crear las cuentas de usuario y grupos en nuestro servidor para que los clientes puedan hacer uso del sistema y de sus servicios desde cualquier puesto de la red. Por lo tanto, es un sistema ideal para centralizar la administración de usuarios en un único lugar. Sigue leyendo

CÓMO INSTALAR Y CONFIGURAR APACHE WEB SERVER EN GNU/LINUX II

apache-logo¿Qué es LAMP?

LAMP es el acrónimo usado para describir un conjunto de subsistemas de infraestructura, con el fin de alcanzar una solución global de intranet/internet para configurar sitios web dinámicos que usa las siguientes herramientas:

 

 

  • GNU/Linux, el sistema operativo.
  • Apache, el servidor web.
  • MySQL/MariaDB, el gestor de bases de datos.
  • PHP (Perl ó Python) el lenguaje de programación.

Sigue leyendo

CÓMO INSTALAR Y CONFIGURAR APACHE WEB SERVER EN GNU/LINUX I

apache-logo¿Qué es Apache web server?

Es un servidor web de código abierto, para plataformas Unix (BSD, GNU/Linux, etc.), Microsoft Windows, Macintosh y otras, que implementa el protocolo HTTP/1.1 y la noción de sitio virtual. Cuando comenzó su desarrollo en 1995 se basó inicialmente en el código del popular NCSA HTTPd 1.3 (Servidor web desarrollado originalmente en el National Center for Supercomputing Applications), pero más tarde fue reescrito casi por completo.

Este servidor web es una de las aplicaciones más conocidas del mundo GNU/Linux además de ser el más implantado entre los distintos servidores que ofertan servicios web en Internet. Sigue leyendo