Nextant: Indexador de ficheros de nextcloud

Una vez instalado Nextcloud vemos que la interfaz cambia un poco además de que tenemos un montón de aplicaciones disponibles que no teníamos con owncloud.

En antaño había instalado una aplicación para indexar el contenido que hay dentro de los ficheros almacenados en el cloud, pero a partir de alguna de las actualizaciones de owncloud dejó de funcionar, traté de identificar el bug y solucionarlo, pero la cosa se quedó al aire y fuera de mis capacidades, así que simplemente desactivé dicha aplicación. Ahora con Nextcloud vuelve a aparecer una herramienta, basada en solr/java para indexar el contenido de los ficheros. El solr es un viejo conocido (monstruo) en Alfresco, así que vamos a ver como trabaja en la instancia de cloud que tengo en funcionamiento, mucho mas cargada de ficheros y documentación que la que tenía inicialmente en Alfresco… también los años van pasando…

Vamos a ver pues como instalar Nextant

Solr
Primero tendremos que instalar solr como servicio, para ello tendremos que instalar primero java y después solr.

Mi primera pregunta, ¿cuál java? ¿el SE, JRE, JDK? el JDK.

Lo guardamos en /opt por ejemplo y lo descomprimimos, a continuación creamos un link simbólico en alguno de los directorios de ejecución (mirar printenv para ver cuales son)

# cd /opt
# tar xvzf jdk-9.0.1_linux-x64_bin.tar.gz
# cd /usr/local/bin
# ln -s /opt/jdk-9.0.1/bin/java .

Comprobamos que java nos aparece como un programa escribiendo directamente en la terminal java –version

# java --version
java 9.0.1
Java(TM) SE Runtime Environment 

Migrar de owncloud a nextcloud

Nextcloud es el fork que se hizo de Owncloud cuando éste empezó a ofrecer un servicio premium y aplicaciones de pago. Para ello la comunidad decidió pasarse a Nextcloud, manteniendo las actualizaciones y funcionalidad de y con Owncloud.

Hace ya un par de años instalé Owncloud en un servidor que lo he ido actualizando de vez en cuando, hace unas semanas decidí pasar de Owncloud a Nextcloud, así que lo actualicé a la versión 10.0.3 para previamente pasarlo a Nextcloud pero me encontré que la versión 12.0.3 de Nexcloud aún no estaba preparada para migrar desde Owncloud 10.0.3. Así que tuve que esperar hasta la release de la versión 12.0.4 de Nextcloud ayer mismo :)

Lo primero será realizar una copia de seguridad de los ficheros y de la base de datos. Una recomendación que hago que se realice automáticamente a diario.

Mi instancia de owncloud la tengo instalada en /var/www y tengo separados los ficheros en 2 directorios, owncloud que es donde se almacena el software del programa y ownclouddata que es donde se almacenan los ficheros de los usuarios, además tengo un script que hace un dump de la base de datos.

Nos posicionaremos pues en el directorio superior de donde tenemos owncloud y descargaremos la última versión de nextcloud

# cd /var/www
# wget -c --no-check-certificate https://download.nextcloud.com/server/releases/nextcloud-12.0.4.zip
# unzip nextcloud-12.0.4.zip

Copiaremos el fichero de configuración de owncloud a nextcloud

# cp owncloud/config/config.php nextcloud/config/

Tendremos que cambiar el directorio por defecto de trabajo del servidor web (apache en …

Clonar un disco con errores

Cuando los sistemas funcionan a diario es normal que con el tiempo los discos empiezan a dar errores, para ello tenemos a un buen aliado que se llama S.M.A.R.T. que nos avisa cuando la salud de un disco duro no es buena y cuando empiezan a salir errores, la recomendación es parar el disco y reemplazarlo.

Esta vez el disco que tengo tiene las configuraciones enteras de un sistema operativo y reinstalar y reconstruir el sistema operativo desde 0 sería mucho trabajo, así que la opción por la que he optado es clonar el disco duro a otro disco duro que no tiene errores (comprobado con badblocks!).

Al hacer el dd se me ha cortado a medio proceso porque se ha encontrado con la parte del disco defectuosa, así que he tenido que añadir un par de opciones para omitir los errores y seguir con el clonado:

# dd if=/dev/sda |pv |dd of=/dev/sdb conv=noerror,sync

El disco duro que estoy tratando de recuperar, realmente tiene varios sectores defectuosos que con dd no hay forma de clonar, así que he tenido que usar otra herramienta gddrescue

# apt-get install gddrescue
# ddrescue -d -r3 /dev/sda /dev/sdb clonacion.log

Con el -d le decimos a ddrescue que haga un acceso directo al disco e ignore el cache del kernel (clonación bit a bit)
Con el -r3 le indicamos que pruebe hasta 3 veces la lectura de los sectores defectuosos

Después de un buen rato finalmente el disco ha sido clonado con éxito y el …

Vim: mostrar barra de %

Hace unos días que instalé debian 9 y vim no tenía el comportamiento que me gustaba, en un post anterior expliqué como sacar por ejemplo el modo mouse que al seleccionar te activaba el mode visual.

Hace días quise activar la barra de % de lectura del fichero y también el nombre del fichero, pero no conseguía que se aplicase la configuración y tenía que usar el set ruler cada vez que abría el fichero. Hoy porfin en el mismo fichero que editábamos en el post referenciado, se me ha ocurrido comentar una línea

# vi /usr/share/vim/vim80/defaults.vim
set history=200         " keep 200 lines of command line history
set ruler               " show the cursor position all the time
set showcmd             " display incomplete commands
"set wildmenu           " display completion matches in a status line

El set wildmenu era el que no me permitía que apareciese el ruler por defecto.

Addicionalmente, la barra inferior, me gusta tenerla de color blanco para que se diferencie del fondo negro con el que suelo trabajar, para ello modifico el fichero de configuración de /etc/vim/vimrc y al final añado lo siguiente

# vi /etc/vim/vimrc
set modeline
set ls=2

Y listos! :)…

