dilluns, 6 de juliol del 2009

Còpia de seguretat del sistema Linkat:

1.1- Còpia de directoris:

Directoris a tenir en compte:

/etc
/home
/srv/exports (conté els directoris P, S i T)
/srv/www/htdocs
/var/lib/named/master

Comanda a executar com a root:

rsync -avz --delete /DIRECTORI_ORIGEN/ /DIRECTORI_DESTI/

Cal recordar que la barra "/" que hi ha al final dels directoris fa que escopiï el contingut d'aquests directoris sense crear el directori pare.


1.2- Còpia de la base de dades ldap:

Nota: Cal tenir en compte que la base de dades ha d'estar en funcionament (podeu executar rcldap status)

Comanda a executar des del servidor Linkat 2:

ldapsearch -x -D "cn=Administrator,dc=intracentre" -w contrasenya_administrador > copia_ldap.ldif

Nota: cal canviar "contrasenya_administrador" pel valor real de lacontrasenya de l'administrador. El valor dc=intracentre s'ha d'adaptara la base de dades vostra (p.e. dc=intralinux).

Aquest fitxer copia_ldap.ldif s'ha d'editar amb un editor de text i comentar les línies finals següents:

search: 2
result: 0 Success

ja que no són cap comanda sinó que és informació que proporciona la comanda ldapsearch.

Així, les línies finals del fitxer ldif haurien de quedar de la forma següent:

# search result
#search: 2
#result: 0 Success

# numResponses: 492
# numEntries: 491


Per restaurar la còpia cal fer:

ldapadd -x -D "cn=Administrator,dc=intracentre" -w contrasenya_administrador -f copia_ldap.ldif -c

El paràmetre -c permet que, en cas que la comanda ldapadd trobi un error (p.e. un usuari duplicat), no s'aturi el procés de restauració de les dades.

1.3- Còpia de la base de dades MySQL:

Nota: Cal tenir en compte que la base de dades ha d'estar en funcionament (podeu executar rcmysql status)

mysqldump --opt --password=CONTRASENYA --user=USUARI BASE_DE_DADES > copia_mysql.sql

on:

USUARI: és l'usuari que té permisos per accedir a la base de dades BASE_DE_DADES (per fer còpies de seguretat es pot fer servir l'usuari root del sistema)

CONTRASENYA: és la contrasenya de l'usuari USUARI

BASE_DE_DADES: és el nom de la base de dades que es vol fer còpia

Finalment, la sortida de la comanda es redirigeix cap al fitxer copia_mysql.sql

Per restaurar la base de dades cal executar la comanda:

mysql --password=CONTRASENYA --user=USUARI BASE_DE_DADES <
copia_mysql.sql

2. Còpia de seguretat de MySQL i openLDAP (mètode alternatiu):

A banda dels mètodes exposats anteriorment, es pot fer una còpia de seguretat fent servir la comanda rsync. Per tal de fer les còpies de LDAP i MySQL cal ser root i tenir aquests serveis ATURATS. El procediment és el següent:

1) rcldap stop
2) rcmysql stop

Amb 1 i 2 s'aturen els serveis.

3) S'executa la comanda:

3.1) rsync -avz --delete /var/lib/ldap /DIRECTORI_DESTI/
3.2) rsync -avz --delete /var/lib/mysql /DIRECTORI_DESTI/

amb 3.1 i 3.2 es fan les copies de seguretat a DIRECTORI_DESTI, on DIRECTORI_DESTI ha de ser un directori ja existent, un disc extern, etc. En tot cas, es recomana que el dispositiu de còpia de seguretat tingui un sistema de fitxers ext3, reiserfs desaconsellant-se l'ús de sistemes de fitxers privatius.

3. Automatització de les còpies de seguretat: cò
pies de seguretat amb la comanda rsync:

