jueves, 15 de noviembre de 2018

bash en modo debug

Bash permite la ejecución de shell scripts bastante potentes. A menudo, este es un recurso muy utilizado por administradores de sistemas para labores de lo más variadas.
A todo el mundo el ocurre en alguna ocasión que un script no hace lo que debería, falla en algún punto y a pesar de revisar el código una y otra vez no se ve el punto de fallo.
Llegados a esta situación, es el momento de añadir comentarios a lo largo del código para intentar acotar el segmento donde se produce el fallo. Un echo dentro del if y otro en el else, para ver por dónde pasa. Y uno más en el bucle para ver las repeticiones que se producen.
Una vez encontrada y corregida la errata, a buscar todos los comentarios que se insertadon para eliminarlos.
Hay un método mucho más fácil para seguir la pista a la ejecución de un script y ver así cuál es su punto de fallo.

lunes, 12 de noviembre de 2018

Manipulación de ficheros que empiezan con un guión

En esta ocasión vamos a ver el tratamiento que hay que dar a los ficheros cuyo nombre comienza con un guión, dado que las técnicas habituales de uso de caracteres de escape para no tratar los caracteres especiales no funcionan.
Veamos un ejemplo clásico:
$ echo "HOLA" > tm?p
$ rm tm\?p
rm: remove regular file 'tm?p'?
Como se observa, el caracter “?” es considerado como un caracter especial, y para referirse a él como un simple caracter y no como un símbolo especial, hay que usar el caracter de escape “\” antecediéndolo.
Sin embargo, esto no ocurre si el nombre del fichero comienza con un guión intermedio:
$ echo "HOLA" > -tmp
$ rm -tmp
rm: invalid option -- 't'
Try 'rm ./-tmp' to remove the file '-tmp'.
Try 'rm --help' for more information.
$ rm \-tmp
rm: invalid option -- 't'
Try 'rm ./-tmp' to remove the file '-tmp'.
Try 'rm --help' for more information.
$ rm "-tmp"
rm: invalid option -- 't'
Try 'rm ./-tmp' to remove the file '-tmp'.
Try 'rm --help' for more information.
Los errores mostrados indican que el comando usado (rm en este caso, pero puede ser otro cualquiera) considera el guión como el comienzo de un parámetro.
Vamos a ver dos métodos para referirnos a los ficheros que comienzan con un guión.

jueves, 8 de noviembre de 2018

Usos del comando hostname

A continuación vamos a ver algunos usos útiles que se le puede dar al comando hostname de Linux para obtener información sobre la configuración de red del equipo:

Conocer el nombre del equipo

Este es el uso habitual que se le suele dar a este comando: conocer el hostname de la máquina en la que estamos.
$ hostname
myserver
Adicionalmente, se puede usar el parámetro -s, de short, para conocer el nombre del equipo, o lo que es lo mismo, la primera parte del nombre FQDN.
$ hostname -s
myserver
Conocer el dominio DNS del equipo
Para obtener el nombre del dominio DNS configurado en el equipo, habrá que usar el parámetro -d:
$ hostname -d
example.com

Conocer el nombre FQDN del equipo

​El FQDN (Fully Qualified Domain Name) de un equipo está formado por su hostname y el nombre de dominio. La forma de conocer este dato es la siguiente:
$ hostname -f
myserver.example.com