Com crear automatitzat Linux / Unix, les còpies de seguretat

on November 18, 2008 per Sukrit Dhandhania el 18 de novembre de 2008

Linux

"Una puntada a temps estalvia nou", és un vell refrany. En el món de la informàtica ens referim a que com a punt de còpies de seguretat. Quan s'executa una infraestructura de tecnologies de producció, és imprescindible que aconseguim un temps d'activitat en els nostres servidors i aplicacions de les quals prop d'un cent per cent com sigui possible. Si bé hi ha una sèrie de maneres de fer una sòlida infraestructura de TI, és impossible fer la prova de fracàs. Per tant, fer un pla B.

Els servidors són de tres capes - el maquinari, el sistema operatiu i aplicacions, i les dades. En el cas d'una fallada del maquinari és força simple per reemplaçar la màquina per una nova. Instal lació del sistema operatiu i les aplicacions també són relativament simples. La part que és difícil de substituir les dades i és que la seva configuració que utilitzen les aplicacions. En cas que no es tracta de la part que no pot ser substituït. Per tant, que les dades de còpia de seguretat sobre una base regular. Ens còpia de seguretat de tal manera que es converteix en fàcil de recuperar en cas d'emergència.

Els vaig a guiar a través de l'escriptura d'un script per tenir còpies de seguretat diàries en el sistema. Per a aquest exercici vaig a usar un servidor que executa el servidor web Apache, un servidor de base de dades MySQL, i té un directori a la partició / home que conté algunes dades que ha de ser recolzat. També la còpia de seguretat del dia anterior, els registres d'accés d'Apache en un directori de còpia de seguretat. En primer lloc, hem de crear un directori on les còpies de seguretat residirà. Com a part de l'exercici que he creat un directori anomenat còpia de seguretat de la / opt partició. Anem a organitzar les còpies de seguretat en aquest directori per a que cada dia de còpia de seguretat resideixi en un directori format com aquest - / opt / backup / ANY / MES / DATA /. Per tant, el 11 d'agost de 2008, les còpies de seguretat anirà en / opt/BACKUP/2008/08/11 /. Anem a crear aquests directoris. Executeu el següent conjunt de comandaments com a usuari root.

# Mkdir-p / opt/backup/DATA/2008
# Cd / opt/backup/DATA/2008
# Mkdir 01 02 03 04 05 06 07 08 09 10 11 12
# Cd / opt / backup / data /
# Cp-r 2008 2009
# Cd / opt / backup /
# Cp-r REGISTRE DE DADES

Vegeu la nota a continuació abans de l'expedició d'aquest últim comanda.

# Chown-R calvin.calvin / opt / còpia de seguretat

Ara tenim dos conjunts de còpia de seguretat de directoris - un per dades i un altre per als fitxers de registre. Amb les còpies de seguretat directoris creats ara estem a punt per començar a escriure el guió. Nota: estic usant l'usuari Calvin al llarg d'aquest article. Si us plau, Calvin substituir amb el seu propi nom d'usuari.


################################################## #########
# CODI COMENÇA AQUÍ
################################################## #########

#! / Bin / bash

SERVIDOR DE DADES # BACKUP V1.0

#########################
# CONFIG BACKUP
#########################

# Configure al mes, data i dia
ANY = `date +% Y" `# 2008
MES = `date +"% m "# 11"
DIA = `date +"% d "# 14"
AHIR = `date-date =" ahir "+% Y-% m-% d` # 2008.11.13
YESTERDAY_DATE = `date-date =% d + ahir» # 13
YESTERDAY_MONTH = `date-date = ahir + m%» # 11
YESTERDAY_YEAR = `date-data d'ahir = +% Y` # 2008
AVUI = `date +% Y-% m-% d` # 2008.11.14
TODAY_DATE = `date +% d` # 14

# Directoris de còpia de seguretat
DATA_BACKUP_PARENT_DIR = / opt / backup / data / # <- Canvieu aquesta còpia de seguretat de les seves dades dir
LOG_BACKUP_PARENT_DIR = / opt / backup / log / # <- aquest canvi de registre de còpia de seguretat de la seva dir

# Directori arrel de documents d'Apache
APACHE_DOCROOT = / var / www / html /

# Base de dades de configuració de MySQL
DB_IP = "localhost" # <- Canvieu això a la IP del seu servidor de base de dades
DB_USER = "Calvin" # <- Canvieu això a la seva base de dades d'usuari
DB_PASS = "calvin_password" # <- Canvieu això a la seva base de dades de la contrasenya
Db_name = "clientlist" # <- Canvieu això al seu nom de base de dades

# Apache Registrar Dir
APACHE_LOG_DIR = "/ var / log / httpd /" # <- Canviar la ruta d'accés a les dades dels seus registres

# Arxius d'aplicació "Dir
APP_FILES = "/ home / Calvin / application_files /" # <- Canvieu això a la ruta d'accés del directori de dades

# Configuració de la Directiva
Config_dir = "/ etc /" # <- Canviar la ruta d'accés a aquest directori de dades

