Consultando dominios con servidores de nombres específicos

En Unix/Ubuntu se pueden conocer los Servidores de Nombres (DNS) que estamos usando:

cat /etc/resolv.conf

Todas las direcciones IP de google.com

dig google.com A +noall +answer

dig google.com A +short

Servidores de Correo de yahoo.com

dig yahoo.com MX +noall +answer

dig yahoo.com MX +short

Servidores DNS autorizados para Facebook

dig facebook.com NS +noall +answer

dig facebook.com NS +short

Consulta a delicious.com con un DNS específico (8.8.8.8)

dig @8.8.8.8 delicious.com A +short;
dig @8.8.8.8 delicious.com MX +short;
dig @8.8.8.8 delicious.com NS +short;

dig @8.8.8.8 delicious.com ANY

Servidores de Nombres públicos

El mundialmente famoso Servidor de Nombres público: 4.2.2.2

También se encuentran los compartidos por Google:

http://code.google.com/speed/public-dns/

8.8.8.8
8.8.4.4

Para más información, por favor consulte:

Por ejemplo, para consultar los Servidores de Nombres de dreamhost.com usando el DNS 4.2.2.2 se debe ejecutar:

dig @4.2.2.2 dreamhost.com NS +short

Encontrando problemas de alta latencia o de pérdida de paquetes

Ping sirve para verificar que la configuración de los servicios de red TCP/IP están funcionando correctamente. Es muy usado para encontrar problemas de alta latencia o de pérdida de paquetes.

ping -c 3 `hostname -i`

fping `hostname -i`

Comprueba que la pila TCP/IP funciona bien en la tarjeta de interfaz de red (NIC).

Si lo anterior no funciona, hay que comprobar si se han cargado de manera adecuada los servicios TCP/IP.

Puerta de enlace por defecto

ping -c 3 `route -n | grep 'UG' | awk '{ print $2 }'`

fping `route -n | grep 'UG' | awk '{ print $2 }'`

Comprueba que la tarjeta de interfaz de red está funcionando en la subred local haciendo ping a la parte local de la puerta de enlace predeterminada que es un Router.

Si lo anterior no funciona, hay que comprobar que TCP/IP está ligado a la NIC. A continuación, comprobar que la IRQ del NIC, y la dirección base se han establecido correctamente tanto en la propia tarjeta como en la configuración de la interfaz del sistema operativo.

Dirección IP a través de la puerta de entrada

El comando traceroute muestra los nodos/aparatos/routers que se recorren para llegar al destino. Algunos se encuentran en nuestra oficina u hogar (LAN) y otros están en la red de la organización que ofrece el servicio de conexión al Internet (ISP) y otros afuera en otros destinos o nodos de enlace usados para llegar al destino.

traceroute www.google.com

mtr www.google.com

ping -c 3 `traceroute -n -w 2 -q 2 -m 30 www.google.com | egrep '^ 2' | awk '{ print $2 }'`

ping -c 3 `traceroute -n -w 2 -q 2 -m 30 www.google.com | egrep '^ 4' | awk '{ print $2 }'`

ping -c 3 `traceroute -n -w 2 -q 2 -m 30 www.google.com | egrep '^ 6' | awk '{ print $2 }'`

ping -c 3 `traceroute -n -w 2 -q 2 -m 30 www.google.com | egrep '^ 8' | awk '{ print $2 }'`

ping -c 3 `traceroute -n -w 2 -q 2 -m 30 www.google.com | egrep '^10' | awk '{ print $2 }'`

Comprueba que la puerta de enlace por defecto está correctamente identificada en la configuración de TCP/IP, tambiém comprueba que la máscara de subred está correctamente configurada.

La dirección IP anterior no debe estar en la subred local.

Nombre de dominio

ping -c 3 www.google.com

fping www.google.com

Comprueba que los servicios de nombres de dominio (DNS) están correctamente configurado en la pila TCP/IP.

Si lo anterior no funciona, hay que comprobar que la dirección IP del servidor DNS se introduce en forma adecuada en la configuración de TCP/IP.

Para más información, por favor consulte:

Conociendo las interfaces que se encuentran arriba o abajo

Para desplegar todas las interfaces disponibles, aunque se encuentren abajo:

ifconfig -a

Otro comando que permite desplegar las direcciones IP asignadas a las interfaces:

ip addr show

Listar todas las interfaces que se encuentran arriba o abajo:

ip link show | grep 'state UNKNOWN' | cut -d: -f2;
ip link show | grep 'state DOWN' | cut -d: -f2;
ip link show | grep 'state UP' | cut -d: -f2

Listar todas las direcciones IP de todas las interfaces, incluyendo las IPv6:

ip addr list | egrep 'inet6? ' | cut -d' ' -f6 | cut -d/ -f1

Conexión ethernet

Obtiene la dirección IP asignada a la interfaz eth0:

ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}'

Muestra el estado de la interfaz ethernet eth0:

ethtool eth0

Conexión inalámbrica

Obtiene la dirección IP asignada a la interfaz wlan0:

ifconfig wlan0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}'

Muestra el estado de la interfaz inalámbrica wlan0:

iwconfig wlan0

Entendiendo las puertas de enlace

De manera general, los aparatos (computadoras o servidores) que controlan el tráfico dentro de la red de una oficina de una empresa, también de la red de una persona en su hogar gracias a un ISP (Proveedor de servicios de Internet) se conocen como Gateway Nodes.

Es común que en la red de una empresa un servidor funcione como Gateway Node y también como Proxy Server y Firewall Server.