#
##########################################
#!/bin/bash
# Script per fer còpies de seguretat amb la comanda rsync
# GPL 3.0
# Autor: Joan de Gracia
# Servidor servidor.intracentre 192.168.0.240
##########################################
#
DESTI=/backup/servidor
IP=192.168.0.240
# Copia del directori /home
rsync --delete --exclude "\.[a-zA-Z]*" --backup --backup-dir=$DESTI/copia-$(date +%A) -az /home $DESTI/copia-actual/
#
# Copia del directori /srv/exports/P
rsync --delete --backup --backup-dir=$DESTI/copia-$(date +%A) -az /srv/exports/P $DESTI/copia-actual/


#
# Copia de la base de dades LDAP
ldapsearch -x -D "cn=Administrator,dc=intracentre" -w lncentre > $DESTI/copia-actual/ldap/copia_ldap-$(date +%A).ldif
#
# Copia de la base de dades Moodle de MySQL
mysqldump --opt --password=lncentre --user=root moodle > $DESTI/copia-actual/moodle.sql


echo "Copia de seguretat del servidor.intracentre \($IP\) realitzada" $(date)



Funcionament del cron:

(Extret de: http://www.simplehelp.net/2008/11/17/increase-your-linuxunix-productivity-how-to-use-crontab/es/)


Linux y UNIX generalmente vienen con la utilidad "crontab" por defecto. Es muy útil ya que le permite programar tareas para ejecutarse en un plazo determinado y repetir como se configura.. Una tarea programada utilizando "crontab" se denomina una "tarea".

El comando crontab permite al servidor ejecutar un script en un determinado instante. Para ver qué tareas están configuradas, ejecute el comando siguiente:

# crontab -l


Si su máquina tiene algunos puestos de trabajo configurado cron se mostrará algo como lo siguiente:


0 6 * * * /opt/scripts/backup_script.sh


La configuración anterior mostra una tasca que executa l'script "backup_script.sh" cada dia a les 6 AM.


Configuración del fichero contrab:


0 6 * * * /opt/scripts/backup_script.sh 0 6 * * * / opt / scripts / backup_script.sh
| | | | |
| | | | |_____________Día de la semana (Domingo = 0)
| | | |______________Meses del año
| | |_______________Día del mes
| |________________Hora del día

|_________________Minutos de la hora


Para programar nuevos puestos de trabajo cron o editar los antiguos se puede ejecutar el siguiente comando:

# crontab -e

Se abrirá un editor con el que se puede agregar, editar o borrar tareas. Por ejemplo, para programar una tarea para que se ejecute a las 3:45 PM todos los lunes, se puede agregar una entrada com ésta:

45 15 * * 1 /opt/scripts/script.sh

También puede utilizar una coma para agregar múltiples entradas en un campo.Esto es útil si desea ejecutar un script de tres veces al día, con un intervalo de ocho horas. Asegúrese de no dejar espacio entre las entradas en un solo campo. Su "tarea" de entrada se vería así:


0 1,9,17 * 2,11 * /opt/scripts/db_backup_script.sh


En el ejemplo anterior la secuencia de comandos "db_backup_script.sh" se ejecuta al 1 º de AM, 9 AM y 5 PM todos los días en los meses defebrero y noviembre. Crontab no sólo comprende números, también puede funcionar con algunas palabras básicas:


@reboot Reiniciar una vez, la próxima vez que el sistema se reinicie
@yearly Ejecutar una vez al año, en el comienzo del año
@annually Igual que @yearly
@monthly Ejecutar una vez al mes, a principios del mes
@weekly Ejecutar una vez a la semana, al comienzo de la semana
@daily Ejecutar una vez al día, a la medianoche
@midnight Similar a @daily
@hourly Ejecutar una vez por hora, en el comienzo de la hora

Así, por ejemplo, si desea ejecutar un script a la medianoche todas las noches, esto es lo que su configuración crontab se vería como:

@midnight /opt/scripts/script.sh

1 comentari:

  1. Bon dia Joan

    He estat provant el que posa l'apartat 1.1 per poder fer copies de seguretat del servidor d'un centre, en un disc dur extern que tenen, i no me'n surto.

    Em pots donar un cop de ma?

    Gracies

    ResponElimina