Informe de l'adreça de correu #
EMAIL_ID = "you@youremailid.com" # <- Canvieu això al seu e-mail ID

################################################## #########
# Còpia de seguretat de dades
################################################## #########

# Crear còpia de seguretat i entrar en el directori
cd $ DATA_BACKUP_PARENT_DIR / ANY $ / $ MES
$ Mkdir DIA
cd $ DIA

# Base de dades de còpia de seguretat
mysqldump-h $ () DB_IP-o $ () DB_USER-p $ (DB_PASS) ($ db_name)> $ () db_name. db
tar-zcvf $ () db_name. tar.gz $ () db_name. db
rm-f $ () db_name. db

# / Etc còpia de seguretat
tar-zcf etc.tar.gz / etc

Sol licitud de còpia de seguretat #
tar-zcf Apache_Doc_Root.tar.gz $ () APACHE_DOCROOT
tar-zcf App_Files.tar.gz $ () APP_FILES

################################################## #########
# REGISTRE DE BACKUP
################################################## #########

# Crear còpia de seguretat i entrar en el directori
LOG_BACKUP_PARENT_DIR $ cd / $ YESTERDAY_YEAR / $ YESTERDAY_MONTH
mkdir $ YESTERDAY_DATE
cd $ YESTERDAY_DATE

# Httpd registre de còpia de seguretat
i $ (a) APACHE_LOG_DIR / access_log. $ (AHIR) *; fer cp $ i.; fer
i en el access_log. $ (AHIR) *; fer gzip $ i; fer

################################################## #########
# Envia notificacions de correu
################################################## #########

# Correu notificar
du-SHC DATA_BACKUP_PARENT_DIR $ / any $ / $ MES / $ DIA / * | mail-s "Còpia de seguretat de $ (HOSTNAME):: DADES fet:)" $ () EMAIL_ID
du-SHC LOG_BACKUP_PARENT_DIR $ / $ YESTERDAY_YEAR / $ YESTERDAY_MONTH / $ YESTERDAY_DATE / * | mail-s "Còpia de seguretat de $ (HOSTNAME):: REGISTRE fet:)" $ () EMAIL_ID

################################################## #########
# CODI acaba aquí
################################################## #########

Desa aquest script en un directori com a / home / Calvin / scripts / backup.sh. Executable donar permisos per a l'arxiu:

# Chmod + x / home / Calvin / scripts / backup.sh

Ara ja està fet. Executar l'script de la seva línia de comandes:

# / Home / Calvin / scripts / backup.sh

Opcionalment, també pot afegir aquesta seqüència com una tasca cron perquè es durà a terme en el dia a dia en un moment de la seva elecció. Si voleu executar aquesta seqüència de comandaments a les 4 AM diari fer el següent:

# Crontab-e

Crear una nova línia a l'arxiu que s'obre i afegir el text següent:

0 4 * * * / home / Calvin / scripts / backup.sh> / dev / null

Això és. Ara el servidor de còpia de seguretat de les seves dades, bases de dades, arxius de configuració, arxius d'aplicacions i arxius de registre a / opt / còpia de seguretat tots els dies a les 4 AM. Una cosa intel ligent a fer ara seria per exportar aquestes còpies de seguretat a una màquina remota perquè no perdin les seves còpies de seguretat si s'enfronta a problemes del seu servidor. Anem a cobrir la forma de fer això en el meu següent article.

Llocs relacionats:
  • Sistema de recuperació de Windows XP Característiques
  • Augment de Linux/Unix................................................ Productivitat: Com utilitzar crontab
  • Com descarregar arxius des de la línia de comandaments de Linux
  • Walkthrough: Time Machine de OS X 10.5 Leopard
  • Com fer còpia de seguretat dels vostres arxius a un compte Dreamhost (OS X)
  • Get Simple Ajuda tutorials com aquest a la teva safata d'entrada cada dia - per lliure! Només cal que introdueixis la teva adreça de correu electrònic a continuació:

    Sempre pot optar per sortir d'aquest missatge de correu electrònic de subscripció en qualsevol moment.


    Guardar i Compartir

    1 comment… read it below or (1 comentari ... llegir a continuació o afegir un )

    1 Alberto 12.09.08 a les 5:56 am

    Hola
    Estic provant l'script, però he d'errors amb les línies:

    AHIR = `date-date =" ahir "+% Y-% m-% d` # 2008.11.13
    YESTERDAY_DATE = `date-date =% d + ahir» # 13
    YESTERDAY_MONTH = `date-date = ahir + m%» # 11
    YESTERDAY_YEAR = `date-data d'ahir = +% Y` # 2008

    L'error que he és amb l'exemple:

    AHIR mysystem # = `date. =. Data d'ahir. +% Y-% m-% d `# 2008.11.13
    data: extra operador `+% Y-% m-% d '
    Proveu `date-help 'per a més informació

    He provat en: Ubuntu Linux 7.04

    Gràcies (i bon treball!)

    Deixa'ns el teu comentari

    Vostè pot utilitzar aquestes etiquetes HTML i atributs: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>