www.freniche.com

Linux, Computers and other stuff

¡ESTE SITIO WEB YA NO ESTA ACTUALIZADO!

Los últimos posts están en http:/blog.freniche.com/

Por favor, actualiza tus enlaces y perdona las molestias.

 »www.freniche.com »Proyectos »Scripts »Backup-system.sh

Backup-system

Este script lo utilizo para realizar copias de seguridad completas de algunas carpetas de mis máquinas. La lista de las carpetas que quiero copiar se indican en un fichero que debe llamarse BACKUP-SYSTEM.CONFIG y que debe estar en la misma carpeta donde instaleis el script backup-system.sh.

Instrucciones de instalación

Recuerda que antes de utilizar cualquier script que te bajes de Internet debes hacer varias cosas:

1. Leertelo bien para comprobar que no hace cosas raras ni es dañino (en mi caso te puedes fiar de mi palabra :-) )

2. Activar los permisos de ejecución mediante un chmod a+x script.sh

3. Cambiar a root, si el script así lo necesita (en este caso, si vas a copiar /etc por ejemplo SI lo necesitas)

4. Ejecutarlo mediante ./backup-system.sh

5. Enviarme un correo si encuentras problemas o quieres enviarme dinero que te sobre.

El código del script:

#!/bin/bash

# backup-system.sh: a small script to automate full backups

# it needs a file name BACKUP-SYSTEM.CONFIG in the same directory where this

# shellscript resides

 

source util.sh

source BACKUP-SYSTEM.CONFIG

#read_parameter BACKUP-SYSTEM.CONFIG DEST_DIR

#read_parameter BACKUP-SYSTEM.CONFIG BACKUPDIRS

 

CURR_DATE=`current_date`

 

 

echo "backup-system.sh will start in 20 sec."

echo "It will back-up:"

echo $BACKUPDIRS

echo "to destination dir:"

echo $DEST_DIR

echo "Press Ctrl+C to cancel or wait to start"

sleep 20

 

# STEP 1: compress all stuff

 

for path in $BACKUPDIRS

do

NOSLASH_PATH=`echo $path | sed -e 'y/\//-/'`

NOSLASH_PATH=$CURR_DATE-$NOSLASH_PATH

echo "System backup on $path"

tar cvf $DEST_DIR/$NOSLASH_PATH.tar $path 1>$DEST_DIR/$NOSLASH_PATH.log

echo "System backup on $path finished, details on $DEST_DIR/$NOSLASH_PATH.log"

sleep 2

done

 

# STEP 2: verify tars

 

echo "System backups complete, status: $?"

echo "Now verifying system backups"

 

for path in $BACKUPDIRS

do

NOSLASH_PATH=`echo $path | sed -e 'y/\//-/'`

NOSLASH_PATH=$CURR_DATE-$NOSLASH_PATH

echo "Verifying $path...." >> $DEST_DIR/$NOSLASH_PATH.log

echo "Verifying $path...."

tar tf $DEST_DIR/$NOSLASH_PATH.tar 1>>$DEST_DIR/$NOSLASH_PATH.log

if [ $? -eq 0 ]

then echo "$path: verified"

else echo "$path: error(s) in verify"

fi

done

 

# STEP 3: compress and verify compressed files

 

for path in $BACKUPDIRS

do

NOSLASH_PATH=`echo $path | sed -e 'y/\//-/'`

NOSLASH_PATH=$CURR_DATE-$NOSLASH_PATH

echo "Compressing $path...."

echo "Verifying $path...."

gzip -v $DEST_DIR/$NOSLASH_PATH.tar 1>/dev/null

gzip -t $DEST_DIR/$NOSLASH_PATH.tar.gz 1>/dev/null

if [ $? -eq 0 ]

then echo "$path: verified"

else echo "$path: error(s) in verify" 1>&2

fi

done

 

echo "Please remove backup tape"

 

 

Un ejemplo de fichero de configuración (BACKUP-SYSTEM.CONFIG)

# the various dirs to backup

BACKUPDIRS="/etc /root /boot /home/dfreniche/evolution /home/dfreniche/Documentos /home/dfreniche/webs /usr/local \

/var/lib/mysql"

# without trailing slash

DEST_DIR=/mnt/einstein-public/backup

 

Descárgatelo

backup-system.sh

1.8 K

BACKUP-SYSTEM.CONFIG

230

Última actualización: 17 / Feb / 2006