jueves, 30 de junio de 2016

Error de ZenSocket de Zenoss

Si aparece el siguiente error en Zenoss se debe a problemas de permisos del binario "zensocket":

ZenSocket Error: zensocket needs to be run as root or setuid

Para solucionar este error debes ubicar el binario que por lo general está en alguna de estas dos rutas:

/usr/local/zenoss/zenoss/bin/
/usr/local/zenoss/bin/

Una vez dentro del directorio, ejecuta estos comandos:

sudo chown root:zenoss zensocket
sudo chmod 04750 zensocket

Listo, ya está arreglado.

miércoles, 25 de mayo de 2016

Cambiar la zona horaria en MySQL

Con la siguiente sentencias podrás consultar la zona horaria:

1
mysql> SELECT @@global.time_zone, @@session.time_zone, TIMEDIFF(NOW(), UTC_TIMESTAMP);

Para cambiarla, puedes hacerlo con o sin reinicio del servidor MySQL. Aquí te dejo los pasos para cada una de las opciones:


Opción 1: Con reinicio del servicio

Es necesario editar el archivo "/etc/my.cnf"

Agrega o modifica la línea:

default-time-zone = '-04:00'

Luego reinicia el servicio:

$ service mysql restart



Opción 2: Sin reiniciar el servicio

En este caso puedes cambiar la zona horaria para que aplique a nivel global o solo para la sesión actual en la que estás (osea, se te desconectar y vuelves a entrear, se perderá la zona horaria elegida anteriormente)

Si el cambio lo quieres hacer global, la sentencia debe ser la siguiente:

1
mysql> SET GLOBAL time_zone = '-04:00';


En cambio, si quieres que solo aplique a la sesión actual, la sentencia debe ser esta:

1
mysql> SET time_zone = '-04:00';



Bonus (Linux):

Si se te complica utilizar números para especificar la zona horaria y te sientes más cómodo o familiarizado con los nombres, puedes agregarlos a MySQL muy fácilmente si estás trabajando en GNU/Linux (supongo que para Windows será igualmente fácil pero yo no entro ahí). Tan solo ejecuta el siguiente comando en la shell:

$ mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -uroot -p mysql

Con esto ya puedes realizar los cambios de la zonas horarias de la siguiente forma:

1
mysql> SET time_zone='America/Santiago';
o
1
mysql> SET GLOBAL time_zone='America/Santiago';

* Puede que requiera reinicio del servicio para para refrescar data en cache de antiguas zonas horarias (en caso de existir).

viernes, 20 de mayo de 2016

Error de SSL en módulo HTTP::Response de Perl

Si por alguna razón no se pueden conectar a un sitio con SSL utilizando el módulo "HTTP::Response" de Perl, puede ser que les falte una librería.

El error sería el siguiente:
Can't connect to www.example.com:443

Y los módulos afectados pueden ser, por ejemplo:
HTTP::Response, REST::Client u otros.

Intente instalar "IO::Socket::SSL"

cpan
cpan -i IO::Socket::SSL

cpanm
cpanm IO::Socket::SSL

Ejecuten el siguiente comando y vean si ya pueden conectarse:

lwp-request -USed https://www.example.com/

Ojalá les funcione, sino a seguir navegando por las oscuras aguas de la Internet.

miércoles, 16 de diciembre de 2015

Tabla Resumen de Portal Inmobiliario

He creado un nuevo sitio para la visualización de propiedades nuevas en Chile (disponibles públicamente por Portal Inmobiliario) en el cual podrán desplegar por comuna o cuidad propiedades en las categorías "Casa", "Departamento" u "Oficina", entre otras.

Espero que le sea de utilidad para alguien más como lo fue para mí en la compra de mi departamento.

http://portal.zort.cl
 
Saludos!

miércoles, 1 de octubre de 2014

Deshabilitar una interfaz controlada por "Network-Manager"


Deshabilitar la interfaz a través del archivo "interfaces"

