Diferencia entre revisiones de «Gnbd-servidor»

De FJWiki
Saltar a: navegación, buscar
 
 
Línea 4: Línea 4:
 
== gnbd-servidor ==
 
== gnbd-servidor ==
  
#!/bin/bash
+
<source lang="bash">
#
+
#!/bin/bash
#
+
#
#
+
#
# chkconfig: 345 23 77
+
#
# description: export/import/whatever the gnbd block devices configured in /etc/gnbdtab
+
# chkconfig: 345 23 77
#
+
# 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
        echo "Starting gnbd_serv"
+
 
        /sbin/gnbd_serv -q
+
        echo "Starting gnbd_serv"
        rtrn=$?
+
        /sbin/gnbd_serv -q
        if [ $rtrn -ne 0 ]; then
+
        rtrn=$?
                failure "Failed to start gnbd_serv"
+
        if [ $rtrn -ne 0 ]; then
                echo
+
                failure "Failed to start gnbd_serv"
                return 1
+
                echo
        fi
+
                return 1
+
        fi
        GNBD=`cat /etc/gnbdtab | egrep '^export'`
+
 
        if [ -n "$GNBD" ] ; then
+
        GNBD=`cat /etc/gnbdtab | egrep '^export'`
                awk '/^export/ { print "--> device:", $4, "as", $3 }' /etc/gnbdtab
+
        if [ -n "$GNBD" ] ; then
                cat /etc/gnbdtab | awk '/^export/ { print "-d", $4, "-e", $3 }'| xargs -l gnbd_export ${GNBD_SRV_OPTS} > /dev/null
+
                awk '/^export/ { print "--> device:", $4, "as", $3 }' /etc/gnbdtab
                rtrn=$?
+
                cat /etc/gnbdtab | awk '/^export/ { print "-d", $4, "-e", $3 }'| xargs -l gnbd_export ${GNBD_SRV_OPTS} > /dev/null
                if [ $rtrn -ne 0 ]; then
+
                rtrn=$?
                        failure "Failed to export gnbd devices"
+
                if [ $rtrn -ne 0 ]; then
                        echo
+
                        failure "Failed to export gnbd devices"
                        return 1
+
                        echo
                fi
+
                        return 1
        fi
+
                fi
        success "Iniciado"
+
        fi
        echo
+
        success "Iniciado"
        return 0
+
        echo
}
+
        return 0
