source: installer/opengnsys_export.sh @ 0768c71

918-git-images-111dID-1020_logrotateBugID-1037_Mostrar.TipoDisco.WebID-1038_Muestra.el.numero.de.ordenadoresID-1039_Asignar_Disco.Particion.Imagen.AccesoRemotoID-824_Iniciar.Sistema.Restauradoconfigfiledevel-ogadmserver-for-masterdisk-imagemainmaster-1037opengnsys-1.1.1dprepjlinkqndtest
Last change on this file since 0768c71 was 89f88ba, checked in by Irina Gómez <irinagomez@…>, 5 years ago

#802 The installation, import and export scripts considers the PXE files for UEFI.

  • Property mode set to 100755
File size: 3.7 KB
Line 
1#!/bin/bash
2#         exportclient str_backupfile
3#@file    exportclient
4#@brief   Exporta los clientes de un archivo de backup: dhcp, pxe, páginas de inicio y configuración de la consola.
5#@param 1 str_backupfile fichero de backup (creado con exportclient)
6#@exception 1 Error de formato.
7#@exception 2 Sólo ejecutable por usuario root.
8#@exception 3 Sin acceso a la configuración de OpenGnsys.
9#@exception 4 No existe el directorio de backup.
10#@exception 5 Es necesario instalar el comando realpath.
11#@warning This script uses "realpath" command.
12#@version 1.1.0 - Versión inicial.
13#@author  Irina Gómez - ETSII Univ. Sevilla
14#@date    2016-10-18
15#@version 1.1.0 - Cambia cómo se exporta la base de datos para permitir importar en versiones posteriores.
16#@note    Incompatible con versiones de opengnsys_import.sh anteriores a esta fecha.
17#@date    2018-02-14
18#*/ ##
19
20# Variables globales.
21PROG="$(basename $0)"
22
23OPENGNSYS="/opt/opengnsys"
24TMPDIR=/tmp
25MYSQLFILE="$TMPDIR/ogAdmBD.sql"
26BACKUPPREFIX="opengnsys_export"
27
28# Si se solicita, mostrar ayuda.
29if [ "$*" == "help" ]; then
30    echo -e "$PROG: Exporta los datos de OpenGnsys desde un archivo de backup:" \
31           " dhcp, pxe, páginas de inicio y configuración de la consola.\n" \
32           "    Formato: $PROG backup_file\n" \
33           "    Ejemplo: $PROG backup.tgz"
34    exit
35fi
36
37# Comprobar parámetros.
38# Comprobamos número de parámetros
39if [ $# -ne 1 ]; then
40    echo "$PROG: ERROR: Error de formato: $PROG backup_file"
41    exit 1
42fi
43
44if [ "$USER" != "root" ]; then
45    echo "$PROG: Error: solo ejecutable por root." >&2
46    exit 2
47fi
48
49# Comprobamos que esté instalado el comando realpath
50if ! which realpath &>/dev/null ; then
51    echo "Need to install \"realpath\"."
52    exit 5
53fi
54
55# Comprobamos  acceso a ficheros de configuración
56if ! [ -r $OPENGNSYS/etc/ogAdmServer.cfg ]; then
57    echo "$PROG: ERROR: Sin acceso a la configuración de OpenGnsys." | tee -a $FILESAL
58    exit 3
59fi
60
61# Comprobamos que exista el directorio para el archivo de backup
62BACKUPDIR=$(realpath $(dirname $1) 2>/dev/null)
63[ $? -ne 0 ] && echo "$PROG: Error: No existe el directorio para el archivo de backup" && exit 4
64BACKUPFILE="$BACKUPDIR/$(basename $1)"
65
66# DHCP
67for DIR in /etc/dhcp /etc/dhcp3; do
68    [ -r $DIR/dhcpd.conf ] && DHCPDIR=$DIR
69done
70
71# Exportar la base de datos
72echo "Exportamos la información de la base de datos."
73source $OPENGNSYS/etc/ogAdmServer.cfg
74# Crear fichero temporal de acceso a la BD
75MYCNF=$(mktemp /tmp/.my.cnf.XXXXX)
76chmod 600 $MYCNF
77trap "rm -f $MYCNF $MYSQLFILE $TMPDIR/IPSERVER.txt" 1 2 3 6 9 15
78cat << EOT > $MYCNF
79[client]
80user=$USUARIO
81password=$PASSWORD
82EOT
83
84mysqldump --defaults-extra-file=$MYCNF --opt $CATALOG > $MYSQLFILE
85
86# Borrar fichero temporal
87rm -f $MYCNF
88
89# IP SERVIDOR
90echo $ServidorAdm > $TMPDIR/IPSERVER.txt
91
92# Si existe ya archivo de backup lo renombramos
93[ -r $BACKUPFILE ] && mv $BACKUPFILE $BACKUPFILE-$(date +%Y%M%d)
94
95# Empaquetamos los ficheros
96echo "Creamos un archivo comprimido con los datos: $BACKUPFILE."
97tar -cvzf $BACKUPFILE --transform="s!^!$BACKUPPREFIX/!" \
98          -C $(dirname $MYSQLFILE) $(basename $MYSQLFILE) \
99          -C $TMPDIR IPSERVER.txt \
100          -C $DHCPDIR dhcpd.conf \
101          -C $OPENGNSYS/tftpboot menu.lst \
102          -C $OPENGNSYS/tftpboot grub \
103          -C $OPENGNSYS/doc VERSION.json \
104          -C $OPENGNSYS/client/etc engine.cfg engine.json \
105          -C $OPENGNSYS/www menus \
106          -C /etc default/opengnsys &>/dev/null
107
108# Cambio permisos: sólo puede leerlo el root
109chmod 600 $BACKUPFILE
110
111# Borrar ficheros temporales
112rm -f $MYSQLFILE $TMPDIR/IPSERVER.txt
113
114echo -e "\nNo conveniente situar el fichero de backup dentro de /opt/opengnsys" \
115        "\n    ya que se borrará si desinstala OpenGnsys." 
Note: See TracBrowser for help on using the repository browser.