Backup con tar y cron

Imagen de jriosa
0 puntos

Hola my idea es intentar hacer una copia de seguridad del perfil del usuario de Windows de una máquina con Windows XP y Ubuntu Hardy.

Tengo un script el cual ejecuto desde mi usuario de ubuntu, que hace lo siguiente

Monta la partición de Windows
Usa tar para compactar y comrimir y lo envía a una carpeta

Cuando lo ejecuta un usuario de ubuntu, esto funciona bien y genera el fichero destino.

Cuando lo automatizo en el cron y este se ejecuta, mo me mete en el fichero resultante las carpetas que contiene acentos, por ejemplo Configuración Local, o Mi música, así que supongo que no monto bien la partición windows o hay un problema con la codificación de caracteres.

Os adjunto mi script


#!/bin/bash
export TERM=xterm
#Para ver cuando se ejecuta el script
Ruta="/home/jra/Documentos/Backup/PC073.txt"
fecha=$(/bin/date +%d/%m/%Y)
horaInicio=$(/bin/date +%H:%M:%S)
echo "$fecha $horaInicio;$USERNAME;Inicio" >>$Ruta

#Montar el destino (La carpeta destino debe existir en la máquina donde se ejecuta)

#montar el disco de windows
#mount -t ntfs-3g /dev/hda1 /media/windows #PAra esccritura...
#(La carpeta destino debe existir en la máquina donde se ejecuta)
mount -t ntfs -o ro /dev/sda1 /home/jra/Windows

#Borrar los ficheros que hay en la carpeta (No se pide confirmación)
/bin/rm -f /home/jra/PC073/pc073*

#COmpactar y comprimir a la carpeta destino
tar czvf /home/jra/PC073/pc073.tar.gz /home/jra/Windows/Documents\ and\ Settings/jra/*

fecha=$(/bin/date +%d/%m/%Y)
horaInicio=$(/bin/date +%H:%M:%S)
echo "$fecha $horaInicio;$USERNAME;Final" >>$Ruta

#Apagar la máquina
#/sbin/halt

¿Alguna idea de como puedo hacer que tar me haga backup de las carpetas con acentos desde el cron?

Un saludo, Julio.

Imagen de Julio09
+1
0
-1

Que programa se puede utilizar para hacer Backup de maquinas windows, en ubuntu.

+1
0
-1
Imagen de Obmar
+1
0
-1

Hola jriosa,

Te adjunto el script que me hice para las copias de seguridad. Lo lanzo desde el cron y también lo he utilizado para hacer copias de maquinas windows únicamente deberías añadir alguna linea para que te monte el disco windows.

#!/bin/bash

##################################
# Script Backups 7 dias semana en disco backup
#
# Copia incremental de los 7 dias de la semana almacenados en
# SubDirectorios con el nombre del dia (Lunes,Martes,...)
#
##################################

##################################
# Opciones de configuracion
##################################

LANG="es_ES.ISO-8859-1"
SUPPORTED="es_ES:es"
SYSFONT="lat0-sun16"

# Directorio que queremos respaldar.
BDIR=/home/

# Dispositivo que queremos montar
MOUNT_DEVICE=/dev/sda

# Ruta de montaje del disco Backup
MOUNT_DEST=/backups

# Archivo log
LOG_PATH=$MOUNT_DEST/datos/logs
LOG_NAME=$LOG_PATH/log`date +%H`

# Destino del backup
BACKUPDIR=$MOUNT_DEST/datos/`date +%H`

# Destino archivos eliminados
DELETEDFILESDIR=$MOUNT_DEST/datos/deletedfiles

# Archivo que contiene los directorios que se excluiran de la copia.
EXCLUDES=$MOUNT_DEST/datos/.excludes

# Opciones del comando rsync.
# --backup-dir=$DELETEDFILESDIR
# Podemos añadir -z para que comprima los archivos.
OPTS="--force --group --perms --times --links --archive --verbose --backup --delete-excluded --exclude-from=$EXCLUDES"

#########################################
# Script (Comprobaciones)
#########################################
export PATH=$PATH:/bin:/usr/bin:/usr/local/bin

# Comprobamos que el usuario es ROOT
if (( `/usr/bin/id -u` != 0 )); then { echo "Lo siento, debes ser root. Saliendo..."; exit; } fi;

# Montamos el dispositivo para lectura-escritura o abortar
[ -d $MOUNT_DEST ] || mkdir $MOUNT_DEST
mount -o remount,rw $MOUNT_DEVICE $MOUNT_DEST -t ext3 -f
if (( $? )); then { echo "Backup: no se pudo montar $MOUNT_DEST para lectura-escritura"; exit; } fi;

# Comprobamos que existe el directorio de logs.
[ -d $LOG_PATH ] || mkdir $LOG_PATH

#########################################
# Script (Copia de seguridad)
#########################################
echo "-----------------------------------------------------------------------" > $LOG_NAME
echo "---INICIO COPIA DE SEGURIDAD `date +%A`" >> $LOG_NAME
date >> $LOG_NAME
echo "-----------------------------------------------------------------------" >> $LOG_NAME

# creamos la copia.
rsync $OPTS $BDIR $BACKUPDIR >> $LOG_NAME

echo "-----------------------------------------------------------------------" >> $LOG_NAME
echo "-- FIN COPIA DE SEGURIDAD `date +%A` ">> $LOG_NAME
date >> $LOG_NAME
echo "-----------------------------------------------------------------------" >> $LOG_NAME

# Montamos el dispositivo para solo lectura
mount -o remount,ro $MOUNT_DEVICE $MOUNT_DEST -t ext3 -f
if (( $? )); then { echo "Backup: no se pudo montar $MOUNT_DEST para solo lectura"; exit; } fi;

Espero te sirva.
Saludos

+1
0
-1
Imagen de dmarron
+1
0
-1

Creo que el problema inicial (si ejecutas el script a mano te funciona, y en el cron no lo hace bien) es el de las variables de entorno. Sospecho que es el lenguaje.

Lo mas facil, es añadir todas las variables del entorno al inicio del script.

si te fijas, el script del rsync si tiene definidas algunas variables.

+1
0
-1