LXC: Montar un directorio del host en un contenedor

Ésto hace tiempo lo documenté para openvz, pero con lxc cambia un poco la cosa. Voy a saco y pongo lo que se tiene que hacer hehe

Montas el punto de montaje que quieres, en mi caso estoy montando un dav con davfs2 (apt-get install davfs2) en el host en un punto de montaje:

# mkdir /mnt/dav_capa8
# mount -t davfs -o gid=www-data,uid=www-data https://cloud.capa8.net/remote.php/webdav/ /mnt/dav_capa8/

Previamente he puesto las credenciales en /etc/davfs2/secrets del acceso al webdav

y luego así se lo paso al contenedor:

# pct set 102 -mp0 /mnt/dav_capa8,mp=/mnt/dav_capa8

Reinicio el contenedor y el nuevo mountpoint ya está accesible

Sólo me falta comprobar si el usuario www-data que es quien tiene que escribir en éste punto de montaje tiene permisos suficientes.

Para que se monte el davfs al iniciar el sistema, editaremos el fichero /etc/fstab y la última línea:

# vi /etc/fstab
/dev/pve/root / ext4 errors=remount-ro 0 1
/dev/pve/swap none swap sw 0 0
proc /proc proc defaults 0 0
/dev/sdb1 /var/lib/vz2 ext4 defaults 0 0
https://cloud.capa8.net/remote.php/webdav/ /mnt/dav_capa8/ davfs noauto,user 0  0

Convertir pdf a jpg

Normalmente cuando tengo que editar un pdf lo abro con inkscape, pero esta vez me encuentro un pdf que son unos planos y la conversión con inkscape se lo toma con la calmísima, así que total como sólo necesito una imagen, voy a convertir el contenido del pdf a imagen y me ahorro varias horas de espera…

¿Cómo?

# convert -verbose -density 150 -trim plano.pdf -quality 100 -flatten -sharpen 0x1.0 plano.jpg

Ahora a cargarlos en el inkscape como imagen y a redimensionar a mi gusto :)

EOF…

radicale: servidor de CalDAV

Hace ya unos meses que me persiguen para integrar el calendario de varias herramientas, como owncloud (nextcloud), egroupware, thunderbird y el móvil pero ninguno de los dos primeros las versiones que tengo instaladas permiten compartir el calendario públicamente para que las otras herramientas puedan acceder a él. Así que sólo nos queda o tirar de googlecalendar o montar nuestro propio sistema de CalDAV.

Primero de todo remarcar que vamos a tener los calendarios en 2 modos, sólo lectura y otros de escritura y lectura, el motivo es que algunos calendarios van a ser públicos y otros privados, los públicos no se van a poder modificar y los entregaremos en formato ics, los privados si :)

Vamos a ello

Aunque radicale está en los repositorios de debian, vamos a descargarnos la última versión de su página web.

root@radicale-dav:~# apt-get install apache2

Instalaremos python-setuptools y apache2-utils para crear passwords y usuarios a nuestros calendarios

root@radicale-dav:~# apt-get install python-setuptools apache2-utils

Ahora descargamos radicale y lo instalamos

root@radicale-dav:~# cd /var/www
root@radicale-dav:/var/www# wget -c --no-check-certificate https://pypi.python.org/packages/source/R/Radicale/Radicale-1.1.1.tar.gz
root@radicale-dav:/var/www# tar xvzf Radicale-1.1.1.tar.gz
root@radicale-dav:/var/www# mv Radicale-1.1.1 radicale

Ahora creamos un sitio donde vamos a almacenar el fichero de configuración

root@radicale-dav:/var/www/radicale# mkdir /etc/radicale
root@radicale-dav:/var/www/radicale# cp config /etc/radicale/

Y ahora lo modificamos y dejamos algunas líneas como indico

root@radicale-dav:/var/www/radicale# vi /etc/radicale/config
hosts = 127.0.0.1:5232
daemon = True
base_prefix = /
type = filesystem
filesystem_folder = /var/www/radicale_collections

