Diferencia entre revisiones de «Gnbd-cliente»

De FJWiki
Saltar a: navegación, buscar
 
 
Línea 3: Línea 3:
 
== gnbd-cliente ==
 
== gnbd-cliente ==
  
#!/bin/bash
+
<source lang="bash">
#
+
#!/bin/bash
#
+
#
#
+
#
# chkconfig: 345 25 75
+
#
# description: export/import/whatever the gnbd block devices configured in /etc/gnbdtab
+
# chkconfig: 345 25 75
#
+
# description: export/import/whatever the gnbd block devices configured in /etc/gnbdtab
#
+
#
### BEGIN INIT INFO
+
#
# Provides:
+
### BEGIN INIT INFO
### END INIT INFO
+
# Provides:
+
### END INIT INFO
. /etc/init.d/functions
+
 
+
. /etc/init.d/functions
GNBD_SRV_TIMEOUT=5
+
 
+
GNBD_SRV_TIMEOUT=5
start() {
+
 
        local GNBD
+
start() {
+
        local GNBD
        if [ ! -f /etc/gnbdtab ] ; then
+
 
                echo "Please create /etc/gnbdtab"
+
        if [ ! -f /etc/gnbdtab ] ; then
                echo "Sample conf: /etc/gnbdtab"
+
                echo "Please create /etc/gnbdtab"
                failure "Falta crear el archivo"
+
                echo "Sample conf: /etc/gnbdtab"
                echo
+
                failure "Falta crear el archivo"
                return 1
+
                echo
        fi
+
                return 1
+
        fi
        echo "Loading needed kernel modules for gnbd"
+
 
        modprobe gnbd
+
        echo "Loading needed kernel modules for gnbd"
        rtrn=$?
+
        modprobe gnbd
        if [ $rtrn -ne 0 ]; then
+
        rtrn=$?
                failure "Failed to load needed kernel modules for gnbd"
+
        if [ $rtrn -ne 0 ]; then
                echo
+
                failure "Failed to load needed kernel modules for gnbd"
                return 1
+
                echo
        fi
+
                return 1
+
        fi
        GNBD=`cat /etc/gnbdtab | egrep '^import'`
+
 
        if [ -n "$GNBD" ] ; then
+
        GNBD=`cat /etc/gnbdtab | egrep '^import'`
                echo "Importing all GNBDs devices"
+
        if [ -n "$GNBD" ] ; then
                echo "$(awk '/^import/ { print "--> server:", $2 }' /etc/gnbdtab )"
+
                echo "Importing all GNBDs devices"
                cat /etc/gnbdtab | awk '/^import/ { print "-i", $2 }' | xargs -l gnbd_import ${GNBD_CLIENT_OPTS} > /dev/null
+
                echo "$(awk '/^import/ { print "--> server:", $2 }' /etc/gnbdtab )"
                rtrn=$?
+
                cat /etc/gnbdtab | awk '/^import/ { print "-i", $2 }' | xargs -l gnbd_import ${GNBD_CLIENT_OPTS} > /dev/null
                if [ $rtrn -ne 0 ]; then
+
                rtrn=$?
                        failure "Failed to import gnbd devices"
+
                if [ $rtrn -ne 0 ]; then
                        echo
+
                        failure "Failed to import gnbd devices"
                        return 1
+
                        echo
                fi
+
                        return 1
        fi
+
                fi
        echo "Buscando de nuevo volumenes (porsia)"
+
        fi
        vgscan
+
        echo "Buscando de nuevo volumenes (porsia)"
        clvmd -R
+
        vgscan
        vgchange -aly
+
        clvmd -R
        success "Iniciado"
+
        vgchange -aly
        echo
+
        success "Iniciado"
        return 0
+
        echo
}
+
        return 0
+
}
stop() {
+
 
+
stop() {
        local GNBD_MONITOR_PROC
+
 
+
        local GNBD_MONITOR_PROC
        echo "Desactivando Volume Group que usan gnbd"
+
 
        pvdisplay -C | awk '/^[ \t\f\n\r\v]*\/dev\/gnbd/ {print $2 }' | xargs -l vgchange -an
+
        echo "Desactivando Volume Group que usan gnbd"
+
        pvdisplay -C | awk '/^[ \t\f\n\r\v]*\/dev\/gnbd/ {print $2 }' | xargs -l vgchange -an
        echo "Unimporting all GNBDs devices"
+
 
        gnbd_import -q -R &> /dev/null
+
        echo "Unimporting all GNBDs devices"
        rtrn=$?
+
        gnbd_import -q -R &> /dev/null
        if [ $rtrn -ne 0 ]; then
+
        rtrn=$?
                failure "Failed to unimport"
+
        if [ $rtrn -ne 0 ]; then
                echo "Failed to unimport"
+
                failure "Failed to unimport"
                return 1
+
                echo "Failed to unimport"
        fi
+
                return 1
+
        fi
        GNBD_MONITOR_PROC="$(pgrep gnbd_monitor)"
+
 
        if [ -n "${GNBD_MONITOR_PROC}" ]; then
+
        GNBD_MONITOR_PROC="$(pgrep gnbd_monitor)"
                echo "Stopping gnbd_monitor"
+
        if [ -n "${GNBD_MONITOR_PROC}" ]; then
                killall gnbd_monitor &> /dev/null
+
                echo "Stopping gnbd_monitor"
                rtrn=$?
+
                killall gnbd_monitor &> /dev/null
                if [ $rtrn -ne 0 ]; then
+
                rtrn=$?
                        echo "Failed to stop gnbd_monitor"
+
                if [ $rtrn -ne 0 ]; then
                fi
+
                        echo "Failed to stop gnbd_monitor"
        fi
+
                fi
+
        fi
        echo "Unloading gnbd kernel module"
+
 
        modprobe -r gnbd
+
        echo "Unloading gnbd kernel module"
        rtrn=$?
+
        modprobe -r gnbd
        if [ $rtrn -ne 0 ]; then
+
        rtrn=$?
                failure "Failed to unload gnbd kernel module"
+
        if [ $rtrn -ne 0 ]; then
                echo
+
                failure "Failed to unload gnbd kernel module"
                return 1
+
                echo
        fi
+
                return 1
        success "Finalizado"
+
        fi
        echo
+
        success "Finalizado"
        return 0
+
        echo
}
+
        return 0
+
}
status() {
+
 
        gnbd_import -l
+
status() {
        rtrn=$?
+
        gnbd_import -l
        if [ $rtrn -ne 0 ]; then
+
        rtrn=$?
                echo "No hay gnbd importados"
+
        if [ $rtrn -ne 0 ]; then
                return $rtrn
+
                echo "No hay gnbd importados"
        fi
+
                return $rtrn
        return 0
+
        fi
}
+
        return 0
+
}
case "$1" in
+
 
  start)
