Página 1 de 13

script Upgrade PelisALaCarta -> servicio

Publicado: 19 Feb 2016, 16:44
por kampanita
En vista de que esta calentito el ambiente en cuanto a desarrolladores del plugin se refiere, tenemos "arreglos" y actualizaciones casi constantes ( pobre Jesús que no da a basto a hacer "merges" en el repositorio de fuentes ) ;) ... se me ocurrió automatizar la tarea de actualizarme los cambios, de manera "desatendida".

Para los más impacientes ( como yo, dicho sea de paso ) que quieren estar a la última en cuanto a versión de los canales, hot-fixes, etc, he creado este pequeño script que auto-actualiza la raspi todos los días, con los últimos desarrollos que están en el master del repositorio...

En principio lo he hecho para mis "raspberris" pero podéis adaptarlo a vuestras necesidades :

para ello me creo un shell script en bash, al que llamo "upgrade.sh". Entramos por ssh en la raspi y yo lo dejo en /storage/scripts...para ello creo un directorio nuevo :

Código: Seleccionar todo

mkdir /storage/scripts
cd /storage/scripts
y me creo el upgrade.sh con este contenido

(**) En FILE_DIR poner el directorio donde quereis que se guarde el fichero temporal .... Yo lo he puesto para que se guarde en el USB, y asi no gasto inutilmente vida de la SD

Código: Seleccionar todo

#!/bin/bash

now=$(date +'%R')
echo ${now} Inicia el proceso.

FILE_DIR="/var/media/J_CCSA_X64FRE_EN-GB_/storage"
#
# me traigo el fichero
echo Nos traemos el fichero
echo .
curl -o ${FILE_DIR}/pelis.zip https://codeload.github.com/tvalacarta/pelisalacarta/zip/master

s=$(ls -lah $FILE_DIR/pelis.zip | awk '{ print $5}')
s2=$(ls -lah $FILE_DIR/pelis.zip.old | awk '{ print $5}')

