Buscar este blog

jueves, 27 de marzo de 2008

bash: ./xampp-backup.sh: /bin/bash: intérprete incorrecto: Archivo demasiado grande

Me encontré con este error cuando intenté restaurar una copia de seguridad de un XAMPP. El fichero xampp-backup.sh ocupaba la friolera de 8,3GB. La verdad que es un poco grande :P, pero que le vamos a hacer si tenemos tantos datos.

Cuando conseguí descargarla, le di permisos de ejecución (chmod 700 xampp-backup.sh) y simplemente hice ./xampp-backup.sh y por alguna razón no se ejecutó y me dio ese error.

Pero intenté ejecutar el fichero haciendo /bin/bash xampp-backup.sh y sorprendentemente se está ejecutando. Ahora solo queda esperar.

lunes, 24 de marzo de 2008

ext3 ficheros grandes

Con el sistema de ficheros ext3 podemos almacenar ficheros muy grandes, pero ¿como sabemos el límite que soporta nuestro sistema y en función a qué va el límite del tamaño del fichero?

El límite del tamaño para un fichero muy grande que soporte nuestro sistema de ficheros en ext3 irá en función del tamaño de los blockes de nuestro sistema. Para saber qué tamaño tiene definido nuestro sistema ext3, podemos hacerlo con tune2fs.
# tune2fs -l /dev/sda1 | grep -i "Block size:"
SDA1 corresponde a la partición que tengamos en ext3 y queremos saber cuál es el tamaño de sus blockes.
Si el resultado es 1024 nuestro fichero más grande será de 16GB. Si es mayor podemos verlo en esta tabla.
1024 bytes = 1 KB => 16 GB
2048 bytes = 2 KB => 128 GB
4096 bytes = 4 KB => 1024 GB
8192 bytes = 8 KB => 8192 GB

martes, 18 de marzo de 2008

Problemas con el cotejamiento de MySQL

Siempre he tenido problemas con las importaciones de MySQL, las copias de seguridad se generan bien, pero cuando tengo que hacer una importación para recuperar una base de datos tengo problemas con el cotejamiento.

Si haces:
cat backup.sql | /opt/lampp/bin/mysql -u root -D BaseDeDatos -p
Te meterá la información que contenga backup.sql en BaseDeDatos, pero puedes tener problemas con el cotejamiento. Al añadirle --default-character-set=utf8 se solucionará el problema, porque fuerzas la conexión a UTF8 y volverás a ver las tildes correctamente.
cat backup.sql | /opt/lampp/bin/mysql -u root -D BaseDeDatos --default-character-set=utf8 -p

lunes, 17 de marzo de 2008

Bluetooth con Ubuntu o Debian

Para hacer funcionar mi Sharp con Ubuntu, he tenido que hacer:
aptitude install bluez-pin bluez-utils

Para scanear los dispositivos:
hcitool scan
Scanning ...
00:17:5C:12:58:38 DelorianMovil

Esto nos dará el identificador de nuestro móvil (00:17:5C:12:58:38).
Ahora tenemos que averiguar que canal de comunicacion usa el el movil con el pc , pero lo general es el 10. Para averiguarlo hacemos:
sdptool browse 00:17:5C:12:58:38

Buscamso en la salida generada “OBEX File Transfer” y estar al canal que usa.
Ahora configuraremos el demonio para que siempre use el canal 10 , en el fichero etc/bluetooth/rfcomn.conf y añadirel un bloque , viene comentado dentro , pero por si acaso
nano /etc/bluetooth/rfcomm.conf
---------------------------
rfcomn0 {
device 00:17:5C:12:58:38;
channel 10;
comment “cualquier texto identificatico”;
}
---------------------------

Ya tenemos la configuración hecha, ahora necesitamos la utilidad para recibir ficheros en el pc proveniente de un móvil.
aptitude install obexserver
sdptool add --channel=10 OPUSH

Después de hacer todo esto pude enlazar perfectamente mi móvil Sharp con mi Pc, pero ahora el problema era que el móvil no permite envío masivo de ficheros.

martes, 11 de marzo de 2008

Monitorización de servidores Linux

