source: installer/opengnsys_uninstall.sh

qndtest
Last change on this file was 0406510, checked in by irinagomez <irinagomez@…>, 4 years ago

#964 Redoing change @7d8d8af deleted by mistake.

  • Property mode set to 100755
File size: 4.7 KB
RevLine 
[85fa51e]1#!/bin/bash
[d3e0264]2
[b86ca81]3#/**
[d3e0264]4#@file    opengnsys_uninstall.sh
5#@brief   Script de desinstalación de OpenGnsys.
[b86ca81]6#@warning No se elimina el directorio de imágenes, ni se desinstalan otros programas.
7#@version 0.10 - Primera prueba de desinstalación.
8#@author  Ramón Gómez - ETSII Univ. Sevilla
9#@date    2010/10/28
10#@version 1.0 - Eliminar servicios de OpenGnSys.
11#@author  Ramón Gómez - ETSII Univ. Sevilla
12#@date    2011/03/02
13#@version 1.0.2 - Información de desinstalación y correcciones.
14#@author  Ramón Gómez - ETSII Univ. Sevilla
15#@date    2011/12/22
16#@version 1.0.4 - Compatibilidad con otras distribuciones y auto configuración de acceso a BD
17#@author  Ramón Gómez - ETSII Univ. Sevilla
18#@date    2012/03/28
[31c182c2]19#@version 1.0.5 - Usar las mismas variables que el script de instalación.
20#@author  Ramón Gómez - ETSII Univ. Sevilla
21#@date    2013/01/09
[d3e0264]22#@version 1.1.0 - Solicitar confirmación para desinstalar.
23#@author  Ramón Gómez - ETSII Univ. Sevilla
24#@date    2017/06/27
25#*/ ##
[85fa51e]26
27
[4a3cd1f]28####  AVISO: Editar configuración de acceso.
[d3e0264]29####  WARNING: Edit access configuration.
[31c182c2]30MYSQL_ROOT_PASSWORD="passwordroot"      # Clave de root de MySQL
31OPENGNSYS_DATABASE="ogAdmBD"            # Base de datos de administración
32OPENGNSYS_DB_USER="usuog"               # Usuario de acceso a la base de datos
[b86ca81]33
34
35####  AVISO: NO EDITAR variables de configuración.
36####  WARNING: DO NOT EDIT configuration variables.
[d3e0264]37OPENGNSYS="/opt/opengnsys"              # Directorio de OpenGnsys
[31c182c2]38OGIMG="images"                          # Directorio de imágenes del repositorio
39OPENGNSYS_CLIENT_USER="opengnsys"       # Usuario Samba
40OPENGNSYS_OLDDATABASE="ogBDAdmin"       # Antigua base de datos
[7d5d849]41MYCNF=/tmp/.my.cnf.$$                   # Fichero temporal con credenciales de acceso a la BD.
[57396c1]42TFTPDIR=$(readlink $OPENGNSYS/tftpboot 2>/dev/null)     # Directorio de PXE/TFTP
[b86ca81]43
44
45# Sólo ejecutable por usuario root
46if [ "$(whoami)" != 'root' ]; then
47    echo "ERROR: this program must run under root privileges!!"
48    exit 1
49fi
[bf41d13]50
[d3e0264]51# Solicitar confirmación para la desinstalación de OpenGnsys.
[b6c0607]52read -rp "WARNING: Files under $OPENGNSYS directory will be removed. Continue to uninstall? (y/n): " REPLY
[d3e0264]53if [ "${REPLY^^}" != "Y" ]; then
54    echo "Operation cancelled."
55    exit 0
56fi
57
[4a3cd1f]58
[85fa51e]59# Parar servicio.
[d3e0264]60echo "Uninstalling OpenGnsys services."
[85fa51e]61if [ -x /etc/init.d/opengnsys ]; then
62    /etc/init.d/opengnsys stop
[7d5d849]63    if [ -n "$(which update-rc.d 2>/dev/null)" ]; then
[b86ca81]64        update-rc.d -f opengnsys remove
65    else
66        chkconfig --del opengnsys
67    fi
[85fa51e]68fi
[7d5d849]69# Comprobar acceso a la bases de datos.
[d3e0264]70echo "Erasing OpenGnsys database."
[85fa51e]71DROP=1
[31c182c2]72if ! mysql -u root -p"$MYSQL_ROOT_PASSWORD" <<<"quit" 2>/dev/null; then
[85fa51e]73    stty -echo
[d3e0264]74    read -rp "- Please, insert MySQL root password: " MYSQL_ROOT_PASSWORD
[85fa51e]75    echo ""
76    stty echo
[31c182c2]77    if ! mysql -u root -p"$MYSQL_ROOT_PASSWORD" <<<"quit" 2>/dev/null; then
[85fa51e]78        DROP=0
79        echo "Warning: database not erased."
80    fi
81fi
82if test $DROP; then
[7d5d849]83    # Componer fichero temporal con credenciales de conexión a la base de datos.
84    touch $MYCNF
[6adea38]85    chmod 600 $MYCNF
[7d5d849]86    cat << EOT > $MYCNF
87[client]
88user=root
89password=$MYSQL_ROOT_PASSWORD
90EOT
[00829fa]91    # Borrar fichero de credenciales si se corta el proceso de acceso a la BD.
92    trap "rm -f $MYCNF" 0 1 2 3 6 9 15
[7d5d849]93    # Eliminar bases de datos.
94    mysql --defaults-extra-file=$MYCNF 2> /dev/null << EOT
[00829fa]95DROP DATABASE IF EXISTS $OPENGNSYS_OLDDATABASE;
96DROP DATABASE IF EXISTS $OPENGNSYS_DATABASE;
[7d5d849]97DROP USER '$OPENGNSYS_DB_USER';
98DROP USER '$OPENGNSYS_DB_USER'@'localhost';
99EOT
100    # Borrar el fichero temporal de credenciales.
101    rm -f $MYCNF
[85fa51e]102fi
[0406510]103# Eliminar plantilla MySQL.
104rm -f /etc/{mysql/mysql.conf.d,my.conf.d}/mysqld-og.cnf
[3ce53a7]105# Quitar configuración específica de Apache.
[7d5d849]106[ -n "$(which a2dissite 2>/dev/null)" ] && a2dissite opengnsys
[b86ca81]107rm -f /etc/{apache2/{sites-available,sites-enabled},httpd/conf.d}/opengnsys*
108for serv in apache2 httpd; do
109    [ -x /etc/init.d/$serv ] && /etc/init.d/$serv reload
110done
[85fa51e]111# Eliminar ficheros.
[d3e0264]112echo "Deleting OpenGnsys files."
[bf41d13]113for dir in $OPENGNSYS/*; do
114    if [ "$dir" != "$OPENGNSYS/$OGIMG" ]; then
[cde13b8]115        rm -fr "$dir"
116    fi
117done
[9e27287]118rm -f /etc/init.d/opengnsys /etc/default/opengnsys /var/log/opengnsys
[55477d2]119rm -f /etc/cron.d/{opengnsys,torrentcreator,torrenttracker}
[59d6670]120rm -f /etc/logrotate.d/opengnsys*
[d3e0264]121# Elminar recursos de OpenGnsys en Samba.
[b86ca81]122rm -f /etc/samba/smb-og.conf
123perl -ni -e "print unless /smb-og.conf/" /etc/samba/smb.conf
124for serv in smbd smb ; do
125    [ -x /etc/init.d/$serv ] && /etc/init.d/$serv reload
126done
[d3e0264]127# Eliminar usuario de OpenGnsys.
[31c182c2]128smbpasswd -x $OPENGNSYS_CLIENT_USER
129userdel $OPENGNSYS_CLIENT_USER
[cde13b8]130# Tareas manuales a realizar después de desinstalar.
131echo "Manual tasks:"
[85fa51e]132echo "- You may stop or uninstall manually all other services"
[2338c95f]133echo "     (DHCP, PXE, TFTP, NFS/Samba, Apache, MySQL)."
[4a3cd1f]134echo "- Delete repository directory \"$OPENGNSYS/$OGIMG\""
[57396c1]135[ -n "$TFTPDIR" ] && echo "- Delete PXE configuration directory \"$TFTPDIR\""
[85fa51e]136
Note: See TracBrowser for help on using the repository browser.