# compruebo que el fichero sea diferente para actualizar o no.
if [ "$s" != "$s2" ]; then
 echo Unzip del fichero
 echo .
 # hacemos el unzip del fichero
 unzip -o ${FILE_DIR}/pelis.zip pelisalacarta-master/python/main-classic/* -d ${FILE_DIR} > /dev/null

 cp -r ${FILE_DIR}/pelisalacarta-master/python/main-classic/* /storage/.kodi/addons/plugin.video.pelisalacarta/ > /dev/null
 #scp -r ${FILE_DIR}/pelisalacarta-master/python/main-classic/* 192.168.10.5:/storage/.kodi/addons/plugin.video.pelisalacarta/

 #borramos el directorio
 echo Borramos origen
 echo .
 #rm -rf ${FILE_DIR}/* > /dev/null
 mv $FILE_DIR/pelis.zip $FILE_DIR/pelis.zip.old
fi

now=$(date +'%R')
echo ${now}  proceso acabado
le ponemos permisos de ejecucion con

Código: Seleccionar todo

chmod 775 /storage/upgrade.sh

Después programo un cron ( tarea repetitiva ) para que se me lance todos los dias a las 5.00am
escribimos

Código: Seleccionar todo

crontab -e
pegamos el siguiente texto, y damos CTRL-X y Yes

Código: Seleccionar todo

# # Minute   Hour   Day of Month       Month          Day of Week        Command
# (0-59)  (0-23)     (1-31)    (1-12 or Jan-Dec)  (0-6 or Sun-Sat)
    0        5         *             *                *               sh /storage/scripts/upgrade.sh

( creo que se entiende todo bastante claro )

De esta manera tengo la raspi actualizada con las ultimas mejoras y cambios, sin preocuparme mucho mas ;)

Saludos.

Re: shell script Raspi/Linux/ Upgrade PelisALaCarta

Publicado: 19 Feb 2016, 18:47
por kampanita
ahi un lanzamiento del script en mi raspi2 y el listado de como queda el plugin "actualizado" a la ultima version del master de github

El proceso tarda unos dos minutos, dependiendo de la velocidad de la conexion ...

Imagen


y asi viendo el proceso cuando no actualiza ...


Imagen

Re: shell script Raspi/Linux/ Upgrade PelisALaCarta

Publicado: 21 Feb 2016, 00:19
por Lortropic
No está mal la idea para mantener el sistema más actualizado entre versiones. Se que está el mecanismo de actualización de canales, pero no se si tendrá también de actualización de servidores, y supongo que no habrá "añadir" canales (sin cambiar de versión), así que esto lo solventa.

Re: shell script Raspi/Linux/ Upgrade PelisALaCarta

Publicado: 21 Feb 2016, 10:56
por kampanita
Una mejora al codigo para ahorrar más ...

Me bajo la cabecera del fichero de Git, para saber el tamaño del archivo. Si coincide con el que tenemos bajado previamente, no se lo trae, si no coinciden los tamaños, se lo baja y lo instala.

Código: Seleccionar todo

#!/bin/bash

now=$(date +'%R')
echo ${now} Inicia el proceso.

FILE_DIR="/var/media/J_CCSA_X64FRE_EN-GB_/storage"
URL="https://codeload.github.com/tvalacarta/pelisalacarta/zip/master"

s=$(curl -sI $URL | grep Content-Length | cut -d ' ' -f 2)
echo El fichero de git pesa: $s

s2=$(ls -la $FILE_DIR/pelis.zip.old | awk '{ print $5}')
echo El fichero local pesa: $s2

if [ "$s" != "$s2" ]; then

 echo Nos traemos el fichero
 curl -o ${FILE_DIR}/pelis.zip $URL

 echo Unzip del fichero
 unzip -o ${FILE_DIR}/pelis.zip pelisalacarta-master/python/main-classic/* -d ${FILE_DIR} > /dev/null

 echo copia el plugin
 cp -r ${FILE_DIR}/pelisalacarta-master/python/main-classic/* /storage/.kodi/addons/plugin.video.pelisalacarta/ > /dev/null

 echo renombra origen
 mv $FILE_DIR/pelis.zip $FILE_DIR/pelis.zip.old
fi

now=$(date +'%R')
echo ${now}  proceso acabado

Re: shell script Raspi/Linux/ Upgrade PelisALaCarta

Publicado: 25 Feb 2016, 10:55
por hav
Hola, muchas gracias por compartir tu idea (es magnífica). La verdad es que estoy bastante pegado, sería mucho pedir que pasaras el archivo .sh tal cual lo tienes? Supongo que solo habría que cambiar la ruta donde guardar el script y modificar, si se quiere, su hora de ejecución, no?

Con tu script también se actualizarían los servers?

Re: shell script Raspi/Linux/ Upgrade PelisALaCarta

Publicado: 25 Feb 2016, 14:37
por hav
He intentado seguir tus pasos para aprender un poco, pero me devuelve errores:

OpenELEC:~/scripts # sh -x /storage/scripts/upgrade.sh
+
: not foundripts/upgrade.sh: line 1:
+ date +%R
+ now=14:34
Inicia el proceso.
Inicia el proceso.
+
: not foundripts/upgrade.sh: line 1:
+ FILE_DIR=/storage/downloads
+ echo Nos traemos el fichero
Nos traemos el fichero
+ echo .
.
/pelis.zip https://codeload.github.com/tvalacarta/ ... zip/master
curl: (3) Illegal characters found in URL
+
: not foundripts/upgrade.sh: line 1:
+ + awk { print $5}
/pelis.ziptorage/downloads
/pelis.zip: No such file or directory
+ s=
/pelis.zip.oldrage/downloads
+ awk { print $5}
/pelis.zip.old: No such file or directory
+ s2=
+
: not foundripts/upgrade.sh: line 1:
/storage/scripts/upgrade.sh: line 34: syntax error: unexpected end of file (expecting "then")

Re: shell script Raspi/Linux/ Upgrade PelisALaCarta

Publicado: 26 Feb 2016, 10:58
por kampanita
A ver, varias cosas....

yo el script lo he dejado en /storage/scripts/updagre.sh

por eso me he creado antes el directorio scripts dentro de storage, y he dejado ahí dentro el script.

cd /storage
mkdir scripts
cd /storage/scripts
....
aqui dejo el fichero "updagre.sh"... luego le doy permisos de ejecucion

chmod 775 /storage/scripts/upgrade.sh

y para ejecutarlo, te basta con poner...

. /storage/scripts/upgrade.sh ( entre el punto y la barra hay un espacio en blanco )

________________

Salvados los asuntos del sistema operativo ... Lo unico a cambiar en este script es la ruta donde quieres que se ejecute el trabajo, yo tengo puesto MI USB en la carpeta storage como ruta para que deje el archivo, descomprima, etc...

FILE_DIR="/var/media/J_CCSA_X64FRE_EN-GB_/storage"

pero tu eso lo tienes que cambiar por

por ejemplo : FILE_DIR="/storage/scripts" <-- dejaria los ficheros en el mismo sitio que tienes el script "upgrade.sh" en la SD


Por otro lado, esto lo he hecho para mi Raspberry con Openelec instalado, si tienes otro sistema puede que cambien algunas rutas ....

y otra cosa importante es que copies el script "TAL CUAL" te lo pongo aqui ( respeta los saltos de lineas, espacios y demas, que me da a mi que uno de tus problemas es que no lo has copiado bien. Te lo subo por aqui tambien para que lo tengas tal cual es.


#!/bin/bash

now=$(date +'%R')
echo ${now} Inicia el proceso.

FILE_DIR="/var/media/J_CCSA_X64FRE_EN-GB_/storage"
URL="https://codeload.github.com/tvalacarta/ ... zip/master"

s=$(curl -sI $URL | grep Content-Length | cut -d ' ' -f 2)
echo El fichero de git pesa: $s

s2=$(ls -la $FILE_DIR/pelis.zip.old | awk '{ print $5}')
echo El fichero local pesa: $s2

if [ "$s" != "$s2" ]; then

echo Nos traemos el fichero
curl -o ${FILE_DIR}/pelis.zip $URL

echo Unzip del fichero
unzip -o ${FILE_DIR}/pelis.zip pelisalacarta-master/python/main-classic/* -d ${FILE_DIR} > /dev/null

echo copia el plugin
cp -r ${FILE_DIR}/pelisalacarta-master/python/main-classic/* /storage/.kodi/addons/plugin.video.pelisalacarta/ > /dev/null

echo renombra origen
mv $FILE_DIR/pelis.zip $FILE_DIR/pelis.zip.old
fi

now=$(date +'%R')
echo ${now} proceso acabado

Re: shell script Raspi/Linux/ Upgrade PelisALaCarta

Publicado: 26 Feb 2016, 21:18
por hav
kampanita escribió:A ver, varias cosas....

yo el script lo he dejado en /storage/scripts/updagre.sh

por eso me he creado antes el directorio scripts dentro de storage, y he dejado ahí dentro el script.

cd /storage
mkdir scripts
cd /storage/scripts
....
aqui dejo el fichero "updagre.sh"... luego le doy permisos de ejecucion

chmod 775 /storage/scripts/upgrade.sh

y para ejecutarlo, te basta con poner...

. /storage/scripts/upgrade.sh ( entre el punto y la barra hay un espacio en blanco )

________________

Salvados los asuntos del sistema operativo ... Lo unico a cambiar en este script es la ruta donde quieres que se ejecute el trabajo, yo tengo puesto MI USB en la carpeta storage como ruta para que deje el archivo, descomprima, etc...

FILE_DIR="/var/media/J_CCSA_X64FRE_EN-GB_/storage"

pero tu eso lo tienes que cambiar por

por ejemplo : FILE_DIR="/storage/scripts" <-- dejaria los ficheros en el mismo sitio que tienes el script "upgrade.sh" en la SD


Por otro lado, esto lo he hecho para mi Raspberry con Openelec instalado, si tienes otro sistema puede que cambien algunas rutas ....

y otra cosa importante es que copies el script "TAL CUAL" te lo pongo aqui ( respeta los saltos de lineas, espacios y demas, que me da a mi que uno de tus problemas es que no lo has copiado bien. Te lo subo por aqui tambien para que lo tengas tal cual es.


#!/bin/bash

now=$(date +'%R')
echo ${now} Inicia el proceso.

FILE_DIR="/var/media/J_CCSA_X64FRE_EN-GB_/storage"
URL="https://codeload.github.com/tvalacarta/ ... zip/master"

s=$(curl -sI $URL | grep Content-Length | cut -d ' ' -f 2)
echo El fichero de git pesa: $s

s2=$(ls -la $FILE_DIR/pelis.zip.old | awk '{ print $5}')
echo El fichero local pesa: $s2

if [ "$s" != "$s2" ]; then

echo Nos traemos el fichero
curl -o ${FILE_DIR}/pelis.zip $URL

echo Unzip del fichero
unzip -o ${FILE_DIR}/pelis.zip pelisalacarta-master/python/main-classic/* -d ${FILE_DIR} > /dev/null

echo copia el plugin
cp -r ${FILE_DIR}/pelisalacarta-master/python/main-classic/* /storage/.kodi/addons/plugin.video.pelisalacarta/ > /dev/null

echo renombra origen
mv $FILE_DIR/pelis.zip $FILE_DIR/pelis.zip.old
fi

now=$(date +'%R')
echo ${now} proceso acabado
Muchas gracias, no entiendo qué hago mal:

login as: root
root@192.168.1.9's password:
##############################################
# OpenELEC #
# http://openelec.tv #
##############################################

OpenELEC (official) Version: 6.0.1
OpenELECMOD:~ # . /storage/scripts/upgrade.sh
: not foundge/scripts/upgrade.sh: line 2:
Inicia el proceso.
: not foundge/scripts/upgrade.sh: line 5:
: not foundge/scripts/upgrade.sh: line 8:
El fichero de git pesa:
: not foundge/scripts/upgrade.sh: line 11:
/pelis.zip.old: No such file or directory
: not foundge/scripts/upgrade.sh: line 12:
El fichero local pesa:
: not foundge/scripts/upgrade.sh: line 14:
-sh: /storage/scripts/upgrade.sh: line 28: syntax error: unexpected word
OpenELECMOD:~ #

Te adjunto el script. Vaya por delante que está en el directorio correcto (/storage/scripts) y tiene otorgados los permisos.

Re: shell script Raspi/Linux/ Upgrade PelisALaCarta

Publicado: 27 Feb 2016, 00:22
por hav
hav escribió:
kampanita escribió:A ver, varias cosas....

yo el script lo he dejado en /storage/scripts/updagre.sh

por eso me he creado antes el directorio scripts dentro de storage, y he dejado ahí dentro el script.

cd /storage
mkdir scripts
cd /storage/scripts
....
aqui dejo el fichero "updagre.sh"... luego le doy permisos de ejecucion

chmod 775 /storage/scripts/upgrade.sh

y para ejecutarlo, te basta con poner...

. /storage/scripts/upgrade.sh ( entre el punto y la barra hay un espacio en blanco )

________________

Salvados los asuntos del sistema operativo ... Lo unico a cambiar en este script es la ruta donde quieres que se ejecute el trabajo, yo tengo puesto MI USB en la carpeta storage como ruta para que deje el archivo, descomprima, etc...

FILE_DIR="/var/media/J_CCSA_X64FRE_EN-GB_/storage"

pero tu eso lo tienes que cambiar por

por ejemplo : FILE_DIR="/storage/scripts" <-- dejaria los ficheros en el mismo sitio que tienes el script "upgrade.sh" en la SD


Por otro lado, esto lo he hecho para mi Raspberry con Openelec instalado, si tienes otro sistema puede que cambien algunas rutas ....

y otra cosa importante es que copies el script "TAL CUAL" te lo pongo aqui ( respeta los saltos de lineas, espacios y demas, que me da a mi que uno de tus problemas es que no lo has copiado bien. Te lo subo por aqui tambien para que lo tengas tal cual es.


#!/bin/bash

now=$(date +'%R')
echo ${now} Inicia el proceso.

FILE_DIR="/var/media/J_CCSA_X64FRE_EN-GB_/storage"
URL="https://codeload.github.com/tvalacarta/ ... zip/master"

s=$(curl -sI $URL | grep Content-Length | cut -d ' ' -f 2)
echo El fichero de git pesa: $s

s2=$(ls -la $FILE_DIR/pelis.zip.old | awk '{ print $5}')
echo El fichero local pesa: $s2

if [ "$s" != "$s2" ]; then

echo Nos traemos el fichero
curl -o ${FILE_DIR}/pelis.zip $URL

echo Unzip del fichero
unzip -o ${FILE_DIR}/pelis.zip pelisalacarta-master/python/main-classic/* -d ${FILE_DIR} > /dev/null

echo copia el plugin
cp -r ${FILE_DIR}/pelisalacarta-master/python/main-classic/* /storage/.kodi/addons/plugin.video.pelisalacarta/ > /dev/null

echo renombra origen
mv $FILE_DIR/pelis.zip $FILE_DIR/pelis.zip.old
fi

now=$(date +'%R')
echo ${now} proceso acabado
Muchas gracias, no entiendo qué hago mal:

login as: root
root@192.168.1.9's password:
##############################################
# OpenELEC #
# http://openelec.tv #
##############################################

OpenELEC (official) Version: 6.0.1
OpenELECMOD:~ # . /storage/scripts/upgrade.sh
: not foundge/scripts/upgrade.sh: line 2:
Inicia el proceso.
: not foundge/scripts/upgrade.sh: line 5:
: not foundge/scripts/upgrade.sh: line 8:
El fichero de git pesa:
: not foundge/scripts/upgrade.sh: line 11:
/pelis.zip.old: No such file or directory
: not foundge/scripts/upgrade.sh: line 12:
El fichero local pesa:
: not foundge/scripts/upgrade.sh: line 14:
-sh: /storage/scripts/upgrade.sh: line 28: syntax error: unexpected word
OpenELECMOD:~ #

Te adjunto el script. Vaya por delante que está en el directorio correcto (/storage/scripts) y tiene otorgados los permisos.
¿Habría posibilidad de que se ejecute cada vez que inicia el sistema operativo (openelec 6.0.1)?

Re: shell script Raspi/Linux/ Upgrade PelisALaCarta

Publicado: 27 Feb 2016, 08:31
por hav
hav escribió:
kampanita escribió:A ver, varias cosas....

yo el script lo he dejado en /storage/scripts/updagre.sh

por eso me he creado antes el directorio scripts dentro de storage, y he dejado ahí dentro el script.

cd /storage
mkdir scripts
cd /storage/scripts
....
aqui dejo el fichero "updagre.sh"... luego le doy permisos de ejecucion

chmod 775 /storage/scripts/upgrade.sh

y para ejecutarlo, te basta con poner...

. /storage/scripts/upgrade.sh ( entre el punto y la barra hay un espacio en blanco )

________________

Salvados los asuntos del sistema operativo ... Lo unico a cambiar en este script es la ruta donde quieres que se ejecute el trabajo, yo tengo puesto MI USB en la carpeta storage como ruta para que deje el archivo, descomprima, etc...

FILE_DIR="/var/media/J_CCSA_X64FRE_EN-GB_/storage"

pero tu eso lo tienes que cambiar por

por ejemplo : FILE_DIR="/storage/scripts" <-- dejaria los ficheros en el mismo sitio que tienes el script "upgrade.sh" en la SD


Por otro lado, esto lo he hecho para mi Raspberry con Openelec instalado, si tienes otro sistema puede que cambien algunas rutas ....

y otra cosa importante es que copies el script "TAL CUAL" te lo pongo aqui ( respeta los saltos de lineas, espacios y demas, que me da a mi que uno de tus problemas es que no lo has copiado bien. Te lo subo por aqui tambien para que lo tengas tal cual es.


#!/bin/bash

now=$(date +'%R')
echo ${now} Inicia el proceso.

FILE_DIR="/var/media/J_CCSA_X64FRE_EN-GB_/storage"
URL="https://codeload.github.com/tvalacarta/ ... zip/master"

s=$(curl -sI $URL | grep Content-Length | cut -d ' ' -f 2)
echo El fichero de git pesa: $s

s2=$(ls -la $FILE_DIR/pelis.zip.old | awk '{ print $5}')
echo El fichero local pesa: $s2

if [ "$s" != "$s2" ]; then

echo Nos traemos el fichero
curl -o ${FILE_DIR}/pelis.zip $URL

echo Unzip del fichero
unzip -o ${FILE_DIR}/pelis.zip pelisalacarta-master/python/main-classic/* -d ${FILE_DIR} > /dev/null

echo copia el plugin
cp -r ${FILE_DIR}/pelisalacarta-master/python/main-classic/* /storage/.kodi/addons/plugin.video.pelisalacarta/ > /dev/null

echo renombra origen
mv $FILE_DIR/pelis.zip $FILE_DIR/pelis.zip.old
fi

now=$(date +'%R')
echo ${now} proceso acabado
Muchas gracias, no entiendo qué hago mal:

login as: root
root@192.168.1.9's password:
##############################################
# OpenELEC #
# http://openelec.tv #
##############################################

OpenELEC (official) Version: 6.0.1
OpenELECMOD:~ # . /storage/scripts/upgrade.sh
: not foundge/scripts/upgrade.sh: line 2:
Inicia el proceso.
: not foundge/scripts/upgrade.sh: line 5:
: not foundge/scripts/upgrade.sh: line 8:
El fichero de git pesa:
: not foundge/scripts/upgrade.sh: line 11:
/pelis.zip.old: No such file or directory
: not foundge/scripts/upgrade.sh: line 12:
El fichero local pesa:
: not foundge/scripts/upgrade.sh: line 14:
-sh: /storage/scripts/upgrade.sh: line 28: syntax error: unexpected word
OpenELECMOD:~ #

Te adjunto el script. Vaya por delante que está en el directorio correcto (/storage/scripts) y tiene otorgados los permisos.
Lo único que he hecho es abrir el tuyo, con el bloc de notas (Windows),y modificar la ruta de descarga