Mostrando entradas con la etiqueta Programación. Mostrar todas las entradas
Mostrando entradas con la etiqueta Programación. Mostrar todas las entradas

martes, 11 de agosto de 2009

Script "Hola Mundo" en Bash

OK, estoy tratando de aprender a progamar en bash... aunque no es un lenguaje de programación, o lo es pero a un altísimo nivel; algunos lo consideran adecuado para aprender algunos conceptos básicos de la programación. Veamos el ejemplo:
#!/bin/bash
CAD="Hola Mundo"
echo $CAD

Vemos en este pequeño codigo tres elementos. La primer linea de codigo contiene la información del interprete (lo mismo sucede cuando programamos scripts en algún otro lenguaje interpretado, simplemente necesitamos indicarle al SO que interprete debe usar)

En segundo lugar, observamos la declaración de la variable CAD. Esto es algo que aprendi hace poco: un programa encesita variables que van cambiando de estado, antes que nada, uno declara las variables que el programa va a usar (como las dim en Basic?).

En tercer lugar hacemos algo con las variables declaradas, es el programa en si. Lo que hacemos en este caso es imprimir (con echo) la variable CAD declarada anteriormente.

El mismo resultado se ubiese obtenido con:
#!/bin/bash#!/bin/bash
echo"Hola Mundo"

Pero se perdería el concepto de programación antes descripto.

Recordad que para ejecutar el script se utiliza "./script.sh" (ojo, antes darle permiso de ejecución.


Nota:
Aunque en linux las extensiones de archivo no son necesarias para el SO, quizas sea una buena idea para el usuario.

El siguiente ejemplo es un script para realizar una copia de seguridad:
#!/bin/bash
OF=/var/mi-backup-$(date +%Y%m%d).tgz
tar -cZf $OF /home/yo/

Ya nos vamos familiarizandonos con la estructura verdad?. La variable OF es un nombre de archivo, que varía según la fecha actual. Luego se utiliza el comando tar para comprimir el home del usuario (no es TAN bueno backupear todo el home... pero...) con el nombre de la variable, es decir, la fecha en que se realiza el Back Up.

jueves, 14 de mayo de 2009

Shell Scripts

Se trata de agrupar comandos de consola dentro de un archivo para ejecutarlos secuencialmente. El archivo se convierte en un comando que ejecuta los comandos contenidos en el mismo. De hecho, la consola provee un lenguaje de programación versátil y poderoso; ya que contiene estructuras similares a las que se encuentran en otros lenguages de programación como loops o condicionales. Por lo que, estructurando la secuencia de ejecucion de ciertos comandos dentro de un archivo y dandole permisos de ejecución (con chmod) podemos crear programas para casi cualquier proposito.
Para crear un Shell Script, primero hay que crear un archivo de texto con los comandos en la secuencia que le daríamos si los estuvieramos typeando en la consola. Podemos usar cualquier editor de texto plano. Como gedit en Gnome, o alguno directamente desde la consola: como Nano, Vim o Emacs. En mi caso en particular, me gusta trabajar desde la consola, por lo que estoy aprendiendo a utilizar el editor de texto estructurado Vim, con el objetivo de pasarme a Emacs.
Como ejemplo, crearemos un Shell Script que busque errores en el log del servidor Apache y reporte la cantidad de errores por tipo (las lineas que proceden al simbolo # son comentarios, y no afectan la secuencia del programa).
Con un editor de texto creamos un archivo y lo llamamos "logapchk.sh", dentro de el escribimos lo siguiente:

#!/bin/sh
# La primer linea indica el shell que estamos utilizando.
#
# Este Shell Script busca en el log del apache y genera un reporte
#
# Imprime un mensaje en la salida estandar para informar a
# quien ejecute el programa
que es lo que estamos haciendo

echo "Buscando errores en Apache log ..."
echo ""

# Usamos el comando "grep" para contar (-c) la cantidad de
# lineas que contienen

# la palabra buscada y guardamos el resultado como una variable.

notice='grep -c notice /var/log/apache/error.log'
warning='grep -c warning /var/log/apache/error.log'
error='grep -c error /var/log/apache/error.log'

# damos salida a la pantalla

echo "Cantidad de notices " $notice
echo "Cantidad de warnings "$warning
echo "Cantidad de errores "$error

Luego de crear este archivo le damos permiso de ejecución con

$ chmod u+x logapchk.sh

Ejecutamos el archivo con:

$ logapchk.sh

y deberia aparecer algo como:

Buscando errores en Apache log ...

Cantidad de notices 3
Cantidad de warnings 6
Cantidad de errores 12