Como instalar y configurar NFS en CentOS 6.2

Esta es la manera de instalar el servicio de NFS en un servidor Linux CentOS 6.2 y hacerlo accesible a las demás computadora en tu red. Supongo que ya tendrás un servidor Linux CentOS 6.2 instalado y corriendo y algun cliente Linux sea Fedora, CentOS o Ubuntu. El NFS requiere de varios servicios para su ejecucion: rpcbind: (portmap en versiones anteriores de Linux) el demonio de primario en que los demas demonios se basaran, rpcbind gestiona las conexiones de las aplicaciones que utilizan la especificación RPC. Por defacto, rpcbind usa el puerto TCP 111 en el que se hace una conexión inicial. Este se utiliza para negociar un rango de puertos TCP, por lo general por encima del puerto 1024, que se utilizará para la transferencia de datos posteriores. Este servicio debe correr en el servidor y los clientes NFS. NFS: inicia los procesos RPC necesarios para atender el sistemas de compatir archivos NFS. Este servicio solo debe correr en el servidor NFS. nfslock: Se utiliza para permitir que los clientes NFS bloquean archivos en el servidor a través de los procesos de RPC.  Este servicio debe correr en el servidor y los clientes NFS. Ahora vamos a configurar el lado servidor: Instalemos los paquetes necesarios para que NFS pueda correr. $ sudo yum install rpcbind nfs-utils nfs-utils-lib$ sudo yum install rpcbind nfs-utils nfs-utils-lib  Activemos los servicios para que se ejecuten siempre cuando reiniciamos la maquina. $ sudo chkconfig --level 35 nfs on $ sudo chkconfig --level 35 nfslock on $ sudo chkconfig --level 35 rpcbind on$ sudo chkconfig --level 35 nfs on $ sudo chkconfig --level 35 nfslock on $ sudo chkconfig --level 35 rpcbind on Iniciemos los servicios requeridos $ sudo service rpcbind start $ sudo service nfslock start $ sudo service nfs start$ sudo service rpcbind start $ sudo service nfslock start $ sudo service nfs start Verifiquemos que los puertos TCP estan activos $ sudo rpcinfo$ sudo rpcinfo Configuremos los directories que desamos compartir. $ sudo vi /etc/exports$ sudo vi /etc/exports En este archivo debemos agregar primero la ruta del directorio y luego los permisos: /home/websites *(ro,sync,all_squash) /tmp *(rw,sync,all_squash) Ahora volvemos a reiniciar los servicios para que lean /etc/exports y sea accesibles por los clientes. $ sudo service rpcbind restart $ sudo service nfslock restart $ sudo service nfs restart$ sudo service rpcbind restart $ sudo service nfslock restart $ sudo service nfs...

read more

Cerrar todas las conexiones de un usuario en MySQL

Algunas veces nos encontramos con un usuario en MySQL que esta usando muchas conexiones, más de 20,  y estas estan en estado Sleep. Podríamos copiar cada numero de proceso y agregarle el comando KILL pero esto nos llevaria un poco de tiempo. Entonces nos preguntamos ¿ como hacemos para cerrar todas las conexiones de un usuario en MySQL ? Gracias a la introduccion del information_schema podemos hacer una busqueda y sacar todos los procesos de un mismo usuario. Veamos el siguiente cuadro. mysql> select concat('KILL ',id,';') from information_schema.processlist where user='root'; +------------------------+ | concat('KILL ',id,';') | +------------------------+ | KILL 3101; | | KILL 2946; | +------------------------+ 2 rows in set (0.00 sec)mysql> select concat('KILL ',id,';') from information_schema.processlist where user='root'; +------------------------+ | concat('KILL ',id,';') | +------------------------+ | KILL 3101; | | KILL 2946; | +------------------------+ 2 rows in set (0.00 sec) Como vemos este comando nos va a dar el listado de todas conexiones pero ahora tenemos el problema que no podemos hacer copiado y pegado para ejecutar estos comandos. Para resolver el problema vamos a enviar los resultados a un archivo de texto el cual posteriomente ejecutaremos de un solo. mysql> select concat('KILL ',id,';') from information_schema.processlist where user='root' into outfile '/tmp/a.txt'; Query OK, 2 rows affected (0.00 sec)   mysql> source /tmp/a.txt; Query OK, 0 rows affected (0.00 sec)mysql> select concat('KILL ',id,';') from information_schema.processlist where user='root' into outfile '/tmp/a.txt'; Query OK, 2 rows affected (0.00 sec) mysql> source /tmp/a.txt; Query OK, 0 rows affected (0.00 sec) Con este mismo procedimiento podríamos resolver muchas situaciones en las que ocupamos ejecutar muchas sentencias sin necesidad de preparalas en un editor de...

read more