summaryrefslogtreecommitdiffstats
path: root/installer/opengnsys_export.sh
diff options
context:
space:
mode:
authorramon <ramongomez@us.es>2016-11-02 09:48:07 +0000
committerramon <ramongomez@us.es>2016-11-02 09:48:07 +0000
commitcb74b308bf4006479109ca4a1b28c82af87ad2d0 (patch)
tree92cc3d05aac20e7a2fe26f223f7319a3a1ace1df /installer/opengnsys_export.sh
parent749ae5fbfec33947c2bbf3d0508fce45cb2ccd1c (diff)
#755: Compactar los archivos directamente en la orden {{{tar}}} sin usar directorio temporal en script de exportación.
git-svn-id: https://opengnsys.es/svn/branches/version1.1@5061 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'installer/opengnsys_export.sh')
-rwxr-xr-xinstaller/opengnsys_export.sh55
1 files changed, 20 insertions, 35 deletions
diff --git a/installer/opengnsys_export.sh b/installer/opengnsys_export.sh
index c8a75fba..ff2c00e7 100755
--- a/installer/opengnsys_export.sh
+++ b/installer/opengnsys_export.sh
@@ -15,10 +15,10 @@
# Variables globales.
PROG="$(basename $0)"
-TMPDIR=/tmp/opengnsys_export
OPENGNSYS="/opt/opengnsys"
+TMPDIR=/tmp
MYSQLFILE="$TMPDIR/ogAdmBD.sql"
-MYSQLFILE2="$TMPDIR/usuarios.sql"
+BACKUPPREFIX="opengnsys_export"
# Si se solicita, mostrar ayuda.
if [ "$*" == "help" ]; then
@@ -49,46 +49,21 @@ fi
# Comprobamos que exista el directorio para el archivo de backup
BACKUPDIR=$(realpath $(dirname $1) 2>/dev/null)
-! [ $? -eq 0 ] && echo "$PROG: Error: No existe el directorio para el archivo de backup" && exit 4
+[ $? -ne 0 ] && echo "$PROG: Error: No existe el directorio para el archivo de backup" && exit 4
BACKUPFILE="$BACKUPDIR/$(basename $1)"
-# Si existe el directorio auxiliar lo borramos
-[ -d $TMPDIR ] && rm -rf $TMPDIR
-
-# Creamos directorio auxiliar
-echo "Creamos directorio auxiliar."
-mkdir -p $TMPDIR
-chmod 700 $TMPDIR
-
-# Información de la versión
-echo "Información de la versión."
-cp $OPENGNSYS/doc/VERSION.txt $TMPDIR
-
# DHCP
-echo "Copiamos Configuración del dhcp."
-for DHCPCFGDIR in /etc/dhcp /etc/dhcp3; do
- [ -r $DHCPCFGDIR/dhcpd.conf ] && cp $DHCPCFGDIR/dhcpd.conf $TMPDIR
+for DIR in /etc/dhcp /etc/dhcp3; do
+ [ -r $DIR/dhcpd.conf ] && DHCPDIR=$DIR
done
-# TFTPBOOT
-echo "Guardamos los ficheros PXE de los clientes."
-cp -r $OPENGNSYS/tftpboot/menu.lst $TMPDIR
-
-# Configuración de los clientes
-echo "Guardamos la configuración de los clientes."
-cp $OPENGNSYS/client/etc/engine.cfg $TMPDIR
-
-# Páginas de inicio
-echo "Guardamos las páginas de inicio."
-cp -r $OPENGNSYS/www/menus $TMPDIR
-
# Exportar la base de datos
echo "Exportamos la información de la base de datos."
source $OPENGNSYS/etc/ogAdmServer.cfg
# Crear fichero temporal de acceso a la BD
MYCNF=$(mktemp /tmp/.my.cnf.XXXXX)
chmod 600 $MYCNF
-trap "rm -f $MYCNF" 1 2 3 6 9 15
+trap "rm -f $MYCNF $MYSQLFILE $TMPDIR/IPSERVER.txt" 1 2 3 6 9 15
cat << EOT > $MYCNF
[client]
user=$USUARIO
@@ -102,20 +77,30 @@ mysqldump --defaults-extra-file=$MYCNF --opt $CATALOG \
--ignore-table=${CATALOG}.usuarios > $MYSQLFILE
# Tabla usuario
mysqldump --defaults-extra-file=$MYCNF --opt --no-create-info $CATALOG \
- usuarios > $MYSQLFILE2
+ usuarios | sed 's/^INSERT /INSERT IGNORE /g' >> $MYSQLFILE
# Borrar fichero temporal
rm -f $MYCNF
# IP SERVIDOR
echo $ServidorAdm > $TMPDIR/IPSERVER.txt
-# Si existe ya archivo de blackup lo renombramos
+# Si existe ya archivo de backup lo renombramos
[ -r $BACKUPFILE ] && mv $BACKUPFILE $BACKUPFILE-$(date +%Y%M%d)
# Empaquetamos los ficheros
echo "Creamos un archivo comprimido con los datos: $BACKUPFILE."
-cd /tmp
-tar -czvf $BACKUPFILE ${TMPDIR##*/} &>/dev/null
+tar -cvzf $BACKUPFILE --transform="s!^!$BACKUPPREFIX/!" \
+ -C $(dirname $MYSQLFILE) $(basename $MYSQLFILE) \
+ -C $TMPDIR IPSERVER.txt \
+ -C $DHCPDIR dhcpd.conf \
+ -C $OPENGNSYS/tftpboot menu.lst \
+ -C $OPENGNSYS/doc VERSION.txt \
+ -C $OPENGNSYS/client/etc engine.cfg \
+ -C $OPENGNSYS/www menus \
+ -C /etc default/opengnsys &>/dev/null
# Cambio permisos: sólo puede leerlo el root
chmod 600 $BACKUPFILE
+
+# Borrar ficheros temporales
+rm -f $MYSQLFILE $TMPDIR/IPSERVER.txt