Un Gateway a menudo se asocia con un Router, que sabe hacia dónde dirigir un determinado paquete de datos que llega al Gateway, y un Switch, que proporciona la ruta real dentro y fuera del Gateway para un determinado paquete.

Obtiene la IP asignada al Gateway que se encuentra UG (Up and running Gateway):

route -n | grep 'UG' | awk '{ print $2 }'

netstat -r | grep 'UG' | awk '{ print $2 }'

Obtiene el tipo de aparato y también la IP asignada al Gateway desde la tabla de enrutamiento:

ip route show | grep 'default' | awk '{ print $5 ": " $3 }'

 Si las direcciones IP anteriores calzan con los siguientes patrones de IP: 10.xxx, 192.168.xx ó 172.16.xx a 172.31.xx entonces es probable que usted tiene lo que se conoce como una dirección IP RFC1918 (a menudo conocidas como direcciones privadas).

Actualizando la base de datos después de mover la instalación

En WordPress cuando se mueve una instalación de un nombre de dominio hacia otro nombre de dominio diferente, en el programa cliente de la base de datos de MySQL es necesario ejecutar las siguientes actualizaciones o sustituciones:

USE {DATABASE_NAME}

UPDATE wp_options SET option_value = replace(option_value, 'http://{OLD_URL}', 'http://{NEW_URL}') WHERE option_name = 'home' OR option_name = 'siteurl';

UPDATE wp_posts SET guid = replace(guid, 'http://{OLD_URL}','http://{NEW_URL}');

UPDATE wp_posts SET post_content = replace(post_content, 'http://{OLD_URL}', 'http://{NEW_URL}');

UPDATE wp_postmeta SET meta_value = replace(meta_value,'http://{OLD_URL}','http://{NEW_URL}');

UPDATE wp_users SET user_url = replace(user_url, 'http://{OLD_URL}', 'http://{NEW_URL}');

Desde el programa cliente de MySQL

Lo primero que hay que hacer es entender la ayuda disponible del servidor de bases de datos MySQL:

mysql --help

También es muy importante conocer su versión:

Desde el Shell:

mysql -V

Desde el programa cliente de MySQL:

SELECT VERSION(), CURRENT_DATE;

Conexión

Sólo requiere de un {USER} y de un {PASSWORD}. Si el servidor se está ejecutando en un ordenador distinto desde donde estamos estableciendo la conexión, también se deberá especificar el nombre de {HOST}.

mysql -u {USER} -p {PASSWORD} -h {HOST}

Por ejemplo, para conectarse como el usuario root del servidor de bases de datos MySQL local se debe utilizar:

mysql -h localhost -u root -p

Bases de datos en el servidor

SHOW DATABASES;

Utilizando una base de datos por defecto

USE {DATABASE_NAME}

Esto le dice a MySQL que use a {DATABASE_NAME} como la base de datos por defecto para la interpretación de los comandos siguientes. Hasta el final de la sesión o hasta que se use nuevamente otro USE.

Ver la base de datos actualmente en uso

SELECT DATABASE();

Si usted no puede listar o usar las bases de datos es porque usted necesita solicitar a la persona encargada de administrar el servidor de bases de datos MySQL los permiso necesarios para hacerlo:

GRANT ALL ON {DATABASE_NAME}.* TO '{USER}'@'{HOST}';

Por favor consulte: http://dev.mysql.com/doc/refman/5.6/en/account-management-sql.html

Tablas contenidas en la base de datos actual

SHOW TABLES;

Ver la estructura de una tabla

DESCRIBE {TABLE_NAME};

Información de los índices de una tabla

SHOW INDEX FROM {TABLE_NAME};

Caso común:

Ingresar como root al programa cliente del servidor de la base de datos MySQL:

mysql -h localhost -u root -p

Crear una nueva base de datos:

CREATE DATABASE {DATABASE_NAME};

GRANT ALL PRIVILEGES ON {DATABASE_NAME}.* TO '{USER}'@'{HOST}' IDENTIFIED BY '{PASSWORD}';

FLUSH PRIVILEGES;

Por favor consulte: http://dev.mysql.com/doc/refman/5.6/en/sql-syntax-data-definition.html

En algunos casos importar o restaurar una base de datos MySQL desde un archivo (Dump):

mysql -h localhost -u {USER} -p {DATABASE_NAME} < {FILENAME}.sql

Otros caso, puede ser, vaciar una base de datos existente:

DROP DATABASE {DATABASE_NAME};
CREATE DATABASE {DATABASE_NAME};

Para más información, por favor consulte: http://dev.mysql.com/doc/refman/5.6/en/tutorial.html

Sustitución de cadenas en todos los archivos

Util para sustituir cadenas en todos los archivos del directorio actual y de manera recursiva dentro de todos sus demás directorios también:

find . -type f -print0 |xargs -0 perl -p -i -e 's/Cadena/Palabra/g'

perl -p -i -e 's/Cadena/Palabra/g' `grep -ril Cadena *`

Por ejemplo, en WordPress, para crear un nuevo tema llamado Poet y totalmente basado en el tema Twenty Eleven, es necesario usar:

find . -type f -print0 |xargs -0 perl -p -i -e 's/Twenty Eleven|Twenty_Eleven/Poet/g';

find . -type f -print0 |xargs -0 perl -p -i -e 's/twentyeleven_/poet_/g';

find . -type f -print0 |xargs -0 perl -p -i -e 's/twentyeleven/poet/g';