Creamos el usuario que va a hacer funcionar radicale y creamos el directorio donde se van a guardar los calendarios de los usuarios

root@radicale-dav:/var/www# 

dlna: cliente en debian (sólo audio)

Ya empezamos con las abreviaciones estas tan odiosas que usamos los informáticos, pues DLNA es una cosa que poco a poco van teniendo cada vez mas televisores y proyectores y uno de los primeros dispositivos que lo usó fue el chromecast de google, quien tenga alguno sabrá la maravilla que es éste servicio.

En pocas palabras sirve para mandar contenidos multimedia entre dispositivos, por ejemplo vídeos y audios.

La forma que hasta el momento he usado es el uso de una extensión de chrome para streamear al chromecast, me permite reproducir pestañas del navegador en el televisor, pero también youtube y netflix si detectan que hay un dispositivo dlna me da la opción de mandar el contenido al chromecast. Con el móvil android mas de lo mismo.
En resumen que puedo ver y escuchar lo que tengo en el portátil y en el móvil en el televisor y mi móvil pasa a ser otro mando de mi televisor. Vamos que chromecast es uno de los culpables porque mi tonto televisor tenga mucha guerra y una nueva vida :) -lo de usar el televisor para ver la TDT es agua pasada!-

Hace unos meses me percaté que dlna no era una cosa exclusiva de chromecast, sino que estaba cada vez mas en televisores e incluso proyectores. Así que me olí algún tipo de estandarización y efectivamente, dlna son las siglas de digital living network alliance, algo muy similar a lo que usan ya nuestras impresoras con el upnp. Empecé a buscar …

El analfabetismo digital, la lacra del siglo XXI

En la antiguedad los que tenían acceso a los libros tenían el poder y la sabiduría de someter a los que no la tenían, durante la edad media el acceso a los mismos estaba al alcance de unos pocos y sometían al resto de la población mediante el miedo y la desinformación, no les interesaba en absoluto que la gente fuese capaz de pensar por si misma y llegar a sublebarse, la mejor forma de hacerlo era privarles el acceso a los libros.

Todo cambió con la invención de la imprenta de Guttenberg alrededor del año 1450, en el que se podían replicar mecánicamente textos escritos. Pero había una limitación, que la gente no sabía leer ni escribir, el llamado analfabetismo, según la wikipedia:

“El analfabetismo para algunos es simplemente la incapacidad de leer y escribir que se debe generalmente a la falta de enseñanza de las mismas capacidades. Avala esta definición el hecho de que en los países que tienen una escolarización obligatoria el analfabetismo es minoritario.

Según las Naciones Unidas una persona analfabeta es aquella que no puede ni leer ni escribir un breve y simple mensaje relacionado con su vida diaria. Aunque la educación básica (primaria y secundaria) cada vez llega a más lugares, muchos jóvenes, por diversas razones, no asisten a la escuela y por lo tanto, algunos de ellos no saben leer ni escribir.”

Alrededor de los años ’40 se crea el primer ordenador, accesible sólo a grandes corporaciones, debido a su tamaño y precio, …

Anotaciones: editar un vídeo con un audio externo

Tengo una videocamera que graba en formato MTS desenlazado, en trozos de 32 minutos y una pequeña grabadora que graba en formato WAV, así que tengo que montar todo esto para que caze :P

Enlazar los vídeos y pasarlos a formato avi

$ ffmpeg -i 00009.MTS -vcodec libxvid -acodec libmp3lame -deinterlace -ab 192k -qscale 0 tros1.avi
$ ffmpeg -i 00010.MTS -vcodec libxvid -acodec libmp3lame -deinterlace -ab 192k -qscale 0 tros2.avi
$ ffmpeg -i 00011.MTS -vcodec libxvid -acodec libmp3lame -deinterlace -ab 192k -qscale 0 tros3.avi
$ ffmpeg -i 00012.MTS -vcodec libxvid -acodec libmp3lame -deinterlace -ab 192k -qscale 0 tros4.avi

Fusionar (concatenar) los trozos

$ avimerge -o video_complet.avi -i tros1.avi tros2.avi tros3.avi tros4.avi

Esto no sé porque, pero aunque los vídeos los audios estan alineados correctamente al fusionarlos pues se jode el invento :(

Convertir el wav a mp3

$ ffmpeg -i 032417-173825.WAV -vn -ar 44100 -ac 2 -ab 192k -f mp3 audio.mp3

Cortar el audio
Con el audacity, control+k para eliminar el trozo seleccionado y exportamos el audio en formato mp3 a 192k

Fusionar el audio y el vídeo
Con el Openshot, mucha paciencia y los dedos cruzados a que vayan a la misma velocidad…

ROUND 2
Pues como de costumbre cuando trabajas con audios y vídeos… las cosas no siempre son tan sencillas xD así que en el round 2 al no conseguir un vídeo entero porque el audio queda descompensado, voy a partir el audio en trozos de 5 minutos y lo voy a montar con el openshot.

para …