QPKG para autoarranque
#1
Hola

Como veo que a mas de uno le interesa y le ve utilidad a tener un icono en el App Center que ejecute comandos.
He creado el siguiente hilo de como hacerlo.

Estos paquetes qpkg realmente lanzan diversos scripts o programas.
De forma fácil y gráfica podemos para detenerlos y lanzarlos desde el “App Center” de nuestro QTS.
También es posible distinguir ambas situaciones en función del contenido del script y hacer unos comandos al lanzarlo y otras al detenerlo.

Como previo necesitaremos tener acceso a línea de comandos de la nas de QNAP, en windows podemos usar Putty o tener instalado un programa tipo WinSCP, en Mac con la consola.

Vamos a crear de forma manual un qpkg digamos que “virtual” de nombre “autoarranque”

Voy a describirlo por consola (por WinSCP es más fácil o gráfico).
Nos conectamos a la nas y vamos a la carpeta /share con “cd /share”, luego hago “ls”
   

En este listado vemos los directorios de unidades y raids.
Los tipos de nombres y unidades pueden ser como las siguientes:
  • Los de tipo HDA_DATA al HDZ_DATA son las unidades simples del slot 1 al 26.
  • Los de tipo MD0_DATA y sucesivos son las unidades de RAID.
  • Los de tipo CACHEDEV0_DATA y sucesivos son las unidades por volumen.
  • Los de tipo USBDisk1 y sucesivos son las unidades conectadas por USB
  • Los de tipo eSATADisk1 y sucesivos son las unidades conectadas por eSATA
En nuestro caso tenemos CACHEDEV1_DATA. Entramos a esa carpeta con “cd CACHEDEV1_DATA“y dentro de ella a la carpeta oculta “.qpkg” con la orden “cd .qpkg”.
   

Luego hago un “ls” para ver el contenido y vemos “cloudLink, QVPN, QsyncServer, helpdesk, owncloud y phpMyAdmin. Estos son los paquetes instalados actualmente en nuestro App Center
   

Hay alguno más, pero son especiales y realmente son componentes del sistema como el “Conmutador virtual y de red” y otros, que en versiones anteriores a las 4.3.3 no aparecían aquí.
Ahora creamos una carpeta con el nombre del qpkg mediante el comando “mkdir autoinicio” y me meto dentro de él con "cd autoinicio".
   

Ahora creamos el archivo que va a ser ejecutado por el qpkg. El nombre será “autoinicio.sh”. Para crearlo usamos el eterno editor de texto plano “vi”. Lanzo el comando “vi autoinicio.sh”.
Desgraciadamente este editor es un poco espartano y “rígido”, así que has de tener mucho cuidado en no hacer errores porque tiene sus particularidades.
Esto es muy importante, he de escribir como primera línea la siguiente “#!/bin/sh”.
En la segunda pondré los comandos a ejecutar, para este ejemplo escribo “# comando a ejecutar”. Mas adelante cuento algunas cosa que podemos hacer.
   

Ahora hay que grabarlo y salir. Para hacerlo pulso en este orden:
  • tecla ESC
  • tecla : (la de dos puntos)
  • tecla w (orden de write)
  • tecla q (orden de quit)
  • tecla ! (admiración)
  • tecla Intro
   

En el momento que lo hago, se vuelve a la línea de comandos.
Hago un “ls” y veré el archivo. Si escribo “cat autoinicio.sh” me muestra su contenido.
   

Ahora hemos de permitir que este archivo sea ejecutable. Para ver los permisos actuales tecleamos “ls -l autoinicio.sh”.Para añadir los de ejecución “chmod +x autoarranque.sh” y si escribimos de nuevo “ls -l autoinicio.sh”, veremos los cambios de atributos y el cambio de color del archivo.
   

Con esto ya hemos acabado con el ejecutable
Ahora hemos de modificar la configuración del menú del “app center” para que salga nuestro paquete.


Para evitar accidentes escribimos “cp /etc/config/qpkg.conf /etc/config/qpkg.bik”. 
Si lo hacemos mal, podemos restaurar el archivo de configuración previo a nuestra manaza con “cp /etc/config/qpkg.bik /etc/config/qpkg.conf

