Está en: »

Autor: miguelcarmona

Dar acceso VNC a una máquina virtual Proxmox sin acceder al panel | xavifernandez.com

Mientras no llega la nueva versión de nuestro querido panel de control para virtualización Proxmox, si se nos plantea la necesidad de tener que dar acceso por VNC a una máquina virtual, y no queremos pasarle el root de nuestro servidor podremos hacerlo de la siguiente forma:

echo5902 stream tcp nowait root /usr/sbin/qm qm vncproxy 102 password” >> /etc/inetd.conf
 
/etc/init.d/openbsd-inetd restart

Donde 5902 es el puerto de VNC,
102 es el número de máquina virtual
y password la contraseña VNC de acceso

vía: Dar acceso VNC a una máquina virtual Proxmox sin acceder al panel | xavifernandez.com.

Dependencias en Plasmoid


Hay veces que se nos presenta el problema de que alguno de nuestros plasmoid instalados no se muestra o nos tira algún error del tipo:

No ha sido posible crear este objetos por el siguiente motivo:

El script de inicialización ha fallado

Normalmente pasa cuando actualizamos la versión del sistema o instalamos uno de nuevo.

La mejor opción para estos casos es abrirnos una consola y lanzarlo desde consola.

Para listar los plasmoid instalados:

plasmapkg -l

Para lanzar un plasmoid:

plasmoidviewer nombre-plasmoid

De esta forma podemos ver qué dependencia necesitamos o qué error nos está reportando. Sin ir más lejos, en openSuse 12.1, el plasmoid veromix no funciona a pesar de instalar varias dependencias que solicita el desarrollador. Al lanzarlo desde consola obtengo:

plasmoidviewer veromix-plasmoid
Traceback (most recent call last):
  File "/usr/share/kde4/apps/plasma_scriptengine_python/pyappletscript.py", line 59, in init
    self.module = __import__(self.pluginName+'.'+relpath)
  File "/usr/share/kde4/apps/plasma_scriptengine_python/plasma_importer.py", line 107, in load_module
    exec code in mod.__dict__
  File "/home/fasiko/.kde4/share/apps/plasma/plasmoids/veromix-plasmoid/contents/code/main.py", line 57, in <module>
    from VeroMix import VeroMix
  File "/usr/share/kde4/apps/plasma_scriptengine_python/plasma_importer.py", line 107, in load_module
    exec code in mod.__dict__
  File "/home/fasiko/.kde4/share/apps/plasma/plasmoids/veromix-plasmoid/contents/code/VeroMix.py", line 27, in <module>
    from SortedLayout import SortedLayout
  File "/usr/share/kde4/apps/plasma_scriptengine_python/plasma_importer.py", line 107, in load_module
    exec code in mod.__dict__
  File "/home/usuario/.kde4/share/apps/plasma/plasmoids/veromix-plasmoid/contents/code/SortedLayout.py", line 20, in <module>
    from SinkInputUI import InputSinkUI
  File "/usr/share/kde4/apps/plasma_scriptengine_python/plasma_importer.py", line 107, in load_module
    exec code in mod.__dict__
  File "/home/usuario/.kde4/share/apps/plasma/plasmoids/veromix-plasmoid/contents/code/SinkInputUI.py", line 27, in <module>
    from SinkUI import *
  File "/usr/share/kde4/apps/plasma_scriptengine_python/plasma_importer.py", line 107, in load_module
    exec code in mod.__dict__
  File "/home/usuario/.kde4/share/apps/plasma/plasmoids/veromix-plasmoid/contents/code/SinkUI.py", line 26, in <module>
    from Channel import Channel
  File "/usr/share/kde4/apps/plasma_scriptengine_python/plasma_importer.py", line 107, in load_module
    exec code in mod.__dict__
  File "/home/usuario/.kde4/share/apps/plasma/plasmoids/veromix-plasmoid/contents/code/Channel.py", line 27, in <module>
    from MuteButton  import MuteButton
  File "/usr/share/kde4/apps/plasma_scriptengine_python/plasma_importer.py", line 107, in load_module
    exec code in mod.__dict__
  File "/home/usuario/.kde4/share/apps/plasma/plasmoids/veromix-plasmoid/contents/code/MuteButton.py", line 23, in <module>
    from Utils import *
  File "/usr/share/kde4/apps/plasma_scriptengine_python/plasma_importer.py", line 107, in load_module
    exec code in mod.__dict__
  File "/home/usuario/.kde4/share/apps/plasma/plasmoids/veromix-plasmoid/contents/code/Utils.py", line 20, in <module>
    from xdg import BaseDirectory
ImportError: No module named xdg

Podemos ver que nos informa que no encuentra el módulo xdg por lo que al buscarlo, veo que hay un paquete llamado python-xdg el cual no está instalado. Tras instalarlo y lanzarlo de nuevo, funciona perfectamente por lo que ya sólo nos queda reiniciar la sesión.

 

Manejo habitual de LVM (volúmenes lógicos)

Manejo habitual de LVM (los comandos los proporciona el paquete lvm2 que se instala por dependencias):

  • Añadir una partición al disco virtual, primero tenemos que formatearla con fdisk y marcarla como 8e (Linux LVM). Después añadiremos la partición al disco virtual:
    vgextend disco_virtual /dev/hdc1

Continúe leyendo…

Tutorial rápido de jQuery

Con algo más de 4 años de vida, jQuery se ha convertido en la librería JavaScript más utilizada actualmente, y es que, además, es gratuita, de código abierto (bajo licencia MIT y GPL v2) e increíblemente ligera. Entre sus usuarios podemos encontrar a Google, Microsoft, IBM, Amazon, Twitter, WordPress, Mozilla o Drupal.