+
}
stop() {
+
 
+
stop() {
        local GNBD_SRV_PROCS GNBD_CLUSTERD_PROC
+
 
+
        local GNBD_SRV_PROCS GNBD_CLUSTERD_PROC
        echo "Unexporting all GNBDs devices"
+
 
        gnbd_export -q -R &> /dev/null
+
        echo "Unexporting all GNBDs devices"
        rtrn=$?
+
        gnbd_export -q -R &> /dev/null
        if [ $rtrn -ne 0 ]; then
+
        rtrn=$?
                failure "Failed to unexport all gnbd devices"
+
        if [ $rtrn -ne 0 ]; then
                echo
+
                failure "Failed to unexport all gnbd devices"
                return 1
+
                echo
        fi
+
                return 1
+
        fi
        GNBD_SRV_PROCS="$(pgrep gnbd_serv)"
+
 
        while [ -n "${GNBD_SRV_PROCS}" ] && [ ${GNBD_SRV_TIMEOUT} -gt 0 ] ; do
+
        GNBD_SRV_PROCS="$(pgrep gnbd_serv)"
                gnbd_serv -k &> /dev/null
+
        while [ -n "${GNBD_SRV_PROCS}" ] && [ ${GNBD_SRV_TIMEOUT} -gt 0 ] ; do
                sleep 1
+
                gnbd_serv -k &> /dev/null
                GNBD_SRV_TIMEOUT=$(( ${GNBD_SRV_TIMEOUT}-1 ))
+
                sleep 1
                GNBD_SRV_PROCS="$(pgrep gnbd_serv)"
+
                GNBD_SRV_TIMEOUT=$(( ${GNBD_SRV_TIMEOUT}-1 ))
        done
+
                GNBD_SRV_PROCS="$(pgrep gnbd_serv)"
+
        done
        if [ -n "${GNBD_SRV_PROCS}" ]; then
+
 
                gnbd_serv -K &> /dev/null
+
        if [ -n "${GNBD_SRV_PROCS}" ]; then
        fi
+
                gnbd_serv -K &> /dev/null
        rtrn=$?
+
        fi
        if [ $rtrn -ne 0 ]; then
+
        rtrn=$?
                failure "Failed to stop gnbd_serv"
+
        if [ $rtrn -ne 0 ]; then
                echo
+
                failure "Failed to stop gnbd_serv"
                return 1
+
                echo
        fi
+
                return 1
+
        fi
        GNBD_CLUSTERD_PROC="$(pgrep gnbd_clusterd)"
+
 
        if [ -n "${GNBD_CLUSTERD_PROC}" ]; then
+
        GNBD_CLUSTERD_PROC="$(pgrep gnbd_clusterd)"
                echo "Stopping gnbd_clusterd"
+
        if [ -n "${GNBD_CLUSTERD_PROC}" ]; then
                killall gnbd_clusterd &> /dev/null
+
                echo "Stopping gnbd_clusterd"
                rtrn=$?
+
                killall gnbd_clusterd &> /dev/null
                if [ $rtrn -ne 0 ]; then
+
                rtrn=$?
                        echo "Failed to stop gnbd_clusterd"
+
                if [ $rtrn -ne 0 ]; then
                fi
+
                        echo "Failed to stop gnbd_clusterd"
        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_export -l
+
status() {
        rtrn=$?
+
        gnbd_export -l
        if [ $rtrn -ne 0 ]; then
+
        rtrn=$?
                echo "No hay exportados"
+
        if [ $rtrn -ne 0 ]; then
                return $rtrn
+
                echo "No hay exportados"
        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:54 6 sep 2008

Este demonio RedHat/CentOS exporta las particiones definidas para GNBD.


gnbd-servidor

#!/bin/bash
#
#
#
# chkconfig: 345 23 77
# 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

        echo "Starting gnbd_serv"
        /sbin/gnbd_serv -q
        rtrn=$?
        if [ $rtrn -ne 0 ]; then
                failure "Failed to start gnbd_serv"
                echo
                return 1
        fi

        GNBD=`cat /etc/gnbdtab | egrep '^export'`
        if [ -n "$GNBD" ] ; then
                awk '/^export/ { print "--> device:", $4, "as", $3 }' /etc/gnbdtab
                cat /etc/gnbdtab | awk '/^export/ { print "-d", $4, "-e", $3 }'| xargs -l gnbd_export ${GNBD_SRV_OPTS} > /dev/null
                rtrn=$?
                if [ $rtrn -ne 0 ]; then
                        failure "Failed to export gnbd devices"
                        echo
                        return 1
                fi
        fi
        success "Iniciado"
        echo
        return 0
}

stop() {

        local GNBD_SRV_PROCS GNBD_CLUSTERD_PROC

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

        GNBD_SRV_PROCS="$(pgrep gnbd_serv)"
        while [ -n "${GNBD_SRV_PROCS}" ] && [ ${GNBD_SRV_TIMEOUT} -gt 0 ] ; do
                gnbd_serv -k &> /dev/null
                sleep 1
                GNBD_SRV_TIMEOUT=$(( ${GNBD_SRV_TIMEOUT}-1 ))
                GNBD_SRV_PROCS="$(pgrep gnbd_serv)"
        done

        if [ -n "${GNBD_SRV_PROCS}" ]; then
                gnbd_serv -K &> /dev/null
        fi
        rtrn=$?
        if [ $rtrn -ne 0 ]; then
                failure "Failed to stop gnbd_serv"
                echo
                return 1
        fi

        GNBD_CLUSTERD_PROC="$(pgrep gnbd_clusterd)"
        if [ -n "${GNBD_CLUSTERD_PROC}" ]; then
                echo "Stopping gnbd_clusterd"
                killall gnbd_clusterd &> /dev/null
                rtrn=$?
                if [ $rtrn -ne 0 ]; then
                        echo "Failed to stop gnbd_clusterd"
                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_export -l
        rtrn=$?
        if [ $rtrn -ne 0 ]; then
                echo "No hay exportados"
                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