Los administradores siempre estamos detrás de aplicaciones que nos ayuden a monitorizar nuestros sistemas. He dado con esta aplicación que es muy útil para monitorizarlos.

loadavg

Su instalación es muy sencilla.

1º Descargamos y descomprimimos la aplicación en el directorio donde tengamos escuchando Apache.
wget http://www.labradordata.ca/downloads/loadavg.tar.gz
tar -zxf loadavg.tar.gz

2º modificar el fichero config.php que encontrarás en dentro del directorio loadavg. En este fichero hay que modificar dos parámetros:
$datadir <- completa="" del="" directorio="" la="" que="" ruta="" span="" style="font-weight: bold;" tener="" tiene="">loadavg/logs/
.
$eth <- ...="" br="" contener="" de="" debe="" eth0="" eth1="" interfaces="" la="" monitorizar="" pretendemos="" que="">

3º Una vez hecho todo esto, solo nos falta incluir en el cron una tarea para que capture los logs. Yo modifiqué el /etc/crontab añadiendo la siguiente linea:
*/6 * * * * root php -q /opt/lampp/htdocs/loadavg/logger.php
Es importante que sea cada 6 minutos.


miércoles, 20 de febrero de 2008

jueves, 14 de febrero de 2008

"This account is currently not available." Xampp Addons PostgreSQL en Fedora Core 6

/opt/lampp/lampp startpostgresql
Starting PostgreSQL
This account is currently not available.
Me pasó esto al intentar ejecutar el Addons para Xampp de PostgreSQL. El problema es que el usuario nobody (el que corre el servicio), no tiene definida shell en el /etc/passwd

Para definirla editamos en /etc/passwd la línea que define al usuario nobody:
nobody:x:99:99:Nobody:/:/sbin/nologin
Para dejarla así:
nobody:x:99:99:Nobody:/:/bin/bash
Una vez hecho esto ya podemos reiniciar Xampp que debería arrancar PostgreSQL perfectamente.

martes, 12 de febrero de 2008

Ejecutar XAMPP en Debian a 64bit

He conseguido hacer funcionar XAMPP en mi Debian a 64bit.

Lo primero es descargar la última versión de XAMPP para linux.
wget http://heanet.dl.sourceforge.net/sourceforge/xampp/xampp-linux-1.6.6.tar.gz

Después la descomprimimos en /opt/
tar xvzf xampp-linux-1.6.6.tar.gz

Por último antes de ejecutar XAMPP tendremos que instalar lib32gcc1
aptitude install lib32gcc1

Una vez hecho esto ya podemos ejecutar XAMPP normalmente con
/opt/lampp/lampp start

Y funcionará correctamente.

Las firmas siguientes no se pudieron verificar porque su llave pública no está disponible NO_PUBKEY

En ocasiones cuando añadimos en el /etc/apt/sources.list de nuestro Debian nuevas lineas al hacer apt-get update o aptitude update no encontramos con un error parecido a este:
W: GPG error: http://volatile.debian.org stable/volatile Release: Las firmas siguientes no se pudieron verificar porque su llave pública no está disponible: NO_PUBKEY EC61E0B0BBE55AB3
W: GPG error: http://volatile.debian.org stable/volatile-sloppy Release: Las firmas siguientes no se pudieron verificar porque su llave pública no está disponible: NO_PUBKEY EC61E0B0BBE55AB3
W: Tal vez quiera ejecutar 'apt-get update' para corregir estos problemas

Eso es porque el repositorio no es de total confianza. Para ello tenemos que agregar la clave "EC61E0B0BBE55AB3" (en este caso) en el listado de repositorios seguros.

Para ello, tendremos que escribir desde la línea de comandos:
gpg --keyserver subkeys.pgp.net --recv EC61E0B0BBE55AB3
gpg --export --armor KEY | apt-key add -

Después haz un aptitude update y verá que ya no tienes errores.

lunes, 11 de febrero de 2008

Montar disco de Red NFS

aptitude install portmap nfs-user-server
/etc/exports
Contiene una linea por directorio a compartir. La estructura de dicha linea es:

