Ver Mensaje Individual
Sacar copia de seguridad de carpeta compartida en samba
  #1  
Antiguo 07-feb-2012, 23:30
Avatar de UnderUp
UnderUp UnderUp está desconectado
Miembro Junior
 
Fecha de Ingreso: 27-agosto-2008
Ubicación: Chincha - Peru
Versión: openSUSE 12.3 64bits
Mensajes: 422
Agradecimientos: 6
Agradecido 34 Veces en 31 Mensajes
Poder de Credibilidad: 10
UnderUp está en el buen camino
Enviar un mensaje por MSN a UnderUp
Smile Sacar copia de seguridad de carpeta compartida en samba

Hola amigos del foro.

En esta oportunidad les paso un scritp que elabore para realizar copias de seguridad de carpetas compartidas desde equipos Windows hacia un server en Linux.

Weno, les comento el caso.
En una red heterogenea (Equipos windows y equipos openSUSE); el disco duro de uno de los equipos windows se malogro, con la consiguiente perdida de los datos de la misma (Mea culpa que no prepare copias de seguridad de la misma).

Ante esta situacion surge la necesidad de realizar copias de seguridad de los datos de equipos de la red.

Las comparticiones en la red heterogenea es usando el ptrotocola samba. Contamos con un equipo que hace de servidor con Centos.
Asi que el plan es hacer que el equipos centos se conecta usando samba a los clientes e ir copiando las carpetas de datos (Previamente compartidas en modo solo lectura y bajo contraseña).

Al archivo lo nombre [BackUpClienteSamba_resguardo.sh]

El archivo debera ser ejecutado desde el equipo que hara de servidor (linux).
Lo que hace el script es (Desde el servidor linux):
1) Verificar si el equipo windows esta en linea.
2) Si esta en linea, se conecta usando los datos del usuario.
3) Entrar en la carpeta compartida y extraer todos los datos de la misma en n archivo tar
4) Luego comprime el archivo generado y lo guarda todo en una ruta del equipo linux.

El nombre del archivo generado lleva la fecha y hora de generacion.

He aqui el script elaborado (Lo pueden ajustar segun su necesidad)

Código:
#!/bin/bash
#inicializo variables necesarias para ejecutar el proceso
vNameHost="NombreHostEquipoOrigen"
vCarpetaCompartida="NombreCarpetaCompartidaEnEquipoOrigen"
vNameUser="NombreUsuarioEnEquipoOrigen"
vPassword="ContraseniaDeUsuarioEnEquipoOrigen"
vFecha=$(date +%Y.%m.%d_%H.%M)
vRutaDestino="/home/administrador/Desktop/BackUpClientesSamba"
vNameFile="/BackUp_resguardo_$vFecha.tar"

nCont=1
#realizo la operacion 3 veces para asegurarme que no hubo error en alguna recepcion de paquetes
while [ $nCont -le 3 ]; do
  ping $vNameHost -c 1
  if [ $? -ne 1 ]; then
    #el host esta en linea y procedo a realizar la copia de seguridad
    smbtar -s $vNameHost -x $vCarpetaCompartida -u $vNameUser -p $vPassword -t $vRutaDestino$vNameFile
    bzip2 $vRutaDestino$vNameFile
    #elimino las copias mas antiguas a 45 dias
    find $vRutaDestino/*.tar* -mtime +45 -exec rm {} \;
    #me aseguro de que el bucle ya no vuelva a ejecutarse
    nCont=4
  fi
  let nCont=$nCont+1
done
Pueden programar para que las copias se ejecuten automaticamente de forma programada usando cron.

Si tuvieran alguna duda respecto al mismo, por favor comentar.

Espero les sea de utilidad.
__________________
Laptop HP dv5-2133la [AMD Phenom II N640 2.9GHz / 4GB DDR3 RAM / ATI Radeon HD 4250 / 500GB 7200rpm HD]
Responder Citando