Esta configuración te permite deshabilitar la interfaz por su nombre.



  • Configuración de Archivo "interface"

  •     Editar la configuración de "interfaces":


    # vi /etc/network/interfaces
    

        Agregar:

    auto <if>
    iface <if> inet manual
    

        * Donde <if> corresponde al nombre de la interfaz (Ej: wlan0)


  • Configuración de Archivo "Network-Manager"

  •     Editar la configuración del "Network-Manager":


    # vi /etc/NetworkManager/NetworkManager.conf
    

        Cargar plugin "ifupdown":

    [main]
    plugins=ifupdown
    

        * Pueden haber otros plugins, estos no interferirán.

        Especificar que no sobreescriba la configuración del archivo "interfaces":

    [ifupdown]
    managed=false
    



    Deshabilitar la interfaz a través del archivo "Network-Manager"

    Esta configuración te permite deshabilitar la interfaz por medio de la dirección MAC de esta.



  • Configuración de Archivo "interface"

  •     Poco interesa este archivo, ya que se puede ignorar la definición que tenga, gracias al plugin de NetworkManager: "ifupdown"


  • Configuración de Archivo "Network-Manager"

  •     Editar la configuración del "Network-Manager":

    # vi /etc/NetworkManager/NetworkManager.conf
    

        Cargar los plugins "keyfile" e "ifupdown".

    [main]
    plugins=keyfile,ifupdown
    

        * Pueden haber otros plugins, estos no interferirán.

        Especificar que sobreescriba la configuración del archivo "interfaces":

    [ifupdown]
    managed=true
    

        Agregar la dirección MAC de la interfaz a deshabilitar:

    [keyfile]
    unmanaged-devices=mac:<mac>
    

        * Donde <mac> corresponde a la dirección MAC de la interfaz (Ej: 00:11:22:33:44:55)

        Información complementaria:

            * La configuración sobre el plugin "ifupdown" es opcional, pero se recomienda para asegurar la toma de control de las interfaces.
            * Mediante las pruebas realizadas, se mantuvo deshabilitada la interfaz aún cambiándole la dirección MAC y reiniciando el "Network-Manager".
            * La siguiente configuración no me funciona y no logré encontrar información sobre la versión donde aplica:

    [keyfile]
    unmanaged-devices=interface-name:<if>
    




    Anexo 1:

        Reinicio del servicio "Network-Manager:

    # service network-manager stop
    # rm /var/lib/NetworkManager/NetworkManager.state
    # service network-manager start
    


    miércoles, 14 de mayo de 2014

    [OpenWRT] Agregar Timezone de America/Santiago


    Código tzdata de America/Santiago actualizado al 2014:

    CLT4CLST,M9.1.0/0,M4.4.0/0


    vi /usr/lib/lua/luci/sys/zoneinfo/tzdata.lua
    

    Agregar:

            { 'America/Santarem', 'BRT3' },
          + { 'America/Santiago', 'CLT4CLST,M9.1.0/0,M4.4.0/0' },
            { 'America/Santo Domingo', 'AST4' },




    vi /usr/lib/lua/luci/sys/zoneinfo/tzoffset.lua
    

    Agregar:

            wft   =  43200, -- WFT
          + clt   = -14400, -- CLT
          + clst  = -10800, -- CLST

    }    



    Después es necesario reiniciar.
    Done!



    Para entender como crear la estructura, les dejo un fragmento del manual de "tzset":

        std offset dst [offset],start[/time],end[/time]

    There are no spaces in the specification. The initial std and offset specify the standard timezone, as described above. The dst string and offset specify the name and offset for the corresponding daylight saving timezone. If the offset is omitted, it default to one hour ahead of standard time.

    The start field specifies when daylight saving time goes into effect and the end field specifies when the change is made back to standard time. These fields may have the following formats:

    ...

    Mm.w.d

    This specifies day d (0 <= d <= 6) of week w (1 <= w <= 5) of month m (1 <= m <= 12). Week 1 is the first week in which day d occurs and week 5 is the last week in which day d occurs. Day 0 is a Sunday.
    The time fields specify when, in the local time currently in effect, the change to the other time occurs. If omitted, the default is 02:00:00.


    [http://linux.die.net/man/3/tzset]


    y... ¿por qué no aparece?

    La razón, por la que Santiago no aparece en el listado de zonas horarias, se debe a que el archivo de zoneinfo, correspondiente a Santiago, no contiene la estructura que se detalló al comienzo de este post.

    Existe un script, utilizado por LuCi ("zoneinfo2lua.pl"), para rescatar las estructuras de forma automática a fin de generar el listado de zonas horarias, pero al no dar con la información, descarta dichas zonas como la de Santiago (ya que hay otras que tienen el mismo problema)

    El archivo de Santiago no tiene la información requerida:

    (últimos bytes de /usr/share/zoneinfo/America/Santiago)
    00023b0: ffff bdba 0000 ffff bdba 0004 ffff b9b0 ................
    00023c0: 0008 ffff c7c0 0008 ffff c7c0 010c ffff ................
    00023d0: b9b0 0008 ffff c7c0 010c ffff d5d0 010c ................
    00023e0: ffff c7c0 0008 4c4d 5400 534d 5400 434c ......LMT.SMT.CL
    00023f0: 5400 434c 5354 0000 0000 0000 0101 0101 T.CLST..........
    0002400: 0000 0000 0001 0101 010a0a              ...........


    TZ -> ""


    Pero, por ejemplo, el archivo de "Santa Isabel" si lo tiene:

    (últimos bytes de /usr/share/zoneinfo/America/Santa_Isabel)
    00008d0: 0004 ffff 8f80 0008 ffff 9d90 010c ffff ................
    00008e0: 9d90 0110 ffff 9d90 0114 4c4d 5400 4d53 ..........LMT.MS
    00008f0: 5400 5053 5400 5044 5400 5057 5400 5050 T.PST.PDT.PWT.PP
    0000900: 5400 0000 0000 0001 0000 0000 0001 0a50 T..............P
    0000910: 5354 3850 4454 2c4d 342e 312e 302c 4d31 ST8PDT,M4.1.0,M1
    0000920: 302e 352e 300a                          0.5.0.


    TZ -> "PST8PDT,M4.1.0,M10.5.0"

    Espero que se haya entendido.

    viernes, 14 de marzo de 2014

    PulseAudio en modo sistema (Arch Linux)

    En mi caso, tengo una Raspberry Pi con un parlante corriendo MPD.
    Para configurar PulseAudio en modo sistema, es necesario ejecutar los siguientes pasos como root:

    1.- Instalar PulseAudio

    pacman -Sy pulseaudio
    

    2.- Darle permisos para utilizar DBus

    vi /etc/dbus-1/system.d/pulseaudio.conf
    
    <!DOCTYPE busconfig PUBLIC
     "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
     "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
    <busconfig>
         <policy user="pulse">
             <allow own="org.pulseaudio.Server"/>
             <allow send_destination="org.pulseaudio.Server"/>
             <allow receive_sender="org.pulseaudio.Server"/>
         </policy>
    </busconfig>
    

    3.- Crear usuario 'pulse'

    useradd pulse
    

    4.- Crear grupo 'pulse-access'

    groupadd pulse-access
    

    5.- Agregar el usuario 'pulse' al grupo 'audio'

    usermod -a -G audio pulse
    

    6.- Agregar al grupo 'pulse-access' todos los usuarios que utilizaran PulseAudio

    usermod -a -G pulse-access <your_user>
    

    7.- Cambiar el directorio 'home' del usuario 'pulse'

    usermod --home /var/run/pulse pulse
    

    8.- Cambiar la linea del archivo client.conf

    vi /etc/pulse/client.conf
    
    - ;autospawn = yes
    + autospawn = no
    

    9.- Agregar PulseAudio como servicio dentro de Systemd

    vi /usr/lib/systemd/system/pulseaudio.service
    
    [Unit]
    Description=PulseAudio Daemon
    Documentation=man:pulseaudio(1)
    
    [Service]
    ExecStart=/usr/bin/pulseaudio --system --high-priority --disallow-exit --disable-shm --disallow-module-loading=1 --log-target=stderr --exit-idle-time=-1
    ExecReload=/bin/kill -HUP $MAINPID
    
    [Install]
    WantedBy=multi-user.target
    

    10.- Refrescar la configuración del Systemd

    systemctl --system daemon-reload
    

    11.- Habilitarlo dentro de Systemd

    systemctl enable pulseaudio
    

    12.- Crear el home de pulseaudio

    mkdir -p /var/run/pulse
    chown -R pulse: /var/run/pulse
    

    13.- Reiniciar el equipo

    reboot