Cómo crear copias de seguridad automatizadas de linux / unix

“Una puntada a tiempo ahorra nueve”, dice un viejo dicho. En el mundo de los ordenadores nos referimos a esa puntada como copias de seguridad. Cuando se ejecuta una infraestructura de TI de producción, es imperativo que logremos un tiempo de actividad en nuestros servidores y aplicaciones de lo más cercano a un cien por ciento de lo posible. Si bien hay un número de maneras de hacer sólida una infraestructura de TI, es imposible para que sea a prueba de fallos. Por lo tanto hacemos un plan B.

Los servidores están hechas de tres amplias capas - el hardware, el sistema operativo y las aplicaciones y los datos. En caso de un fallo de hardware es bastante simple para reemplazar la máquina por una nueva. La instalación del sistema operativo y las aplicaciones también son relativamente simples. La parte que es difícil de reemplazar son los datos y la configuración que utilizan sus aplicaciones. En caso de fallo esta es la parte que no puede ser reemplazado. Por lo que la copia de seguridad que los datos sobre una base regular. Lo respaldamos de manera tal que se convierte en fácil de recuperar en caso de emergencia.

Voy a guiarlo a través de la escritura de un guión para realizar copias de seguridad diarias en su sistema. Para este ejercicio voy a utilizar un servidor que ejecuta el servidor web Apache, un servidor de base de datos MySQL, y tiene un directorio en el /casa partición que contiene algunos datos que necesita ser respaldado. También vamos copia de seguridad del día anterior los registros de acceso de Apache en un directorio de copia de seguridad independiente. En primer lugar, tenemos que crear un directorio donde residirán nuestras copias de seguridad. Como parte del ejercicio He creado un directorio llamado APOYO sobre el /optar dividir. Vamos a organizar las copias de seguridad en este directorio para que cada copia de seguridad día reside en un directorio formado como esto - / Opt / BACKUP / año / mes / día /. Así que en el 11 de agosto de 2008, las copias de seguridad entrarán en / Opt / Copia de seguridad / 2008/08/11 /. Vamos a crear estos directorios. Ejecute el siguiente conjunto de comandos como raíz usuario.

# mkdir -p / opt / copia de seguridad / DATOS / 2008
# cd / opt / backup / DATOS / 2008
# mkdir 01 02 03 04 05 06 07 08 09 10 11 12
# cd / opt / backup / DATOS /
# -r cp 2008 2009
# cd / opt / copia de seguridad /
# cp -r DATOS DE REGISTRO

Ver nota abajo antes de emitir este último comando.

# chown -R calvin.calvin / opt / copia de seguridad

Ahora tenemos dos conjuntos de directorios de copia de seguridad - una para datos y otra para los archivos de registro. Con los directorios de copias de seguridad creadas ahora estamos listos para empezar a escribir el guión. Nota: Estoy usando el usuario Calvin en este artículo. Por favor cámbialo Calvin con su propio nombre de usuario.


################################################## #########
# Code begins here
################################################## #########

#! / Bin / bash

# Servidor de respaldo DATOS V1.0

#########################
# Configuración de copia
#########################

#configure el mes, fecha y día
AÑO = `date +”% Y”` # 2008
MES = `date +”% m”` # 11
DÍA = `date +”% d”` # 14
AYER = `date -date =” ayer”+% Y-% m-% d` # 2008-11-13
YESTERDAY_DATE = `date = -Fecha de ayer +% d` # 13
YESTERDAY_MONTH = `date = -Fecha de ayer +% m` # 11
YESTERDAY_YEAR = `-date fecha de ayer = +% y` # 2008
HOY = `date +% Y-% m-% d` # 2008-11-14
Today_date = `date +% d` # 14

# correspondientes a la copia de seguridad a
DATA_BACKUP_PARENT_DIR = / opt / copia de seguridad / DATOS / # lt; - Cambie esta su directorio de copia de seguridad de datos
LOG_BACKUP_PARENT_DIR = / opt / copia de seguridad / log / # lt; - Cambie esta su directorio de copia de seguridad del registro

Vídeo: Copias de seguridad automaticas en Ubuntu - Debian - Linux

Directorio raíz de documentos de Apache #
APACHE_DOCROOT = / var / www / html /

