Archivo

Archivo del autor

Medir la velocidad de conexión en OPNSense

domingo, 18 de septiembre de 2022 Sin comentarios

En el caso de que estemos utilizando OPNsense como router y queramos hacer una prueba de velocidad desde el mismo para intentar aislar cualquier otro problema de nuestra red local, existe un proyecto ideal que hace uso de Speedtest.net .

Sólo tenemos que conectarnos a nuestro OPNsense mediante SSH para que nos permita lanzar algunos comandos. Lo primero será descargar el script mediante el comando «fetch» (cabe recordar que estamos en una FreeBSD):

fetch -o speedtest.py https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py

Después podremos ejecutar el script mediante el siguiente comando y veremos como nos ofrece los resultados de velocidad al terminar:

python3 speedtest.py

El script es capaz de dejarnos escoger el servidor contra el que queremos lanzar las pruebas y también nos permite seleccionar el interfaz de red que queremos utilizar para realizarlas, algo importante si en nuestro sistema disponemos de varias conexiones WAN o VPNs. Para esto último necesitaremos indicarle la IP de dicha interfaz tal que así:

python3 speedtest.py –source 90.90.90.123

Categories: OPNsense Tags: , ,

Webapps en Ubuntu (cuando los snaps lo complican todo)

viernes, 13 de mayo de 2022 Sin comentarios

Debido a cómo interactúan los snaps con el sistema, todo aquel Firefox que esté instalado de dicha forma no permite el funcionamiento de PWA. Para subsanar el inconveniente tendremos que desinstalar Firefox de la siguiente forma:

sudo snap remove firefox

Añadimos un repositorio donde tengamos disponible la versión clásica de Firefox y le damos prioridad para que se instale desde ahí:

sudo add-apt-repository ppa:mozillateam/ppa

cat << EOF | sudo tee /etc/apt/preferences.d/firefox
Package: firefox*
Pin: origin ppa.launchpadcontent.net
Pin-Priority: 600
EOF

sudo apt -y install firefox

También necesitaremos eliminarlo de la supervisión de AppArmor (el primer comando nos permitirá saber si realmente está afectado por ello o no):

sudo aa-status

sudo ln -s /etc/apparmor.d/usr.bin.firefox /etc/apparmor.d/disable

sudo apparmor_parser -R /etc/apparmor.d/usr.bin.firefox

 

Categories: GNU/Linux, Sin categoría, Ubuntu Tags: , ,

Webapps en Gnu/Linux

lunes, 9 de mayo de 2022 Sin comentarios

Cada vez existen menos aplicaciones dedicadas de escritorio y más servicios webs que suplen las necesidades de los usuarios. Las webapps vienen a fusionar ambos mundos: convierten los servicios web en aplicaciones aparentemente independiente del navegador. Por debajo lo que hacen es utilizar el motor de un navegador (en nuestro caso Firefox) para mostrar las distintas webs que necesitamos usar a modo de aplicaciones clásicas.

Se necesitan instalar dos piezas de software que trabajan en conjunto:

  • PWAs For Firefox: se encarga de hacer el trabajo pesado. Suele estar disponible empaquetado en rpm, deb y msi para distintas plataformas.
  • Addon para Firefox: una extensión que se instala en el navegador y que nos permitirá ir agregando las páginas webs que deseemos.

Una vez instalado el primero, instalaremos la runtime con el siguiente comando:

firefoxpwa runtime install

Ahora sólo tendremos que abrir la página web desde Firefox de, por ejemplo, nuestro Airsonic local, pulsar sobre la extensión y, seguidamente, darle a «Install current site».

Para comprobar qué tal ha ido bastará utilizar este comando:

firefoxpwa profile list

Nos mostrará algo similar a lo siguiente:

========================= Default ==========================
Description: Default profile for all sites
ID: 00000000000000000000000000

Sites:
– airsonic: http://10.18.1.19:8080/ (01G3MWVNVOPZZD4N6Y4C6ZHAAG)

Y para ejecutar nuestra webapp sólo tendremos que escribir el siguiente comando:

firefoxpwa site launch 01G3MWVNVOPZZD4N6Y4C6ZHAAG

Sólo nos faltaría hacer un acceso directo acorde con su icono y ya tendríamos algo similar a una aplicación clásica.

Categories: GNU/Linux Tags: , ,

Error Django en Seafile

martes, 25 de enero de 2022 Sin comentarios