Escribimos el siguiente comando “vi /etc/config/qpkg.conf” y vamos a su final. Pulsamos la tecla “insert” y añadimos los siguientes líneas
[autoinicio]
Name = autoinicio
Class = null
Status = complete
Version = 0.1
Enable = TRUE
Date = 2010-01-01
Shell = /share/CACHEDEV1_DATA/.qpkg/autoinicio/autoinicio.sh
Install_Path = /share/CACHEDEV1_DATA/.qpkg/autoinicio
QPKG_File = autoinicio.qpkg
Author = QNAPClub_ES



Ahora para grabarlo y salir, hay que hacer las siguientes pulsaciones en orden:
  • tecla ESC
  • tecla : (la de dos puntos)
  • tecla w (orden de write)
  • tecla q (orden de quit)
  • tecla ! (admiración)
tecla Intro
   

Si hemos realizado todo los pasos bien, vamos al “App Center” y veremos el icono intruso.
   

Para comprobar que funciona, deberíamos reiniciar la máquina. En nuestro caso no ejecutamos nada, pero podríamos lanzar un rsync, un montaje de una unidad remota, el envío de un correo avisando del inicio, y todas aquellas cosas que podamos hacer por comandos.

Ahora voy a poner un script que nos envía un correo electrónico a una dirección nuestra.
Para que funcione deber estar configurada la QNAP para que pueda enviar mensajes (ControlPanel -> Notificación -> E-mail )
El script lo he llamado "autoinicio.sh" para no coincidir con el otro que creamos anteriormente y poder tener los dos.
Y contiene el siguiente código:


#!/bin/sh
CONF=/etc/config/qpkg.conf
QPKG_NAME="autoinicio"
QPKG_ROOT=`/sbin/getcfg $QPKG_NAME Install_Path -f ${CONF}`
APACHE_ROOT=`/sbin/getcfg SHARE_DEF defWeb -d Qweb -f /etc/config/def_share.info`
export QNAP_QPKG=$QPKG_NAME
directoriox="$(dirname -- $(readlink -fn -- "$0"; echo x))"
directorio="${directoriox%x}"

case "$1" in
  start)
    ENABLED=$(/sbin/getcfg $QPKG_NAME Enable -u -d FALSE -f $CONF)
    if [ "$ENABLED" != "TRUE" ]; then
        echo "$QPKG_NAME está deshabilitado."
        exit 1
    fi
    : ADD START ACTIONS HERE
tmpfile=$directorio/autoinicio_on.txt
     cat $tmpfile | /usr/sbin/sendmail -t
    ;;

  stop)
    : ADD STOP ACTIONS HERE
tmpfile=$directorio/autoinicio_off.txt
cat $tmpfile | /usr/sbin/sendmail -t
    ;;

  restart)
    $0 stop
    $0 start
    ;;

  *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
esac

exit 0

En la misma carpeta o directorio donde se encuentra autoinicio.sh tiene que haber dos archivos de texto con el siguiente contenido.


archivo de nombre "autoinicio_on.txt"

Subject: Autoarranque NAS QNAP INICIADO
From: emisor@gmx.com
To: receptor@gmx.com

El autoarranque NAS QNAP ha sido iniciado



y el archivo de nombre "autoinicio_off.txt"

Subject: Autoarranque NAS QNAP  DETENIDO
From: emisor@gmx.com
To: receptor@gmx.com

El autoarranque NAS QNAP ha sido detenido



Hemos de cambiar las direcciones del emisor@gmx.com por la que usemos en nuestra nas y la de receptor@gmx.com por la de destino.
En este caso el script envía un mensaje distinto si activamos o desactivamos el qpkg desde el App Center.

Y si te has llegado hasta aquí te dejo un paquete qpkg que hace todo lo anterior de una tirada como un verdadero qpkg.
Recuerda modificar los archivos txt para que te lleguen los correos.
https://mega.nz/#!VkR3VRDI!1TFaO0UrHdmiG...ooimaUJujU

Como siempre si veis errores o erratas enviarme un privado y se corrige.
Un saludo

Agur eta ondo ibili

Ganekogorta (TS-469Pro, TVS-673e, QBoat Sunny, TS-453Be, TR-002 y QHora-301w) Ʀɐɯ0η
  Responder


Mensajes en este tema
QPKG para autoarranque - por Ganekogorta - 26-10-2017, 05:23 PM



Usuarios navegando en este tema: 1 invitado(s)