# Config base de datos MySQL
DB_IP ="localhost" # lt; - Cambie esto a la IP de su servidor de base de datos
DB_USER ="Calvin" # lt; - Cambie esto a su nombre de usuario de base de datos
DB_PASS ="calvin_password" # lt; - Cambie esto a su contraseña de base de datos
DB_NAME ="lista de clientes" # lt; - Cambie esto a su nombre de la base

# Apache Log Dir
APACHE_LOG_DIR ="/ Var / log / httpd /" # lt; - Cambie esto a los datos de la trayectoria de sus registros

# Archivos de aplicación Dir
APP_FILES ="/ Home / Calvin / application_files /" # lt; - Cambie esto a la ruta del directorio de datos

Vídeo: Hacer copias de seguridad (backups) en Ubuntu

# Config Dir
CONFIG_DIR ="/ Etc /" # lt; - Cambie esta en el directorio de datos de trayectoria

# Dirección de Mail
EMAIL_ID ="[email protected]" # lt; - Cambie esto a su ID de correo electrónico

################################################## #########
# COPIAS DE SEGURIDAD
################################################## #########

# Crear y entrar en el directorio de copia de seguridad
cd $ DATA_BACKUP_PARENT_DIR / AÑO $ / $ MES
mkdir $ DÍA
cd $ DÍA

# Copia de seguridad de base de datos
mysqldump -h $ {} DB_IP -u $ {} DB_USER -p $ {} $ {DB_PASS DB_NAME} gt; $ {} DB_NAME .db
tar -zcvf $ {} DB_NAME .tar.gz $ {} DB_NAME .db
rm -f $ {} DB_NAME .db

# / Etc copia de seguridad
tar -zcf etc.tar.gz / etc

# Copia de seguridad de aplicaciones
tar -zcf Apache_Doc_Root.tar.gz $ {} APACHE_DOCROOT
tar -zcf App_Files.tar.gz $ {} APP_FILES

################################################## #########
# BACKUP LOG
################################################## #########

# Crear y entrar en el directorio de copia de seguridad
cd $ LOG_BACKUP_PARENT_DIR / $ YESTERDAY_YEAR / $ YESTERDAY_MONTH
mkdir $ YESTERDAY_DATE
cd $ YESTERDAY_DATE

# HTTPD de registro de copia de seguridad
for i in $ {} APACHE_LOG_DIR / access_log $ {} AYER * -. hacer cp $ i .- hecho
para i en access_log $ {} AYER * -. hacer gzip $ i- hecho

################################################## #########
# Enviar notificaciones por correo
################################################## #########

# Correo notificar
du -shc $ DATA_BACKUP_PARENT_DIR / AÑO $ / $ MES / DIA $ / * | -S mail “Copia de seguridad de $ {hostname} :: DATOS hecho :)” $ {} EMAIL_ID
du -shc $ LOG_BACKUP_PARENT_DIR / $ YESTERDAY_YEAR / $ YESTERDAY_MONTH / $ YESTERDAY_DATE / * | -S mail “Copia de seguridad de $ {hostname} :: Entre hecho :)” $ {} EMAIL_ID

################################################## #########
# CÓDIGO TERMINA AQUÍ
################################################## #########

Guardar este script en un directorio como /home/calvin/scripts/backup.sh. Dar permisos de ejecución al archivo:

# chmod + x /home/calvin/scripts/backup.sh

Ahora ya está listo para salir. Ejecutar el script de forma que su línea de comandos:

Vídeo: Script sencillo para crear Backup del sistema Linux completo

# /home/calvin/scripts/backup.sh

También se pueden añadir opcionalmente este script como una tarea programada de forma que se ejecutará sobre una base diaria en un momento de su elección. Si desea ejecutar este script a las 4 AM todos los días hacer lo siguiente:

# crontab -e

Crear una nueva línea en el archivo que se abre y añadir lo siguiente:

0 4 * * * /home/calvin/scripts/backup.sh gt; / Dev / null

Hay que ir. Su servidor será ahora una copia de seguridad de datos, bases de datos, archivos de configuración, archivos de aplicaciones y archivos de registro / Opt / copia de seguridad todos los días a las 4 PM. Una cosa inteligente que hacer ahora sería para exportar estas copias de seguridad a una máquina remota para que no pierda sus copias de seguridad si el servidor se enfrenta a problemas. Vamos a cubrir cómo hacer eso en mi próximo artículo.

Artículos Relacionados