+
case "$1" in
        start
+
  start)
        rtrn=$?
+
        start
        ;;
+
        rtrn=$?
  stop)
+
        ;;
        stop
+
  stop)
        rtrn=$?
+
        stop
        ;;
+
        rtrn=$?
  status)
+
        ;;
        status
+
  status)
        rtrn=$?
+
        status
        ;;
+
        rtrn=$?
  restart)
+
        ;;
        stop
+
  restart)
        start
+
        stop
        rtrn=$?
+
        start
        ;;
+
        rtrn=$?
  *)
+
        ;;
        echo $"Usage: $0 {start|stop|restart|status}"
+
  *)
        ;;
+
        echo $"Usage: $0 {start|stop|restart|status}"
esac
+
        ;;
+
esac
exit $rtrn
+
 
 +
exit $rtrn
 +
</source>
  
 
[[Category:GNBD]]
 
[[Category:GNBD]]
 
[[Category:Demonios_Linux]]
 
[[Category:Demonios_Linux]]

Revisión actual del 21:52 6 sep 2008

Este es un demonio RedHat/CentOS para montar los dispositivos GNBD que estuvieran configurados (o sea, automatiza la importanción inicial).

gnbd-cliente

#!/bin/bash
#
#
#
# chkconfig: 345 25 75
# description: export/import/whatever the gnbd block devices configured in /etc/gnbdtab
#
#
### BEGIN INIT INFO
# Provides:
### END INIT INFO

. /etc/init.d/functions

GNBD_SRV_TIMEOUT=5

start() {
        local GNBD

        if [ ! -f /etc/gnbdtab ] ; then
                echo "Please create /etc/gnbdtab"
                echo "Sample conf: /etc/gnbdtab"
                failure "Falta crear el archivo"
                echo
                return 1
        fi

        echo "Loading needed kernel modules for gnbd"
        modprobe gnbd
        rtrn=$?
        if [ $rtrn -ne 0 ]; then
                failure "Failed to load needed kernel modules for gnbd"
                echo
                return 1
        fi

        GNBD=`cat /etc/gnbdtab | egrep '^import'`
        if [ -n "$GNBD" ] ; then
                echo "Importing all GNBDs devices"
                echo "$(awk '/^import/ { print "--> server:", $2 }' /etc/gnbdtab )"
                cat /etc/gnbdtab | awk '/^import/ { print "-i", $2 }' | xargs -l gnbd_import ${GNBD_CLIENT_OPTS} > /dev/null
                rtrn=$?
                if [ $rtrn -ne 0 ]; then
                        failure "Failed to import gnbd devices"
                        echo
                        return 1
                fi
        fi
        echo "Buscando de nuevo volumenes (porsia)"
        vgscan
        clvmd -R
        vgchange -aly
        success "Iniciado"
        echo
        return 0
}

stop() {

        local GNBD_MONITOR_PROC

        echo "Desactivando Volume Group que usan gnbd"
        pvdisplay -C | awk '/^[ \t\f\n\r\v]*\/dev\/gnbd/ {print $2 }' | xargs -l vgchange -an

        echo "Unimporting all GNBDs devices"
        gnbd_import -q -R &> /dev/null
        rtrn=$?
        if [ $rtrn -ne 0 ]; then
                failure "Failed to unimport"
                echo "Failed to unimport"
                return 1
        fi

        GNBD_MONITOR_PROC="$(pgrep gnbd_monitor)"
        if [ -n "${GNBD_MONITOR_PROC}" ]; then
                echo "Stopping gnbd_monitor"
                killall gnbd_monitor &> /dev/null
                rtrn=$?
                if [ $rtrn -ne 0 ]; then
                        echo "Failed to stop gnbd_monitor"
                fi
        fi

        echo "Unloading gnbd kernel module"
        modprobe -r gnbd
        rtrn=$?
        if [ $rtrn -ne 0 ]; then
                failure "Failed to unload gnbd kernel module"
                echo
                return 1
        fi
        success "Finalizado"
        echo
        return 0
}

status() {
        gnbd_import -l
        rtrn=$?
        if [ $rtrn -ne 0 ]; then
                echo "No hay gnbd importados"
                return $rtrn
        fi
        return 0
}

case "$1" in
  start)
        start
        rtrn=$?
        ;;
  stop)
        stop
        rtrn=$?
        ;;
  status)
        status
        rtrn=$?
        ;;
  restart)
        stop
        start
        rtrn=$?
        ;;
  *)
        echo $"Usage: $0 {start|stop|restart|status}"
        ;;
esac

exit $rtrn