Hoy:

3 may 2011

Script: directorios

Alguna vez he necesitado asegurarme de la existencia de un directorio (alguna vez se realizan "limpiezas" inesperadas), y si no existe: crearlo inmediatamente. ¿Cómo desarrollarlo en un script?, muy fácil, y se puede adaptar a bastantes opciones según nuestras necesidades, en este caso lo muestro como ejemplo para una copia de seguridad.
Ejemplo:
#----------------------------------------------------------------------------------------------------------------------------------
#!/bin/sh
#Colocamos la variable DIA para determinar el día de la semana en que estamos:
#Ni qué decir que  date +%A  es el nombre completo del día de la semana,
#comprobadlo escribiendo en un terminal:  date +%A
DIA=`date +%A`
#Y empezamos mirando si existe el directorio de destino
#que corresponde al día de la semana
if ! [ -d  /media/rsync/semana/$DIA/ ];
then
#Si no existe, lo creamos y hacemos la copia de seguridad (sincronizamos con rsync)
mkdir -p   /media/rsync/semana/$DIA/
rsync  -azv  /home/pepe/tmp/datos/   /media/rsync/semana/$DIA/
#Si ya existe, realizamos la copia del día y ya está.
else
if  [ -d  /media/rsync/semana/$DIA/ ];
then
rsync  -azv  /home/pepe/tmp/datos/   /media/rsync/semana/$DIA/
fi
fi
#----------------------------------------------------------------------------------------------------------------------------------

Vamos a deternos en algunos puntos importantes:

1- La expresión  if !  indica una negación (por el signo de admiración hacia abajo):  "si no es verdad..."
2 - Lo que va entre llaves:  -d   indica "el directorio..."
3 - Y todo junto: "Si el directorio especificado no existe...hacer tal cosa"

Se puede complicar un poco más, pero por ahora ya va bien para investigar.