Ago 06 2010

Recalcular cuota Mysql en Cpanel

Category: CpanelDavid González @ 9:00

Ya vimos en otro post como afectaban los ficheros de mailman  a la cuota total, hoy vamos a ver como suma las bases de datos.

En las últimas versiones de Cpanel, dentro de las muchas novedades que nos encontramos, disponemos de la posibilidad de contabilizar en el espacio total del alojamiento, el espacio ocupado por mysql.

El problema que han tenido siempre con este tema, era que las bases de datos, pertenecen al propio usuario mysql y no se contabiliza para la “quota” del usuario. La solución que han dado, es calcular el espacio ocupado por mysql y sumarlo a la cuota del usuario.

Recalcular el espacio ocupado por mysql, es una tarea automática que se hace cada 4 horas, pero si quisiéramos forzarlo debemos usar este script.

/scripts/update_db_cache

Así recalcula los valores de todos los usuario. Si queremos retocar a mano estos valores o incluso ponerlos a 0, los ficheros están en esta ruta.

root@tureceta [/root]# cd /var/cpanel/datastore/tureceta
root@tureceta [/var/cpanel/datastore/tureceta]# l
total 28K
drwxr-x---   2 root tureceta 4,0K jul 20 16:33 ./
-rw-r--r--   1 root root        7 ago  5 08:32 mysql-disk-usage
-rw-r--r--   1 root root       70 ago  5 08:32 mysql-db-usage
-rw-r--r--   1 root root        1 ago  5 08:32 mysql-db-count

El fichero “mysql-db-count” es el número de bases de datos creadas, “mysql-db-usage” muestra las bases de datos con el tamaño de cada una y “mysql-disk-usage” muestra el espacio total ocupado por todas las bases de datos del usuario.

Entradas relacionadas

Etiquetas: , ,


Ago 05 2010

Compilar con módulo memcache de apache y php

Category: apacheDavid González @ 12:02

En un servidor con apache 2.0 y cpanel, tenía que meter el módulo memcache tanto de php como de apache.

Para compilar apache con este módulo, utilice el propio script de cpanel para recompilar /scripts/easyapache. Es muy sencillo de usar y en la lista de posibles módulos de apache apacere memcache. En cambio no aparece como módulo de php

Lo primero que intente es utilizar una solución que dio hace poco mi compañero sysadmin, en uno de sus post, con estas líneas:

root@tureceta [~]# cat /var/cpanel/easy/apache/rawopts/PHP.5.2.13
--enable-memcache
--enable-pcntl
--enable-sysvsem
--enable-sysvshm
--enable-sysvmsg

Lamentablemente no me funcionó (he de decir que sí me funcionó con otros módulos) y tuve que meter el módulo a mano, con estos sencillos pasos:

cd /usr/src/
wget http://pecl.php.net/get/memcache-2.2.5.tgz
tar zxvf memcache-2.2.5.tgz
cd memcache-2.2.5
phpize
./configure
make
make install

Una vez que ha acabado, tenemos que modificar nuestro php.ini para indicar a php donde esta el módulo y así pueda cargarlo correctamente. En mi caso:

vim /usr/local/lib/php.ini
extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20060613"
extension=memcache.so

Entradas relacionadas

Etiquetas: , ,


Ago 02 2010

421 Home directory not available – aborting

Category: LinuxDavid González @ 8:00

Vamos a ver la receta para solucionar este mensaje de error.

Al acceder por ftp a un alojamiento, el log de nuestro cliente ftp nos muestra un mensaje similar a este:

Comando: USER xxxxxx@dominio.com
Respuesta: 331 User xxxxxx@dominio.com OK. Password required
Comando: PASS ********************
Respuesta: 421 Home directory not available - aborting

El error básicamente viene a decirnos que no puede acceder al directorio, seguramente porque no existe. Así que la solución es simplemente crear la carpeta.

En el servidor ftp pure-ftp, tenemos la posibilidad de automatizar esta tarea y forzar a la creación de los directorios que no existen.

Simplemente tenemos que editar el fichero de configuración con esta línea:

vim /etc/pure-ftpd.conf

# Automatically create home directories if they are missing
CreateHomeDir               yes

y reiniciar el servicio:

/etc/init.d/pure-ftpd restart

Entradas relacionadas

Etiquetas: ,


Jul 30 2010

Día del administrador de sistemas

Category: Sin categoríaDavid González @ 18:47

Desde hace 11 años se viene celebrando este día. Hoy, último viernes del mes de Julio, es el día del administrador de sistemas (System Administrator Appreciation Day).

Desde aquí quiero felicitar a todos los sysadmin que hayan pasado por este blog, pasan o pasarán ; )

Felicidades!!

Entradas relacionadas

  • No hay temas relacionados

Etiquetas:


Jul 13 2010

Comando perror para obtener descripción

Category: MysqlDavid González @ 10:58

Muchas veces, mysql nos devuelve un error numérico que a primera vista no nos dice nada y no aporta ninguna información.

Por ejemplo, estamos haciendo un mysqldump de una base de datos y muestra este error:

root@tureceta [~]# mysqldump tureceta_blog > tureceta_blog.sql
mysqldump: Got error: 29: File './tureceta_blog/test.MYD' not found (Errcode: 24) when using LOCK TABLES
root@tureceta [~]#perror 29
OS error code  29:  Illegal seek

O ya nos ha pasado alguna vez este error y recordamos cual era el problema o no nos dice nada.

Para obtener más información podemos hacer uso del comando perror que nos facilita una descripción del error. Con esta información ya podemos investigar un poco más y encontrar la solución.

root@tureceta [~]# perror 24
OS error code  24:  Too many open files

root@tureceta [~]# perror 29
OS error code  29:  Illegal seek

En concreto, vimos la solución a este error el otro día.

Entradas relacionadas

Etiquetas: , ,


Jul 12 2010

Deshabilitar regla del modsecurity para un sitio o dominio

Category: apacheDavid González @ 8:24

Ya vimos el otro día la receta para deshabilitar el modsecurity para un sólo dominio o sitio.

Si no queremos ser tan rudos y no es necesario, tenemos la posibilidad de deshabilitar una regla específica para un usuario o sitio.

Esto nos podría ser muy útil para alojamientos compartidos, en los que una regla “peligrosa” afecta a un usuario y este desea quitarla. Así el resto de cliente siguen protegidos.

Del mismo modo que vimos la otra vez, tendremos que modificar el virtual host con las siguientes líneas:

<ifmodule mod_security2.c>
  SecRuleRemoveById 1975856
</ifmodule>

Simplemente estamos indicando que si esta cargado el módulo del modsecurity, elimine la regla con Id 1975856.

Si nuestra regla no tuviera Identificador, podemos añadírselo sin ningún problema de esta forma

Antes:

#PHP Doc System Local File Inclusion Vulnerability
SecRule REQUEST_URI  "/index\.php" "chain"
SecRule ARGS:show "(\.\./\.\.|/)"

Después:

#PHP Doc System Local File Inclusion Vulnerability
SecRule REQUEST_URI  "/index\.php" "chain, id:1975856"
SecRule ARGS:show "(\.\./\.\.|/)"

Entradas relacionadas

Etiquetas: , ,


Jul 09 2010

mysql Error code 24: Too many open files

Category: MysqlDavid González @ 22:00

Cuando mysql nos devuelve alguno de estos errores, lo más común suele ser que no tiene reservados suficientes descriptores de archivo para el servidor MySQL.

root@tureceta [/]# perror 23
OS error code  23:  File table overflow

root@tureceta> perror 24
OS error code  24:  Too many open files

root@tureceta> perror 25
OS error code  11:  Resource temporarily unavailable

El problema es que mysql está intentando mantener demasiados archivos abiertos de manera simultánea. Las opciones son, que mysql no abra tantos archivos a la vez, o incrementar el número de descriptores disponibles para mysql.

Podemos configurar mysql, para que no mantenga abiertos tantos archivos de manera simultánea. Para ello reduciremos el valor de variable de sistema table_cache (el valor por defecto es 64). Reducir el valor de max_connections también reduce el número de archivos abiertos (el valor por defecto es 100).

Otra opción es aumentar el número de descriptores de archivo disponibles para mysql, para ello se puede modificar el parámetro –open-files-limit.

Cualquiera de estos cambios, podemos hacerlos añadiendo las lineas en el fichero my.cnf y reiniciando mysql para que tengan efecto.

Entradas relacionadas

Etiquetas: ,


Jul 08 2010

Palabras reservadas en Windows

Category: WindowsDavid González @ 12:30

Aunque muchos no lo sabíamos, Windows tiene una serie de palabras reservadas por el sistema operativo debido a que son usadas en los parámetros de algunos comandos. Estas palabras, no puede ser usadas ni solas ni con un punto “.”

Vamos a ver algunos ejemplos:

CON, AUX, COM1, COM2, COM3, COM4, LPT1, LPT2, LPT3, PRN, NUL

Al intentar crear un directorio con el comando mkdir que empiece por la palabra aux, no podremos crear ni la carpeta aux, ni aux.2, ni auxilar devolviendo este error:

C:\tureceta>mkdir aux
El nombre del directorio no es válido.

La solución es la siguiente

C:\tureceta>mkdir \\.\c:\tureceta\aux

Si listamos el directorio, vemos como crea la carpeta correctamente.

C:\tureceta>dir
 El volumen de la unidad C no tiene etiqueta.
 El número de serie del volumen es: 40E9-2E9E

 Directorio de C:\tureceta

05/07/2010  22:32              .
05/07/2010  22:32              ..
05/07/2010  22:32              aux
               0 archivos              0 bytes

Del mismo modo, si queremos eliminar una carpeta con el comando rmdir llamada “aux.datos”, no nos lo permitirá de la manera habitual.

C:\tureceta>rmdir aux.datos
El sistema no puede hallar el archivo especificado.

Debemos seguir el mismo camino, que para crearla