directorio equipo1(opcion11,opcion12) equipo2(opcion21,opcion22)

donde:

directorio: Es el directorio a compartir.
equipox: Clientes que tendrán acceso al directorio compartido. Estos equipos se podrán indicar por su IP o dirección DNS(por ejemplo: mi_equipo.ral.com o 192.168.0.69). Recomiendo usar la IP.
optionxx: Son las opciones que nos permitirán tener acceso a esos directorios con determinados privilegios.

* ro | rw : Con la opción ro el directorio será compartido de solo lectura. Esta opción está por defecto.y con la opción rw se permitirá tanto acceso de lectura como de escritura.
* sync | async : sync es la opción recomendada, ya que se ha de respetar el protocolo NFS, es decir, no se responden a las peticiones antes de que los cambios realizados sean escritos al disco. Con la opción async se permite mejorar el rendimiento y agilizar el funcionamiento global, pero supone un riesgo de corrupción de archivos o del sistemas de ficheros en casos de caidas del servidor y/o errores de éste.
* root_squash | no_root_squash | all_squash : root_squash indica que un cliente identificado como root tendrá acceso al directorio con privilegios de un usuario anónimo. Si seleccionamos la opción no_root_squash evitaremos esto, y si indicamos all_squash, entonces aplicaremos esto último a todos los usuarios, no sólo root.

Un ejempo de fichero /etc/exports es el siguiente:
/home/usuario/datos 192.168.0.0(ro,sync,root_squash)
/tmp 192.168.0.0(rw,sync,no_root_squash)

Los ficheros /etc/hosts.allow y /etc/hosts.deny tienen la siguiente estructura:
servicio: host [o red/mascara_subred], host [o red/mascara_subred]

servicio : Es el servicio que estará permitido o denegado para algunas IP’s, en nuestro caso serán portmap y rpc.nfsd.
host [o red/mascara_subred] : Indicará la IP del host de un posible cliente. También pueden indicarse redes con sus correspondientes mascaras de subred.

/etc/hosts.deny
En este fichero pondremos todas las restricciones posibles para hacer mas seguro el sistema. Para ello denegaremos el acceso a portmap, ya que si se deniega portmap, aunque permitas nfs, no se podrá compartir porque éste depende de portmap. Por lo que solo se tendrá acceso a portmap por aquellos equipos que estén definidos en el fichero /etc/hosts.allow. El fichero /etc/hosts.deny quedará:
portmap:ALL

/etc/hosts.allow
En este fichero debe indicar a quienes permitimos el acceso al servicio de nfs y portmap. Se pueden indicar hosts individuales o una red.
portmap:192.168.0.0/255.255.255.0
nfs:192.168.0.0/255.255.255.0


Después de configurarlo:
/etc/init.d/nfs-user-server restart
/etc/init.d/portmap restart

Para ver si está corriendo el server escribimos desde uno de los clientes:

rpcinfo -p < dirección IP >
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100003 2 udp 2049 nfs
100003 2 tcp 2049 nfs
100005 1 udp 745 mountd
100005 2 udp 745 mountd
100005 1 tcp 748 mountd
100005 2 tcp 748 mountd
Aquí podemos ver que postmapper está escuchando en el puerto 111, que el servidor nfs escucha en el 2049 y que muntd escucha en el 745 y 748. Este último cambiará de puerto de escucha cada vez que reiniciemos el servicio, así que si queremos conectar el disco a una máquina de internet, tendremos que abrir en el firewall un rango de puerto.

Yo no he visto en ningún sitio documentación donde explique que puertos son los que usa, pero en mi firewall he definido una regla que permita la conexión a la IP de mi servidor de NFS entre para los puertos 111, 2049 y desde el 700 hasta el 900. He visto que entre esos puerto siempre se levante mountd.

Para montar el disco desde el cliente simplemente hacemos:

mount -t nfs < dirección ip >:/directorio/definido/en/el/server/nfs /directorio/destino

DynDns OVH Sincronización de IP pública dinámica

  Si tienes un servidor en casa o detrás de una conexión con IP dinámica, sabes que tarde o temprano tu dirección IP pública cambia y tu dom...