source: installer/opengnsys_export.sh @ f49cb88

918-git-images-111dconfigfileconfigure-oglivegit-imageslgromero-new-oglivemainmaint-cronmount-efivarfsmultivmmultivm-ogboot-installerogClonningEngineogboot-installer-jenkinsoglive-ipv6test-python-scriptsticket-301ticket-50ticket-50-oldticket-577ticket-585ticket-611ticket-612ticket-693ticket-700ubu24tplunification2use-local-agent-oglivevarios-instalacionwebconsole3
Last change on this file since f49cb88 was ae41ee8, checked in by irina <irinagomez@…>, 9 years ago

#755 Scripts para exportar e importar los datos de OpenGnsys

git-svn-id: https://opengnsys.es/svn/branches/version1.1@5042 a21b9725-9963-47de-94b9-378ad31fedc9

  • Property mode set to 100755
File size: 3.4 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#@version 1.1.0 - Versión inicial.
11#@author  Irina Gómez - ETSII Univ. Sevilla
12#@date    2016-10-18
13#*/ ##
14
15# Variables globales.
16PROG="$(basename $0)"
17
18TMPDIR=/tmp/opengnsys_export
19OPENGNSYS="/opt/opengnsys"
20MYSQLFILE="$TMPDIR/ogAdmBD.sql"
21MYSQLFILE2="$TMPDIR/usuarios.sql"
22
23# Si se solicita, mostrar ayuda.
24if [ "$*" == "help" ]; then
25    echo -e "$PROG: Exporta los datos de OpenGnsys desde un archivo de backup:" \
26           " dhcp, pxe, páginas de inicio y configuración de la consola.\n" \
27           "    Formato: $PROG backup_file\n" \
28           "    Ejemplo: $PROG backup.tgz"
29    exit
30fi
31
32# Comprobar parámetros.
33# Comprobamos número de parámetros
34if [ $# -ne 1 ]; then
35    echo "$PROG: ERROR: Error de formato: $PROG backup_file"
36    exit 1
37fi
38
39if [ "$USER" != "root" ]; then
40    echo "$PROG: Error: solo ejecutable por root." >&2
41    exit 2
42fi
43
44# Comprobamos  acceso a ficheros de configuración
45if ! [ -r $OPENGNSYS/etc/ogAdmServer.cfg ]; then
46    echo "$PROG: ERROR: Sin acceso a la configuración de OpenGnSys." | tee -a $FILESAL
47    exit 3
48fi
49
50# Comprobamos que exista el directorio para el archivo de backup
51BACKUPDIR=$(realpath $(dirname $1) 2>/dev/null)
52! [ $? -eq 0 ] && echo  "$PROG: Error: No existe el directorio para el archivo de backup" && exit 4
53BACKUPFILE="$BACKUPDIR/$(basename $1)"
54
55# Si existe el directorio auxiliar lo borramos
56[ -d $TMPDIR ] && rm -rf $TMPDIR
57
58# Creamos directorio auxiliar
59echo "Creamos directorio auxiliar."
60mkdir -p $TMPDIR
61chmod 700 $TMPDIR
62
63# Información de la versión
64echo "Información de la versión."
65cp $OPENGNSYS/doc/VERSION.txt $TMPDIR
66
67# DHCP
68echo "Copiamos Configuración del dhcp."
69for DHCPCFGDIR in /etc/dhcp /etc/dhcp3; do
70    [ -r $DHCPCFGDIR/dhcpd.conf ] && cp $DHCPCFGDIR/dhcpd.conf $TMPDIR
71done
72
73# TFTPBOOT
74echo "Guardamos los ficheros PXE de los clientes."
75cp -r $OPENGNSYS/tftpboot/menu.lst $TMPDIR
76
77# Configuración de los clientes
78echo "Guardamos la configuración de los clientes."
79cp $OPENGNSYS/client/etc/engine.cfg $TMPDIR
80
81# Páginas de inicio
82echo "Guardamos las páginas de inicio."
83cp -r $OPENGNSYS/www/menus $TMPDIR
84
85# MYSQL: Excluimos las tablas del servidor de administración (entornos) y repositorios
86echo "Exportamos la información de la base de datos."
87source $OPENGNSYS/etc/ogAdmServer.cfg
88mysqldump --opt -u $USUARIO -p$PASSWORD $CATALOG \
89          --ignore-table=${CATALOG}.entornos \
90          --ignore-table=${CATALOG}.repositorios \
91          --ignore-table=${CATALOG}.usuarios > $MYSQLFILE
92# Tabla usuario
93mysqldump --opt --no-create-info -u $USUARIO -p$PASSWORD $CATALOG usuarios > $MYSQLFILE2
94
95# IP SERVIDOR
96echo $ServidorAdm > $TMPDIR/IPSERVER.txt
97
98# Si existe ya archivo de blackup lo renombramos
99[ -r $BACKUPFILE ] && mv $BACKUPFILE $BACKUPFILE-$(date +%Y%M%d)
100
101# Empaquetamos los ficheros
102echo "Creamos un archivo comprimido con los datos: $BACKUPFILE."
103cd /tmp
104tar -czvf $BACKUPFILE ${TMPDIR##*/} &>/dev/null
105# Cambio permisos: sólo puede leerlo el root
106chmod 600 $BACKUPFILE
Note: See TracBrowser for help on using the repository browser.