BASH – Creador de directorios con bash scripting.-

Lo que queremos hacer es lo siguiente, primero comprobar si el directorio que nosotros indicamos ya existe, y si existe obviamente no lo vamos a crear, pero vamos a informar al usuario de que ya existe, con un texto personalizado. En caso contrario, si este directorio no existe, vamos a crearlo.

Como es una buena práctica controlar los procesos para saber si han funcionado bien o no, crearemos un mensaje personalizado para que el usuario tenga más información. Para ello evaluaremos si la ejecución anterior ha ido bien o mal, indicando al usuario con un texto personalizado si el directorio se ha creado con éxito o no.

[crayon-686663f5c2591262049214/]
Publicado en Unix - Linux | Deja un comentario

LINUX – Comando cp de Linux. Un par de trucos útiles.-

El comando cp en GNU/Linux sirve para copiar un archivo o carpeta trabajando en la línea de comandos. Pero esconde muchas opciones.

[crayon-686663f5c2e53728046469/]

A la opción ya conocida de -r (recursive) para que copie la carpeta Fotos_movil y todo el contenido de la misma, hemos añadido la opción -u (“update“) para que actualice el contenido en la carpeta destino y sólo copie aquellas fotos o datos que no estuvieran ya en el destino. Y con la opción -v (“verbose“) el comando muestra en pantalla las tareas que va realizando.

[crayon-686663f5c2e5f531093652/]

Imaginemos que estamos trabajando en un archivo llamado texto.md y lo estamos modificando, pero queremos tener una copia de seguridad o backup, de los distintos archivos antes de ir modificándolos, es aquí cuando el comando cp hace su magia.

En el comando lo que hacemos es copiar el mismo archivo encima de sí mismo. Esto con el comando cp no se puede hacer, pero en este caso especial queremos que sea así por tanto forzamos al comando que lo haga con la opción –force

La opción –backup=numbered le dice al comando que quiero hacer un backup del archivo indicado, y que las sucesivas copias de seguridad que haga quiero que estén numeradas consecutivamente. La primera será la 1, la segunda la 2, etc…

Ahora modificamos nuestro archivo texto.md una vez guardado volvemos a ejecutar el comando anterior para tener un nuevo archivo de respaldo. Si listamos los archivos que tenemos en nuestro equipo con el comando ls veremos que tenemos algo similar a esto:

[crayon-686663f5c2e65719158360/]
Publicado en Unix - Linux | Deja un comentario

BASH – Ejecutar comando remoto mediante SSH sin Password (EXPECT).-

Estamos acostumbrados a ejecutar comando en nuestra maquina local de manera sencilla. Esto también se hace sencillo utilizando la herramienta EXPECT, a continuación unos pequeños ejemplos de uso :

[crayon-686663f5c3088575061674/]

Le damos permisos de jecución : chmod +x execute.sh y ya podremos utilizarlo : ./execute.sh “ls -l” Con esto te mostrara el listado del servidor en donde hayas lanzado el comando. Otros ejemplos para bajar o subir archivos a un servidor mediante el comando SCP :

[crayon-686663f5c3094677687507/]
[crayon-686663f5c3099212651769/]
Publicado en Unix - Linux | Deja un comentario

Comando Source: evitando la creación de subprocesos en Bash.-

Cuando se ejecuta desde una shell un comando o un script, se crea un subproceso (proceso hijo) de la shell que ejecuta el comando o el script (proceso padre).
Si el script que ejecuta el proceso hijo crea o modifica alguna variable de entorno, esos cambios o variables desaparecen cuando finaliza el comando o script.

Si deseamos que dichos cambios permanezcan, podemos utilizar el comando de Bash source. Este comando hace que el proceso o comando se ejecute sin crear ningún proceso hijo, de forma que los cambios efectuados en las variables de entorno y demás, se mantengan al finalizar el archivo.

Veamos el uso del comando source de Bash con un ejemplo.
Tenemos creado el script ejemplo_source.sh, que contiene el siguiente código:

[crayon-686663f5c329e720439454/]

Al Ejecutarlo obtenemos :

Después de la ejecución del SCRIPT tratamos de ver el valor que tiene la variable, veremos que esta vacía. Pero si el SCRIPT lo ejecutamos con el comando SOURCE, el valor lo mantendrá, ya que no crea procesos HIJOS, sino que lo ejecuta en el mismo entorno.-

Publicado en Unix - Linux | Deja un comentario

BASH – Dirección HERE DOCUMENT, perfecta para generar código adicional.-

En ocasiones pasa desapercibida ya que no se suele mencionar demasiado en las guías de scripting o se hace una pasada muy superficial sobre las posibilidades que ofrece. Especialmente en los casos en los que hay que “volcar” código adicional desde scripts en bash hacia otros scripts o ficheros. Afortunadamente, gracias a las redirecciones  Here Document/Here-script esta tarea se hace bastante más llevadera. Muy útil en la generación de SCRIPTS y presentar los resultados via WEB.

Vamos a ver un ejemplo muy sencillo de script en bash en el que generamos un HTML a base de “echo” y haciendo redirecciones al fichero html_example.html:

[crayon-686663f5c347e642042008/]

Al ejecutar el script obtendríamos:

[crayon-686663f5c3488026139446/]

Publicado en Unix - Linux | Deja un comentario