Para poder utilizar esta librería lo primero que tendremos que hacer será incluir su código en nuestro proyecto. Podemos descargar el script desde su página web, subirlo a nuestro servidor, y ejecutarlo con la etiqueta script:

<script type="text/javascript" src="jquery.js"></script>

También podemos cargarla directamente desde el CDN que mantiene Google:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

el de Microsoft:

<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js"></script>

o el del propio jQuery
Continúe leyendo…

Tunear Apache con cabeza

A la hora de instalar Apache debemos elegir entre dos versiones, aunque generalmente lo elegirá nuestro gestor de paquetes.

  • Apache Worker

Incluido desde Apache 2.0. Utiliza menos memoria y tiene un mejor rendimiento. Se lanzan múltiples procesos y cada uno de estos pueden correr múltiples threads.

  • Apache Prefork

Es el MPM por defecto en Apache 1.3 y Apache 2.0. Es el instalado por defecto si hacemos uso de mod_php, ya que algunos módulos de PHP no son “thread safe”. Tiene un rendimiento ligeramente peor que Worker y más consumo de memoria, pero se considera más seguro y estable. En este MPM se lanzan múltiples procesos y se ejecuta un thread por proceso.

Lo lógico sería utilizar Worker, pero vamos a basarnos en el típico ejemplo LAMP que incluye el soporte mod_php, aunque esto no sea lo más óptimo. Por dicha razón vamos a ver como deberíamos ajustar la configuración para un Prefork.

Continúe leyendo…

Comprobar si un script en bash ya se está ejecutando

bash

Algo realmente útil para cuando necesitamos que sólo haya una ejecución del mismo script (por ejemplo, para copias de seguridad automáticas llamadas mediante cron).

Lógicamente, se incluye al principio del script.

if pidof -x $(basename $0) > /dev/null; then
  for p in $(pidof -x $(basename $0)); do
    if [ $p -ne $$ ]; then
      echo "El script $0 ya se está ejecutando. Saliendo..."
      exit
    fi
  done
fi

VPN con OpenSSH

Tras Creando túneles TCP/IP (port forwarding) con SSH: Los 8 escenarios posibles usando OpenSSHReenvío dinámico de puertos / montar un servidor SOCKS con SSH, puede ser buena idea hablar de cómo crear una VPN improvisada entre dos redes cuyos nodos no pueden llegar de una red a la otra exceptuando un sistema de una de las redes que puede crear una conexión OpenSSH con otro sistema de la otra red.

OpenSSH permite esto desde su versión 4.3, y es tan sencillo que en la página man de ssh se describe en apenas 5 párrafos (sección SSH-BASED VIRTUAL PRIVATE NETWORKS). La parte no tan sencilla es la de gestionar las rutas.

Continúe leyendo…

Limitar el espacio de una carpeta sin usar cuotas en Samba

Limitar el espacio de una carpeta sin usar cuotas en Samba.

Hace poco me consultaron si se podía limitar el espacio de una carpeta Samba (samba share) sin tener control de usuarios es decir hay una carpeta por usuario que esta a su vez es ‘mapeada’ a su estación de trabajo (que corre windows) pero todos los usuarios usan el mismo usuario y el mismo password para acceder cada una de sus carpetas. La pregunta me dejo cabezón, yo nunca trabaje con Samba pero se que debe de haber forma de hacer esto. Por ahora me dispuse a crear un script que le ayudara.

Continúe leyendo…

Archivos swap y paralelización de espacio swap

Los archivos swap o particiones swap son archivos que residen en bajo el directorio / (Root Directory) o particiones dedicadas a expandir el espacio para la paginación de memoria (respectivamente). El sistema operativo mantiene el control sobre qué páginas están en memoria principal (RAM) y cuáles no; lleva un registro en la tabla de paginación y le da una prioridad mas alta a el espacio que reside en la RAM. Este espacio permite hacer creer a los programas que tienen más memoria que la disponible realmente.

Continúe leyendo…

LVM (volumenes logicos)

lvm

Manejo habitual de LVM (los comandos los proporciona el paquete lvm2 que se instala por dependencias):

  • Para añadir una partición al disco virtual, primero tenemos que formatearla con fdisk y marcarla como 8e (Linux LVM). Después añadiremos la partición al disco virtual:
    vgextend disco_virtual /dev/hdc1
  • Para aumentar el tamaño de una partición virtual, primero aumentaremos el tamaño de la partición:
    lvextend -L+120G /dev/mapper/disco_virtual-home

    y luego aumentaremos el tamaño del filesystem:

    umount /dev/mapper/disco_virtual-home
    resize2fs /dev/mapper/disco_virtual-home
    mount /dev/mapper/disco_virtual-home /home
  • Para reducir el tamaño de una partición virtual, primero reduciremos el tamaño del filesystem:
    umount /dev/mapper/disco_virtual-home
    resize2fs /dev/mapper/disco_virtual-home 80G
    mount /dev/mapper/disco_virtual-home /home

    y luego reduciremos el tamaño de la partición:

    lvreduce -L-120G /dev/mapper/disco_virtual-home
  • Para quitar una partición del disco virtual, primero moveremos los datos que contiene a otras particiones con el comando:
    pvmove /dev/hdc1

    y luego quitaremos la partición:

    vgreduce disco_virtual /dev/hdc1

    Ya podemos quitar físicamente la unidad.

vía LVM (volumenes logicos) en Linux | Estrellate y Arde.