12
Oct
2011
Posted by Adri. No Comments
Ya he escrito algunos posts donde se ha hablado un poco de la administración de usuarios y permisos en MySQL como éste o  éste otro. Sin embargo, voy a resumir en un breve post la administración de usuarios y permisos de MySQL.
Podemos ver los usuarios que tenemos en el mysql con el siguiente comando:
mysql> select * from mysql.user;
Esto nos mostrará todos los usuarios definidos en mysql, separando además los usuarios por host (si tenemos un usuario user@localhost y el mismo usuario para acceder desde cualquier host user@’%', aparecerán dos lÃneas para este usuario.
Para conocer los permisos que tiene un determinado usuario, se podrá usar:
mysql> show grants for user@’host’
Por ejemplo: mysql> show grants for user@’%’
LEER MÁS
12
Oct
2011
Posted by Adri. No Comments
Un comando muy útil para ver qué velocidades soporta tu tarjeta de red, y más importante si cabe, a qué velocidad está configurada actualmente, es “ethtool”, un comando que podremos encontrar en la mayorÃa de distribuciones linux.
Un ejemplo de salida serÃa el siguiente:
[root@server root]# ethtool eth1
Settings for eth1:
Supported ports: [ TP ]
Supported link modes:Â Â 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/FullSupports auto-negotiation: Yes
Advertised link modes:Â 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/FullAdvertised pause frame use: No
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
MDI-X: Unknown
Supports Wake-on: g
Wake-on: g
Link detected: yes
Como se puede ver en el ejemplo, la tarjeta de red eth1 soporta trabajar a 10, 100 y 1000 Mbps,, pero actualmente, está trabajando a 100Mbps, tal y como se puede ver junto a “Speed”.
Un comando útil, que ofrece algo más de información que el usual “dmesg | grep eth1″.
Fuente: http://linuxhelp.blogspot.com/2005/10/find-speed-of-your-ethernet-card-in.html
12
Oct
2011
Posted by Adri. 2 Comments
Para realizar backups de bases de datos MySQL, se suele usar el comando mysqldump. Este comando, se encarga de generar las consultas necesarias para recrear toda la estructura de tablas y su contenido, a base de sentencias SQL. Sin embargo, este comando, puede resultar muy lento, para bases de datos grandes.
Si se quiere hacer un backup de una base de datos con tablas MyISAM, desde la propia documentación oficial de MySQL se insta a usar mysqlhotcopy en lugar de mysqldump:
“If you are doing a backup on the server and your tables all are MyISAM tables, consider using the mysqlhotcopy instead because it can accomplish faster backups and faster restores”
Fuente: aquÃ
LEER MÁS
11
Oct
2011
Posted by Adri. No Comments
Esta semana hemos realizado una actualización de nuestro clúster MongoDB de la versión 1.8 a la 2.0.
En nuestro caso, tenemos varias máquinas que forman parte del clúster, donde cada máquina contiene un seguido de mongods corriendo, cada uno de ellos correspondiente a un shard, que a su vez contiene un nodo de un determinado replica-set. Un poco complicado de entender, si no se ha tocado mucho MongoDB. En cualquier caso, con este escenario hemos relizado la actualización.
La idea ha sido aprovechar la funcionalidad de clúster, para poder actualizar las máquinas secundarias mientras las primarias continuaban dando servicio, con tal de minimizar el downtime que requiere un proceso de estas caracterÃsticas.
LEER MÁS
28
Sep
2011
Posted by Adri. No Comments
Buscando la forma de configurar un servidor SFTP (Secure FTP) para la transferencia de ficheros segura, me he encontrado que el propio OpenSSH que viene en la mayorÃa de versiones, ya proporciona el servicio de servidor sftp.
Mirando la configuración de OpenSSH vemos como efectivamente, se define el servicio sftp:
# cat /etc/ssh/sshd_config
Subsystem      sftp   /usr/libexec/openssh/sftp-server
Asà pues, por defecto, ya se dispone de un método para transferencia de ficheros sobre SSH gracias a OpenSSH.
Sin embargo, este método permite a un usuario, conectarse por SFTP y poder navegar por cualquier directorio del sistema al que tenga acceso, que por defecto, son la mayorÃa de ellos. Si se quiere “enjaular” al usuario en un directorio concreto, para que pueda trabajar únicamente con los ficheros y directorios de un directorio determinado, la cosa se complica.
LEER MÁS
28
Sep
2011
Posted by Adri. No Comments
Durante las últimas semanas, me he visto con la necesidad de cambiar una misma lÃnea en cientos de archivos diferentes. Para evitar cambiarlo uno por uno, he buscado por Internet hasta encontrar el comando adecuado, el cual se asemeja mucho al comando de sustitución que tiene ‘vi’:
perl -p -i -e ‘s/DocumentRoot \/usr\/local\/www\/data-dist\//DocumentRoot \/var\/www\//g’ *
En este ejemplo, se buscarÃa en todos los archivos del directorio actual (*), por la cadena “DocumentRoot /usr/local/www/data-dist” y se sustituirÃa por “DocumentRoot /var/www”.
El comando parece mucho más engorroso, por la necesidad de escapar las “/” que contiene la cadena de búsqueda. En realidad, la sentencia de búsqueda serÃa la siguiente:
perl -p -i -e ‘s/cadena a buscar/nueva cadena/g’ nombre_ficheros_donde_buscar
Con esto, ya tendrÃamos la base para realizar sustituciones en múltiples archivos, desde la terminal de nuestra distribución Linux preferida.
Fuentes:
http://enavas.blogspot.com/2008/10/reemplazar-texto-en-todos-los-archivos.html
http://es.w3support.net/index.php?db=so&id=1398558
25
Sep
2011
Posted by Adri. No Comments
Amazon, entre muchos otros, ofrece un servicio de cloud computing, en el que podemos crear máquinas a partir de imágenes de sistemas operativos preconfigurados compartidos en la red de Amazon. Estas imágenes se conocen como AMIs (Amazon Machine Image).
Sin embargo, se puede dar la ocasión en la que necesitemos instalar una máquina con un determinado sistema, que no se encuentre entre las diversas AMIs disponibles. En esas ocasiones, deberemos seguir las instrucciones de Amazon para la creación de una AMI personalizada.
LEER MÁS
22
Sep
2011
Posted by Adri. No Comments
Espero no tener que encontrarme nunca en esta situación, pero por si las moscas, me apunto el proceso para resetear el password de root para un mysql sobre linux, cuando no se dispone de la contraseña de root. Los pasos, los he sacado de aquà y de aquÃ.
- Detener el servicio mysql: killall mysqld
- Ejecutar mysql en modo seguro, sin cargar las tablas de usuarios: mysqld_safe –skip-grant-tables
- Conectar con el mysql que acabamos de arrancar: mysql –user=root mysql
- Ejecutar el cambio de contraseña (en este paso, he usado un password fácil como paso intermedio): update user set Password=PASSWORD(‘new-password’) where user=’root’;
- Recargar las credenciales y salir: flush privileges; exit;
- Detener el servicio mysql: /etc/init.d/mysqld stop
- Iniciarlo: /etc/init.d/mysqld start
- Comprobar que podemos acceder con el password indicado en el punto 4: mysql -u root -p
- Salir del mysql: exit;
- Ejecutar mysqladmin para cambiar el password definitivamente: mysqladmin -u root password ‘NEWPASSWORD’ -p
- Comprobar de nuevo que el acceo con el nuevo password es correcto: mysql -u root -p
- Apuntar el password en un lugar seguro
6
Sep
2011
Posted by Adri. No Comments
Seguramente sea buena idea configurar el firewall iptables de cada máquina, desde cero, para una vez limpio, ir introduciendo reglas que permitan o denieguen determinadas acciones. De esta manera, se tendrá un control total sobre la configuración del firewall, que se habrá rellenado únicamente con las reglas que se le hayan introducido.
Una primera tarea, por lo tanto, serÃa limpiar las reglas del firewall que vienen por defecto, y a partir de ahÃ, empezar a crear las nuestras, sabiendo que podrÃa ser una buena polÃtica la de denegar cualquier paquete, por defecto.
LEER MÁS
31
Ago
2011
Posted by Adri. No Comments
Imaginemos que tenemos un directorio con decenas de miles de ficheros. Imaginemos ahora que necesitamos copiarlos casi todos, a otro directorio. ¿Cómo conseguimos, mediante un único comando, realizar la copia de todos los ficheros excepto los que no necesitamos copiar?
Una solución serÃa, estando ubicados en el directorio de origen (que contiene los ficheros) con la siguiente lÃnea:
ls | egrep -v ‘^excepcion1|^excepcion2|^excepcion3′ | xargs -i cp {} /dest_folder/
En esta lÃnea, excepcion1 corresponde con el nombre de un fichero que no queremos copiar (o en el caso de tener varios ficheros cuyo nombre empieza por excepcion1, con todos ellos). Análogamente con excepcion2 y excepcion3. dest_folder, corresponde con el directorio de destino.
Por ejemplo, si se quisieran copiar todos los archivos, excepto los que empiezan por adoc*, data*, table* y user*, se podrÃa usar la siguiente sentencia:
ls | egrep -v ‘^adoc|^data|^table|^user’ | xargs -i cp {} /dest_folder/
NOTA: con ‘^’ se indica que el nombre del archivo (en este caso) ha de empezar con el patrón indicado.