Si nos encontramos un error similar al siguiente en los log’s de Seafile (sobretodo al intentar crear un fichero «.md»):

django.db.utils.OperationalError: no such column: base_filecomment.uuid_id

Se debe a que en la migración a la versión 7.0 la base de datos no sufrió los cambios necesarios y nos toca hacerlos a mano.

En el caso de utilizar MySQL nos bastará con hacer lo siguiente después de haber eliminado la tabla «base_filecomment»:

CREATE TABLE `base_filecomment` (

`id` int(11) NOT NULL AUTO_INCREMENT,
`author` varchar(255) NOT NULL,

`comment` longtext NOT NULL,
`created_at` datetime NOT NULL,

`updated_at` datetime NOT NULL,
`uuid_id` char(32) NOT NULL,

`detail` longtext NOT NULL,
`resolved` tinyint(1) NOT NULL,

PRIMARY KEY (`id`),
KEY `base_filecomment_uuid_id_4f9a2ca2_fk_tags_fileuuidmap_uuid` (`uuid_id`),

KEY `base_filecomment_author_8a4d7e91` (`author`),

KEY `base_filecomment_resolved_e0717eca` (`resolved`),

CONSTRAINT `base_filecomment_uuid_id_4f9a2ca2_fk_tags_fileuuidmap_uuid` FOREIGN KEY (`uuid_id`) REFERENCES `tags_fileuuidmap` (`uuid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Si se trata de SQLite tendremos que eliminar la tabla «base_filecomment» y recrearla con lo siguiente:

CREATE TABLE «base_filecomment» (
«id» integer NOT NULL PRIMARY KEY AUTOINCREMENT,
«author» varchar(255) NOT NULL,
«comment» text NOT NULL,
«created_at» datetime NOT NULL,
«updated_at» datetime NOT NULL,
«uuid_id» char(32) NOT NULL REFERENCES «tags_fileuuidmap» («uuid»),
«detail» text NOT NULL,
«resolved» bool NOT NULL);

Actualizando desde Opensuse Leap a Tumbleweed

sábado, 22 de enero de 2022 Sin comentarios

OpenSuse Tumbleweed es un distribución Linux de filosofía rolling-release mientras que le versión Leap es del tipo clásico. Si queremos pasar de una a otra deberemos realizar un cambio de repositorios y después actualizar desde ellos.

Primeramente realizamos una copia de seguridad de los repositorios que estamos utilizando actualmente:

mkdir /etc/zypp/repos.d/old
mv /etc/zypp/repos.d/*.repo /etc/zypp/repos.d/old

Añadimos los nuevos:

zypper ar -f -c http://download.opensuse.org/tumbleweed/repo/oss repo-oss

zypper ar -f -c http://download.opensuse.org/tumbleweed/repo/non-oss repo-non-oss

zypper ar -f -c http://download.opensuse.org/update/tumbleweed/ repo-update

zypper ar -f -c http://download.opensuse.org/tumbleweed/repo/debug repo-debug

zypper ar -f -d -c http://download.opensuse.org/tumbleweed/repo/src-oss repo-src-oss

zypper ar -f -d -c http://download.opensuse.org/tumbleweed/repo/src-non-oss repo-src-non-oss

Comprobaremos que todo está correcto con el comando «zypper lr -u» y luego actualizaremos con el comando «zypper dup».

Si todo ha ido bien, sólo tendremos que reiniciar el equipo para aplicar los cambios.

Categories: OpenSuse Tags:

Mostrar tráfico de red en un terminal

lunes, 3 de enero de 2022 Sin comentarios

Si queremos visualizar de forma remota por SSH el tráfico que está gestionando uno de nuestros servidores podemos hacer uso de «bmon«. Suele estar disponible en la mayoría de repositorios oficiales y tiene el siguiente aspecto:

Screenshot 1

Actualizar contenedores LXC

domingo, 8 de agosto de 2021 Sin comentarios

Si estamos trabajando con Libvirt y deseamos realizar una actualización de sistemas de forma prácticamente desatendida, este es un script que puede resultar cómodo:

#!/bin/bash

## Recoge el nombre de los contenedores y elimina la primera línea y la última
lxc_names=»$(virsh -d 0 -c lxc:/// list –name | tail -n +2 | head -n -1)»

update_lxc_machines(){
local lxc=»$1″
virsh -c lxc:/// lxc-enter-namespace «$lxc» –noseclabel /bin/apt -qq update
virsh -c lxc:/// lxc-enter-namespace «$lxc» –noseclabel /bin/apt -qq -y upgrade
virsh -c lxc:/// lxc-enter-namespace «$lxc» –noseclabel /bin/apt -qq -y clean
virsh -c lxc:/// lxc-enter-namespace «$lxc» –noseclabel /bin/apt -qq -y autoclean
}

for lxc_name in $lxc_names
do
update_lxc_machines «$lxc_name»
done

He tomado como referencia este otro script y lo he modificado a mis necesidades.

Categories: GNU/Linux, LXC Tags:

Eliminado el administrador por error en Windows

miércoles, 21 de julio de 2021 Sin comentarios

Si manipulando los grupos de usuarios en Windows da la casualidad de que elimináis del grupo de Administradores al único usuario al que teníais acceso prácticamente os deja fuera de su configuración. Su solución es curiosa porque nos abre un amplio abanico de posibilidades.

Arrancamos con una distro de linux que nos permita acceder al sistema de ficheros de Windows y realizamos las siguientes acciones:

  • Accedemos a la ruta «windows\system32».
  • Renombramos el fichero «utilman.exe» por «utilman.exe.bak».
  • Hacemos una copia del fichero «cmd.exe» con el nombre «utilman.exe».
  • Reiniciamos el equipo para que arranque en Windows.

Cuando estemos en la pantalla de login podremos pulsar sobre el equino de las herramientas de accesibilidad que ahora nos abrirá un terminal con permisos de administrador. En él tendremos que escribir la siguiente orden:

net localgroup Administradores /add nombreUsuario

Con lo anterior pondremos al usuario «nombreUsuario» dentro del grupo de Administradores. Pero si hemos perdido por completo nuestro usuario, lo suyo es habilitar el usuario «Administrador» y asignarle una contraseña:

net user administrador /active:yes

net user administrador *

Comprobar memoria RAM en caliente

sábado, 13 de marzo de 2021 2 comentarios

En aquellos casos en los que sospechamos de zonas de memoria RAM que no funcionan correctamente y que se producen en equipos con funciones de servidor en los que un reinicio para utilizar Memtest86+ nos supone un problema podemos optar por «memtester».

Con el comando «free» podemos averiguar cuánta memoria tiene nuestro equipo utilizada y cuánta libre. Sabiendo esto lanzamos nuestra nueva herramienta indicándole cuánta memoria tiene que reservar para testearla y cuántas pasadas debe realizar:

memtester 20131 2

En el caso anterior le estaríamos diciendo que comprobase algo más de 19GB y que hiciese dos pasadas. En caso de que encontrase errores veríamos mensajes como el siguiente:

FAILURE: 0x7f40f12dd82264da != 0x7f40f52dd82264da at offset 0x22fa2d27.

Sin sonido por HDMI con tarjeta gráfica Nvidia en OpenSuse

miércoles, 23 de diciembre de 2020 1 comentario

Quizás aplique a distintas distribuciones de Linux pero en mi caso concreto me ha ocurrido con OpenSuse. El problema consiste en que no aparece por ningún lado el dispositivo de sonido asociado a la tarjeta gráfica, sólo aparece la integrada de la placa base o la integrada en el procesado si es del estilo APU.

Por tanto, si hacemos un «lspci» nunca nos va a parece la segunda línea:

07:00.0 VGA compatible controller: NVIDIA Corporation GA102 [GeForce RTX 3080] (rev a1)
07:00.1 Audio device: NVIDIA Corporation Device 1aef (rev a1)

Esto es debido a que, por algún motivo que desconozco, se aplican unas reglas de configuración al detectar la tarjeta gráfica que eliminan el dispositivo y no nos permite utilizarlo. Para cambiar este comportamiento sólo tenemos que editar el fichero «/usr/lib/udev/rules.d/90-nvidia-udev-pm-G05.rules» y comentar la línea que ponga lo siguiente:

ACTION==»add», SUBSYSTEM==»pci», ATTR{vendor}==»0x10de», ATTR{class}==»0x040300″, ATTR{remove}=»1″

Tras esto y un reinicio de la máquina tendremos de nuevo la capacidad de sacar sonido a través del HDMI de nuestra gráfica Nvidia. También recordar que el uso de «pavucontrol» nos permitirá pasarle a un posible AVR el sonido en DTS.