C:\tureceta>rmdir \\.\c:\tureceta\aux.datos

Si fuera el caso, en el que la carpeta tiene espacios, no hay ningún problema en usar las comillas.

mkdir \\.\”c:\Documents and Settings\tureceta\aux.datos”

Entradas relacionadas

Etiquetas: ,


Jul 07 2010

Mysql sensible a mayúsculas y minúsculas

Category: MysqlDavid González @ 15:30

En MySQL, las bases de datos  corresponden con directorios dentro del directorio de datos donde tenemos instalado mysql.

Del mismo modo, las tablas son fichero dentro de nuestro directorio de la base de datos.

Veamos un ejemplo:

root@turceta [/var/lib/mysql/tureceta_blog]# l

-rw-rw----   1 mysql mysql  104 mar 17 23:20 wp_users.MYD
-rw-rw----   1 mysql mysql 4,0K mar 18 00:03 wp_users.MYI
-rw-rw----   1 mysql mysql 1,9K abr 30 20:59 wp_TERMS.MYD
-rw-rw----   1 mysql mysql 8,0K may  1 00:30 wp_TERMS.MYI

Como podemos ver, tenemos una base de datos tureceta_blog y las tablas wp_users y wp_TERMS.

Por lo tanto, es la sensibilidad a mayúsculas y minúsculas del sistema operativo instalado la que determina la sensibilidad  en los nombres de las tablas y sus bases de datos, en mysql.

De este modo, en los sistemas operativos Windows, no tendremos ningún problema, pero con la mayoría de las variadades UNIX sí.

En primer lugar, lo más recomendable para evitar problemas de este tipo es utilizar siempre minúsculas, pero en caso de no poder cambiar nuestras tablas y bases de datos, vamos a ver la solución.

Podemos especificar en mysql como almacenar las tablas y bases de datos con la variable lower_case_table_names. Para ello, simplemente editamos el fichero my.cnf.

lower_case_table_names = 1

Lo valores que puede tomar esta variable son:

  • 0       Los nombres de tablas y bases de datos se almacenan en disco usando el esquema de mayúsculas y minúsculas especificado en las sentencias CREATE TABLE o CREATE DATABASE. Las comparaciones de nombres son sensibles a mayúsculas. Esto es lo predeterminado en sistemas Unix. Nótese que si se fuerza un valor 0 con –lower-case-table-names=0 en un sistema de ficheros insensible a mayúsculas y se accede a tablas MyISAM empleando distintos esquemas de mayúsculas y minúsculas para el nombre, esto puede conducir a la corrupción de los índices.
  • 1       Los nombres de tablas se almacenan en minúsculas en el disco y las comparaciones de nombre no son sensibles a mayúsculas. MySQL convierte todos los nombres de tablas a minúsculas para almacenamiento y búsquedas. En MySQL 5.0, este comportamiento también se aplica a nombres de bases de datos y alias de tablas. Este valor es el predeterminado en Windows y Mac OS X.
  • 2       Los nombres de tablas y bases de datos se almacenan en disco usando el esquema de mayúsculas y minúsculas especificado en las sentencias CREATE TABLE o CREATE DATABASE, pero MySQL las convierte a minúsculas en búsquedas. Las comparaciones de nombres no son sensibles a mayúsculas. Nota: Esto funciona solamente en sistemas de ficheros que no son sensibles a mayúsculas. Los nombres de las tablas InnoDB se almacenan en minúsculas, como cuando lower_case_table_names vale 1.

Si queréis más información, desde la web de mysql tenéis la explicación e incluso pros y contras de usar un valor u otro.

Entradas relacionadas

Etiquetas:


Jul 06 2010

Deshabilitar módulo mod_security a un sólo usuario o por sitio

Category: apacheDavid González @ 8:30

A día de hoy, todas la medidas que se pueden adoptar para proteger un servidor son pocas. Una de las más conocidas y usadas bajo apache es modSecurity.

Mod_security es un firewall de aplicaciones Web que se ejecuta como un módulo del servidor web Apache, provee protección contra diversos ataques hacia aplicaciones Web y permite monitorizar el tráfico HTTP.

Existe la posibilidad de deshabilitar este módulo sólo a un usuario o a un sitio web modificando su virtualhost. No obstante quiero decir, que no aconsejo hacerlo, ya que dicho usuario será completamente vulnerable a ataques vía web.

Dependiendo de la configuración de apache, es posible realizar este modificación en el .htaccess de la propia home, pero por norma general las configuraciones “estandard” no lo permiten, así que sólo voy a explicar la opción de modificar el virtual host.

La solución pasa por añadir estas lineas en el virtual host del usuario o del sitio que queremos deshabilitar

<ifmodule mod_security2.c>
SecRuleEngine Off
</ifmodule>

Una vez hecho esto, habrá que reiniciar apache

/etc/init.d/httpd  restart

De esta forma, el dominio o dominios que accedan a este virtual host, no se verán afectados por las reglas configuradas en el modSecurity

Entradas relacionadas

Etiquetas: ,


Página siguiente »