Cargando...
Entradas del mes October, 2007
  1. He estado leyendo un artículo para poder entrar en el mac si hemos perdido la clave o se os olvidan las claves como a mi.
    http://www.faq-mac.com/mt/archives/024293.php

    Se puede hacer lo mismo en linux accediendo al al run level 1 desde Grub.

    En la pantalla menú de grub, donde tenemos las distintas entradas para seleccionar y cargar, seleccionamos el kernel que queremos arrancar y sobre él pulsamos la tecla “e” y nos vamos a la línea que pone:
    grub edit> kernel /boot/vmlinuz ro root=LABEL=/ rhgb quiet

    Y la cambiamos por :

    grub edit> kernel /boot/vmlinuz ro root=LABEL=/ 1

    Este 1 significa el nivel de arranque (runlevel) con el que arrancará el sistema.
    Pulsamos “Enter” y acontinuación pulsamos “b” para arrancar.

    Así hemos accedido a la shell directamente sin que se nos solicite contraseña de root.
    Esta es una de las razones por la que es prácticamente necesario usar contraseñas en el boot loader de nuestros sistemas, siendo mucho más seguros.

  2. Voy a intentar montar en conjunto con dos copañeros y amigos, una web con la que podamos ayudar a personas a ganar dinero.

    Todo el tema del disño lo vamos a dejar en manos de José Juan Martín, un excelente diseñador gráfico con el que hemos realizado ya algunos proyectos para empresas, el tema de la programación y diseño de la base de datos lo llevaremos entre mi compañero José Manuel Ruiz Baena y yo. El tiempo de dedicación lo tenemos muy justo ya que cada día nos es más difícil poder hacer algo antes de las 10 de la noche (hora de salida de la facultad), pero seguro que con el empeño que vamos a ponerle sacamos este proyecto como lo hemos hecho con otros.

    Pronto (eso espero) podré colgar un link con la web ON-LINE.

  3. Hola a todos, me presento, soy Manuel Fernández Panzuela.

    La idea de este blog surge por la necesidad de tener a mano un poco de documentación para montar servicios, como funcionan y sobre todo ayudar a personas que necesiten información. La mayoría son trabajos realizados en el trabajo y los demás son realizados por inquietudes, por solucionar algún tipo de necesidad, o simplemente porque me ha gustado y me ha picado el gusanillo de la curiosidad.

    Llevo en el mundo de la informática relativamente poco tiempo, pero he tenido muy buenos maestros y muchas madrugadas para poder aprender una gran cantidad cosas.

    Mis comienzos fueron hace unos 6 años viendo amigos como montaban redes para jugar con cables coaxiales, he de decir que me gustaba más la configuración y el montaje de todo, más que los mismos juegos. Fue entonces cuando compré mi primer AMD, con el que aprendí a manejar lo básico.

    Pronto llegaría el día en el que me toparía con un AMIGO, que me mostró lo que se puede hacer con linux, desde entonces comencé a probar distribuciones, pero tan solo una es la que me ha convencido y es la que uso, DEBIAN.

    Os dejo ahora una fotografía mia (más adelante), y por supuesto mi currículum.

  4. Aquí podemos ver una persecución por Sevilla, donde la policía aunque parezca raro persigue a un “cani”, no se que habrá hecho para que tantos policias le persigan y le pisen la cabeza, pero tendrían que darle un plus a todo policía que hiciese así de bien su trabajo.

    Me parece que tendrían que difundise muchos más videos como este, para que se conciencie un poco la gente de que no tenemos policía mierdosa como pensamos, sino que tenemos a policias atados de manos, a los que deberíamos dejar más libertad para usar la porra.

  5. No creo que sea tan complicado encontrar un hotelito de esos con encanto, pero está siendo toda una odisea para mi. Tengo dos días de vacaciones en diciembre e intento alquilar ahora para que sea un poco más económico, pero no encuentro nada que sea medianamente decente, todo está carísimo y el que parece estar bien está ocupado.

    Como se está complicando la cosa…

  6. Para la instalación del programa de sincronización heartbeat, usaremos los repositorios, ya que este programa se encuentra disponible en ellos.

    aptitude install heartbeat-2

    Procedimiento de arranque y parada manual

    • Arrancar el servicio:
    Desde el directorio /etc/init.d
    # ./heartbeat start
    • Parar el servicio
    Desde el directorio /etc/init.d
    # ./heartbeat stop
    • Monitorización de HeartBeat.
    Para el correcto funcionamiento de la aplicación HeartBeat la ejecución de este script debe dar como resultado 0
    /etc/init.d/heartbeat status

    Si se detectara una salida distinta de 0 habría que reiniciar la aplicación, por medio del script /etc/init.d/heartbear restart, en el nodo donde se detectará el error.

    • Configuración

    Una vez que que hemos instalado el software de HeartBeat siguiendo los pasos descritos en el Procedimiento de Instalación de HeartBeat, debemos copiar en la ruta /etc/ha.d/ las plantillas de los archivos de configuración que se ubican en la siguiente ruta: /usr/share/doc/heartbeat-2

    cp /usr/share/doc/heartbeat-2/haresources
    cp /usr/share/doc/heartbeat-2/authkeys
    cp /usr/share/doc/heartbeat-2/ha.cf /etc/ha.d/
    
    cp /usr/share/doc/heartbeat-2/ha_logd.cf /etc/logd.cf
    
    Descomentamos la línea logfacility y la dejamos así: logfacility     daemon

    Una vez tengamos los archivos copiados se deben editar y definir las caracteristicas del servicio del HeartBeat ha.cf

    Este archivo le dice a HeartBeat qué tipos de interfaces a utilizar para comunicarse con el/los otro/s nodo/s del cluster. También define los nodos que van a formar el cluster y los archivos de log donde se registraran las trazas de la aplicación. Habrá que descomentar las siguientes líneas configurándolas con los valores que se indican:

    #Archivos de log de HB
    debugfile /var/log/HA-LOG/ha-debug
    logfile /var/log/HA-LOG/ha-log
    keepalive 2
    
    # tiempo en segundos en el que se considera un sistema como 'muerto' si no responde
    deadtime 30
    
    # puerto de comunicacion por la interfaz de red
    udpport 694
    
    #velocidad de comunicacion por el puerto serie
    baud    1920  # Esto solo sería necesario en el   aso de que el cluster dispusiera de puerto serie.
    
    # Configuracion del puerto serie para el heartbeat serial
    /dev/ttySx
    
    # interfaz de red para el heartbeat
    bcast ethx
    
    # se define el auto_failback en off para que el servicio solo se balanceé ante el fallo de uno de los nodos
    auto_failback off
    
    # definicion de nodos del cluster
    node nodo1
    node nodo2
    
    # definimos la IP donde se realiza ping constantemente para comprobar la correcta conectividad del nodo
    ping default_gateway
    
    # Definimos la aplicación pingd que se encargará de actualizar el CRM al detectar cualquier fallo de conectividad
    respawn hacluster /usr/lib/heartbeat/pingd -m 100 -d 5s
    
    #Habilitamos el CRM
    crm yes

    Haresources

    En este archivo se definen los recursos que son gestionados por HeartBeat. Los recursos son script Linux Standars Base (LSB) como los que se usan para arrancar o parar servicios al arrancar el sistema en los diferentes runlevels. Heartbeat buscará estos scripts en estas dos rutas: /etc/rc.d/init.d y /etc/ha.d/resource.d, así que se debe alojar el script al menos en una de las dos.

    Nodo1 IPServicio Filesystem::/dev/mapper/volumen /ruta/a/montar:: reiserfs servicio

    La secuencia que sigue HeartBeat a la hora de levantar el servicio es la siguiente: Primero comprueba que el nodo donde definimos que se debe arrancar el servicio (Nodo1) está operativo, una vez comprobado, levanta un alias con la dirección del servicio que le indiquemos en puerto serie del servidor Activo, luego, si lo definimos así, montar el filesystem indicado, que debe estar en un disco compartido, en la ruta a montar y por ultimo arranca el servicio. Si hubiera más de un servicio los arrancaría de forma secuencial, esto es, de izquierda a derecha.
    Authkeys

    En este archivo se define el nivel de seguridad con la que se mandaran información los nodos del cluster Heartbeat. Existen tres tipos: crc, md5 y sha1. Siendo el más seguro el sha1 y el más inseguro el crc. Nosotros escogeremos el tipo intermedio md5. Para ello habrá que definir en el archivo lo siguiente.

    auth 3
    3 md5 clave
    Donde clave es la palabra que tenemos que definir en ambos nodos para que sirva de clave entre ellos.
    Una vez definida se debe cambiar los permisos de este fichero a 600 con "chmod 600 /etc/ha.d/authkeys".
    
    Una vez modificados estos ficheros habrá que ejecutar lo siguiente en cada nodo:
    
    /usr/lib/heartbeat/haresources2cib.py /etc/ha.d/haresources
    
    Esto nos crea el archivo de configuración del CRM en /var/lib/heartbeat/crm/cib.xml
    
    Una vez creado este archivo lo editaremos y añadiremos esto en la sección "constraints":
    rsc_location id="group_1:connected" rsc="group_1"
    rule id="group_1:connected:rule" score_attribute="pingd"
    expression id="group_1:connected:expr:defined" attribute="pingd" operation="defined"/
    /rule
    /rsc_location
    
    Una vez ejecutado renombraremos el archivo /etc/ha.d/haresources a /etc/ha.d/haresources_old
    
    Ahora cambiaremos el usuario y grupos propietarios de los directorios de HeartBeat:
    
    chown -R hacluster:haclient /var/run/heartbeat
    chown -R hacluster:haclient /var/lib/heartbeat
    chown -R hacluster:haclient /usr/lib/heartbeat

    /etc/hosts

    A parte de los ficheros de configuración de HeartBeat hay que definir en el archivo hosts de todos los servidores del cluster las ip series y los nombres tanto de los nodos del cluster como de los alias del servicio.

    ipnodo1       nombrenodo1  nombrenodo1.dominio
    ipnodo2       nombrenodo2  nombrenodo2.dominio
    ipservicio    nombreservicio  nombreservicio.dominio

    Sincronización Horaria

    Para el correcto funcionamiento de HeartBeat se recomienda que todos los nodos del cluster tengan la fecha y hora sincronizadas

    Comandos y usos de Heartbeat

    Arrancar HeartBeat:

    Para arrancar HB es necesario ejecutar el siguiente script con root:
    /etc/init.d/heartbeat start

    Para comprobar que Heartbeart ha arrancado correctamente ejecutar:

    /etc/init.d/heartbeat status
    
    La salida de este comando debería ser:
    heartbeat OK [pid xxxxx et al] is running on xxxx [xxxx]...

    Parar Heartbeat

    Para parar HeartBeat habrá que ejecutar este script con root
    
    /etc/init.d/heartbeat stop
    Para comprobar que Heartbeat ha parado correctamente se debe ejecutar el siguiente comando:
    ps -ef | grep heartbeat | grep -v grep
    Si este comando devuelve que aún se está ejecutando algún proceso volver a ejecutar el script de parada
    y si aún así persistiera algún proceso, habrá que proceder a matarlo con un kill -9

    Comprobar qué servicios hay en un cluster:

    Logarse como root en cualquiera de las máquinas que formen el cluster y ejecutar:
    crm_resource -L | grep Group
    Resource Group: group_1

    Comprobar en qué nodo se encuentra el servicio:

    Logarse como root en cualquiera de las máquinas que formen el cluster y ejecutar:
    # crm_resource -W -r group_1 -t group
    resource group_1is running on: emanel2

    Arrancar un servicio

    Logarse como root en cualquiera de las máquinas que formen el cluster y ejecutar:
    # crm_resource -r group_1-t group -p target_role -v started
    
    Comprobar que el servicio ha arrancado en el nodo primario

    Parar un servicio

    Logarse como root en cualquiera de las máquinas que formen el cluster y ejecutar:
    # crm_resource -r group_1-t group -p target_role -v stopped
    
    Comprobar que el servicio ya no está corriendo en ningún nodo.

    Migrar el servicio a otro nodo

    Logarse como root en cualquiera de las máquinas que formen el cluster y ejecutar:
    # crm_resource -M -r group_1 -t group -H dsusanita
    
    Comprobar que el servicio se ha realocado al nodo indicado

    Migrar el servicio al nodo primario

    Logarse como root en cualquiera de las máquinas que formen el cluster y ejecutar:
    # crm_resource -U -r group_1 -t group

    Dejar un Nodo en Standby

    Logarse como root en cualquiera de las máquinas que formen el cluster y ejecutar:
    # crm_resource -H dsusanita -v on

    Poner un Nodo OnLine

    Logarse como root en cualquiera de las máquinas que formen el cluster y ejecutar:
    # crm_resource -H dsusanita -v off

    Monitorizar el estado del Cluster

    Logarse como root en cualquiera de las máquinas que formen el cluster y ejecutar:
    # crm_mon -i2
  7. Seguro que tenemos muchas cosas en la base de datos, pero nunca hacemos copias de seguridad, ahora veremos como es tan sencillo como poner un simple script en el cron para que se ejecute periódicamente.Este es un script que permite hacer una copia de seguridad de la base de datos elgida mediante la variable BD con el usuario que pongamos en la variable User que tiene la contraseña que hemos puesto en la variable Passw . La copia de seguridad de la base de datos se almacenará en el directorio que pongamos en la variable Path con el nombre de la base de datos seguido de -1 (nombre_BD-1.sql). Para mayor seguridad hace copias rotatorias, es decir, tenemos dos copias de seguridad (nombre_BD-1.sql y nombre_BD-2.sql); la segunda será más antigua que la primera. La diferencia de fechas entres las copias vendrá dada por la frecuencia con la que se ejecute el script. Lo ideal es meter en el contrab, una tarea que llame a este script con la regularidad que creamos conveniente (aconsejo una copia diaria, siempre que la base de datos no sea demasiado grande).

    #!/bin/bash
    # Este scrip realiza una copia de seguridad de la BD seleccionada en la variable BD en el dir Path con
    # el usuario User y la passw Passw
    # Hacemos otra copia de respaldo para tener más olgura
    BD=sgiex
    Path=/root/seguridad_sgiex
    User=root
    Passw=#Poner la passw de mysql del usuario que habeis elegido
    if [ ! -d $Path ];then
    mkdir $Path
    fi
    if [ -e $Path/$BD-1.sql ] && [ -e $Path/$BD-2.sql ];then
    rm -f $Path/$BD-2.sql
    mv $Path/$BD-1.sql $Path/$BD-2.sql
    mysqldump -B $BD --opt --password=$Passw --user=$User > $Path/$BD-1.sql
    #echo "Existen los 2 $Path/$BD-1"
    elif [ -e $Path/$BD-1.sql ] && [ ! -e $Path/$BD-2.sql ];then
    mv $Path/$BD-1.sql $Path/$BD-2.sql
    mysqldump -B $BD --opt --password=$Passw --user=$User > $Path/$BD-1.sql
    #echo "Existe $BD1 y ejecuto mysqldump"
    else
    mysqldump -B $BD --opt --password=$Passw --user=$User > $Path/$BD-1.sql
    cp $Path/$BD-1.sql $Path/$BD-2.sql
    #echo "No existe ninguno y ejecuto mysqldump"
    fi

    Para la recuperación de la base de datos ponemos la siguiente orden:

    mysql --password=clave --user=usuario base_datos < archivo.sql

    Donde: clave Es la contraseña del usuario que hizo la copia de seguridad. usuario Es el usuario que realizó la copia de seguridad. base_datos Es el nombre de la base de datos que vamos a restaurar. archivo.sql Es el nombre del archivo SQL que contiene las instrucciones para restaurar la base de datos.

  8. Cuando tengamos algún tipo de error en el disco duro, y no sabemos que le pasa, lo más importante es evitar el desagradable fallo y la consiguiente pérdida de información.

    Tenemos varias opciones, reinstalar todo un un disco nuevo desde cero, o la más rápida, una clonación bit a bit (cruzando los dedos para que no falle el disco).

    Es necesario tener 2 discos duros IGUALES, para que la clonación sea perfecta, este factor es importante y muy a tener en cuenta.

    Si queremos clonar desde el disco de la máquina_A hacia la máquina_B, haremos lo siguiente:

    Arrancar una máquina con el disco duro nuevo, mediante un live (ubuntu por ejemplo).

    Escribimos el siguiente comando en la máquina_B (este primero):

    netcat -l -p 9000 | dd of=/dev/sda

    y en la máquina_A seguidamente:

    dd if=/dev/sda | netcat machine2.ip-or-name.com 9000

    Al final del proceso la máquina original dará un mensaje de lo que se ha realizado y lo que ha copiado, y ya estamos listos para desmontar el cd live y reiniciar al sistema clonado (cuidado con los interfaces de red, puede haber problemas de solapamiento de ips).

    Cuando realizé esta opción en el trabajo tardé 6 horas en colonar un disco de 250gigas, así que tenemos que armarnos de paciencia.

  9. Seguro que muchas vece nos hemos preguntado cuantas personas entran en nuestra página web, pues hay una solución muy sencilla de instalar, y que nos puede dar muchísima más información de lo que podamos pensar.

    Awstats es la solución para este problema.

    Con un sencillo “aptitude install awstats” tendremos el programa instalado en cuestión de segundos.

    Lo primero es crear un fichero en /etc/apache2, que contenga las siguientes líneas:
    Alias /awstatsclasses “/usr/share/awstats/lib/”
    Alias /awstats-icon/ “/usr/share/awstats/icon/”
    Alias /awstatscss “/usr/share/doc/awstats/examples/css”
    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    ScriptAlias /awstats/ /usr/lib/cgi-bin/
    Options ExecCGI -MultiViews +SymLinksIfOwnerMatch

    Lo llamaremos awstats.conf y lo incluimos en el fichero de configuración de apache2, apache2.conf. Añadimos al final del fichero de configuración de apache la línea Include /etc/apache2/awstats.conf

    Ahora tendremos que hacer algunas modificaciones en el fichero de configuración (/etc/awstats/awstats.conf).
    De este archivo solo modificaremos 2 cosas imprescindibles para el funcionamiento:

    - LogFile=”/var/log/apache2/access.log”
    - SiteDomain=”dominio.com”

    Una vez tenemos configurado este fichero, tendremos que ejecutar una vez la actualización de las estadísticas:

    - perl awstats.pl -config=mysite -update

    Hacemos propietario a www-data del directorio /var/lib/awstats

    - chown -R www-data:www-data /var/lib/awstats

    Ya estamos listos para entrar en el navegador y ver las estadísticas generadas:

    - www.mi-dominio.com/awstats/awstats.pl

    Si ahora queremos que se ejecute periódicamente las actualizaciones, debemos introducir una tarea en el cron del siguiente modo:

    - crontab -e
    - 30 * * * * root /usr/share/doc/awstats/examples/awstats_updateall.pl -awstatsprog=/usr/lib/cgi-bin/awstats.pl now > /dev/null

    Este script se ejecutará cada hora, cada día, siempre a y media (1:30, 2:30…).

    Se puede ver un ejemplo en la página del proyecto:
    http://awstats.sourceforge.net/

    Hay posibilidad de configurarlo en servidores de correo y ftp, aunque eso os lo dejo para que jugueis vosotros.

Creado con la plantilla ExtJS traducida por Ayuda Wordpress.