Está en: »

Notas y recortes

Enviar mensajes entre las terminales, y/o usuarios conectados por SSH

En algún que otro día he necesitado enviarle un mensaje, notificación o aviso a los usuarios que están conectados por SSH a un servidor, por ejemplo; avisando que el servidor dentro de 5 minutos se reiniciará… o algo así.

En ese momento me he visto en el dilema, ¿cómo hacer que ellos sepan esto de forma inmediata? … mediante email demorará, y depende de que todos y cada uno de los usuarios lea el email, por mensajería instantánea (IM) no es factible, pues no siempre todos están online, en fin… todo un problemilla

Y un buen día llegó la solución … comando wall

Una línea tan simple como: Continúe leyendo…

¿Cómo usar el comando dig? (ejemplos)

El comando unix dig (domain information groper), con el permiso de nslookup, es una de las mejores opciones a la hora de hacer troubleshooting o debug de problemas DNS. Vamos a ver unos cuantos ejemplos de algunas las posibilidades que nos ofrece. Como siempre toda esta información la podéis ampliar en la página man del comando o la ayuda:

$ man dig
$ dig -h

Nota: he suprimido salida no relevante de los comandos para reducir el tamaño del artículo.

Ejecución sin argumentos

Cuando ejecutamos el comando dig sin argumentos se realiza una consulta de los NS (Name Servers) raíz o root servers “.”. Cara al troubleshooting o debug no suele ser de mucha utilidad: Continúe leyendo…

Cómo usar el comando ip en Linux (ejemplos vs ifconfig)

El comando ip, que forma parte de la iproute2 suite parece ser que es el sustituto de ifconfig, pero de momento ifconfig sigue entre nosotros, y creo que hasta que no desaparezca no dejaremos de usarlo (por comodidad, vagancia o desconocimiento del nuevo).

Vamos a ver algunos ejemplos de uso del comando ip para comenzar a familiarizarnos con él y ver como realizariamos las tareas más comunes que hacemos con ifconfig.

Ver interfaces de red y su configuración

El comando ip addr list vendría a ser lo mismo que ejecutar ifconfig. Se puede ejecutar con el mismo resultado como ip address show o ip address list: Continúe leyendo…

Query log de MySQL (general log)

En MySQL podemos habilitar un log de queries ejecutadas en el servidor llamado “general log“. Aunque no es muy recomendable tenerlo habilitado normalmente, puede resultar útil en momentos puntuales. Vamos a ver su funcionamiento:

Las variables que controlan el general log son las siguientes:

  • general_log: Indicamos si queremos habilitar o no dicho log
  • general_log_file: Indicamos el path del fichero dónde queremos el log

Mediante SHOW VARIABLES podemos verlos:

mysql> show variables like 'general_log%';
+------------------+--------------------------+
| Variable_name    | Value                    |
+------------------+--------------------------+
| general_log      | OFF                      | 
| general_log_file | /var/log/mysql/query.log | 
+------------------+--------------------------+
2 rows in set (0.00 sec)

También a partir de MySQL 5.1 tenemos que tener en cuenta el valor de “log_output“, ya que podemos indicar que en lugar de un fichero se guarde en una tabla: Continúe leyendo…

Introducción al uso de túneles SSH

Todos nos hemos encontrado en algún momento con que ese servicio al que queremos acceder está en un equipo inalcanzable desde nuestra red u otros problemas similares. Si disponemos de acceso SSH podemos solucionar fácilmente problemas de este tipo utilizando túneles SSH.

Planteamos un primer escenario, en el que tenemos un servidor de bases de datos al que podemos acceder por SSH, pero cuyo cortafuegos nos impide interactuar directamente con la base de datos (suponemos MySQL, que utiliza el puerto 3306).

Continúe leyendo…

Restringir acceso a ficheros o directorio por IP usando .htaccess

Proteger un directorio

El fichero .htaccess deberá estar colgado de él y deberá contener el siguiente código:

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "Mi control de acceso"
AuthType Basic

order deny,allow
deny from all
allow from xx.xx.xx.xxx

Cada IP con acceso deberá estar indicada en un nuevo allow. Podemos poner tantos allow como necesitemos.

Continúe leyendo…

Apache: No space left on device: Couldn’t create accept lock

El servidor web Apache lo he visto fallar de dos formas distintas (persistentes a reinicios) por el mismo problema de semáforos. Vamos a ver cómo solucionarlo:

En varias ocasiones he visto el siguiente error en el log:

[emerg] (28)No space left on device: Couldn't create accept lock

Continúe leyendo…

evitar desconexión por timeout en ssh

Problema: El servidor ssh al que te conectas cierra la conexión cuando detecta inactividad del usuario.

Solución:crear un fichero ~/.ssh/config con el contenido que indico a continuación.

Ese fichero se leerá cada vez que iniciemos una conexión ssh con cualquier host. Lo que indicamos es que queremos lanzar un paquete a modo de señal cada 120 segundos (2 minutos), haciendo saber que seguimos conectados y que no queremos que nos corte la conexión. Si por cualquier razón el servidor no respondiera tras 3 intentos de envío de señal (2*3 = 6 minutos), se cancelará la conexión.

Continúe leyendo…

Diferentes versiones de PHP según VirtualHost o directorio

Con los cambios de las versiones de PHP 5.3 y 5.4 puede resultar interesante mantener ciertas partes en una versión de PHP anterior y seguir otras con la última estable. Vamos a ver como instalar varios PHP en un mismo Apache.

La instalación del PHP, en este caso 5.2 deberá ser en modo CGI, simplemente deberemos preocuparnos de instalarlo con un prefix diferente y con el fichero de configuración en otro sitio:
Continúe leyendo…

Identificación de la key por el random art

Al generar una clave privada con ssh-keygen podemos ver al final una imagen asciigenerada a partir de la clave:

$ ssh-keygen -t dsa
(...)
The key's randomart image is:
+--[ DSA 1024]----+
|   oE   .        |
|  .. . o o       |
|      o + .      |
|   . o * +       |
|  o O = S        |
|   = X .         |
|    o o          |
|                 |
|                 |
+-----------------+

Continúe leyendo…