Un poco de color en la shell

Modificando el archivo: .bashrc

# Define some colors
red='\e[0;31m'
RED='\e[1;31m'
green='\e[0;32m'
GREEN='\e[1;32m'
blue='\e[0;34m'
BLUE='\e[1;34m'
cyan='\e[0;36m'
CYAN='\e[1;36m'
NC='\e[0m' # No Color
echo -e "${CYAN}Welcome, professor Falken.${NC}\n"
Publicado en Linux | Etiquetado , , | Deja un comentario

proFTPd: cómo permitir “resume”, controlar ancho de banda y forzar directorio de sólo lectura

Tweakeando el proFTPd.

Del verbo “tweakear”, de toda la vida, aquí apunto unas cuantas directivas para el fichero “proftpd.conf”, configuración del proFTPd.

Sigue leyendo

Publicado en Linux, Servidores | Etiquetado , | Deja un comentario

RPM se cuelga al instalar o desinstalar packages

La solución que me ha funcionado pasa por reconstruir la base de datos de paquetes.

# rm -f /var/lib/rpm/__db*
# rpm -vv --rebuilddb
Publicado en Linux | Etiquetado , , , | Deja un comentario

Aumentando MaxClients en Apache2

Resulta que en Apache 2.0.x, *no* es necesario modificar el httpd.h, cambiar el #define HARD_SERVER_LIMIT y recompilar para poder aumentar la directiva MaxClients, al contrario que en Apache 1.3.x.

En Apache2, basta usar adecuadamente la directa ServerLimit (>=Maxclients). Esta es mi configuración Apache (prefork) en un Intel Dual Xeon (3.06 Ghz, HT) y 2 GB de RAM:

<IfModule prefork.c>
StartServers 5
MinSpareServers 5
MaxSpareServers 32
ServerLimit 1024
MaxClients 1024
MaxRequestsPerChild 0
</IfModule>

(La directiva ServerLimit debe ir ANTES de MaxClients o al reiniciar Apache se quejará, poco tontito el niño…)

Publicado en Apache | Etiquetado , | Deja un comentario

PaintShopPro 9: El photoshop para programadores

Paint Shop Pro ha sido siempre un editor gráfico muy valorado por los programadores desde su versión 4 (snif, la 4.14) porque arrancaba en un momento y permitía hacer tareas gráficas rápidas de forma sencilla, sin el agobio del Photoshop por su lentitud al arrancar y donde, además, solemos perdernos bastante fuera de cuatro cosas.

Sigue leyendo

Publicado en Software | Etiquetado , , | Deja un comentario

Conflicto al actualizar proFTPd y S.I.M. (System Integrity Monitor)

En una ocasión, al actualizarse el servidor de FTP proFTPd, no se dejaba arrancar, escupiendo un error de ‘fork’.

No era un problema de configuración, sino del S.I.M. que por alguna razón debe ser quien ha de arrancar el proFTPd actualizado.

Así que la solución fue realizar lo siguiente:

# service proftpd stop

# sim -v
Publicado en Linux, Servidores | Etiquetado , , , | Deja un comentario

Monitorizando el tráfico que pasa por el router

Cuando compartes una red y preguntas por qué internet va como el culo y nadie sabe nada, esperas que a los pocos minutos todo vuelva a la normalidad -o sea, alguien deja de escuchar radio por streaming, o apaga el emule, deja de usar BitTorrent a lo bestia, o a saber-. Eso suele ser la mayoría de veces.

Cuando eso no ocurre, y lo que es peor, necesitas que Internet funcione bien, no te queda más remedio que empezar a plantearte cómo monitorizar realmente lo que está pasando en el router.

Resulta que no hace falta tener un Router CISCO para acceder a estos datos. Voy y me entero que el SNMP (Simple Network Management Protocol) es un protocolo que permite recoger información sobre el uso y ancho de banda de una red. Su uso más común es la monitorización de routers y switches que sirven esta información. No diferencia el tráfico por servicio o protocolo, de ahí que sea Simple…

Total, que tras investigar un poquito, el tema me ha venido de perlas para monitorizar un Router Zyxel de ADSL bien pellejo, por ejemplo 😉

Aquí os dejo los nombres de dos aplicaciones la mar de majas para trastear con estos juguetes de monitorización en Windows:

NetScanner de SoftPerfect (gratuito), con la capacidad de detectar dispositivos que respondan al protocolo SNMP (routers, impresoras IP, etc)

PRTG Traffic Grapher de Paessler (gratuito para UN dispositivo), sencillamente un pasote, con monitorización en tiempo real y exportación a vistas en HTML.

Publicado en MundoGeek | Etiquetado , , , | Deja un comentario

PHP sobre Linux y AMD Opteron64

Andaba yo montando un servidor web sobre un AMD Opteron de 64 bits cuando finalmente fui a comprobar que el PHP estaba OK.
Pruebo a sacar la versión de PHP y me salieron un par de problemas:
# php -v
PHP Warning: Unknown(): Unable to load dynamic library '/usr/lib/php4/ldap.so' -
/usr/lib/php4/ldap.so: cannot open shared object file: No such file or directory
in Unknown on line 0
PHP Warning: Unknown(): Unable to load dynamic library '/usr/lib/php4/mysql.so' -
/usr/lib/php4/mysql.so: cannot open shared object file: No such file or directory
in Unknown on line 0

Parece que no encuentra esas librerías, así que intento ver dónde están realmete.

# locate ldap.so
warning: locate: could not open database: /var/lib/slocate/slocate.db: No such file or 
directory
warning: You need to run the 'updatedb' command (as root) to create the database.
Please have a look at /etc/updatedb.conf to enable the daily cron job.

Hay hacer primero un ‘updatedb’ para poder usar ‘locate’

# updatedb

Y repetimos…

# locate ldap.so
/usr/lib64/libnss_ldap.so
/usr/lib64/autofs/lookup_ldap.so
/usr/lib64/libuser/libuser_ldap.so
*** /usr/lib64/php4/ldap.so ***
/lib64/security/pam_ldap.so
/lib64/libnss_ldap.so.2

Vaya por dios, hemos instalado la versión 64 bits del sistema operativo, para aprovechar el Opteron, así que es /usr/lib64/php4 y no /usr/lib/php4

Actualizamos /etc/php.ini

# nano /etc/php.ini

Y cambiamos:

; Directory in which the loadable extensions (modules) reside.
extension_dir = "/usr/lib/php4"

por:

extension_dir = "/usr/lib64/php4"

Y ahora ya funciona bien si hacemos:

# php -v
Publicado en Linux, Servidores | Etiquetado , , | Deja un comentario

Ganando un poco de rendimiento en los accesos a disco con “noatime”

En linux, por defecto con el filesystem ext3 se escribirá en disco información de cuándo se accedió por última vez a un archivo. Podemos desactivar esto para ganar eficiencia ahorrándonos escrituras al disco.

Añadiremos el atributo ‘noatime’ a las particiones que queramos en /etc/fstab

# nano /etc/fstab
LABEL=/ / ext3 defaults,usrquota,grpquota,noatime 1 1
LABEL=/boot /boot ext3 defaults 1 2
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
LABEL=/home /home ext3 defaults,usrquota,grpquota,noatime 1 2
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
LABEL=/tmp /tmp ext3 defaults,noatime 1 2
LABEL=/usr /usr ext3 defaults,noatime 1 2
LABEL=/var /var ext3 defaults,usrquota,grpquota,noatime 1 2
LABEL=SWAP-sdb2 swap swap defaults 0 0

No hace falta reiniciar para que los cambios surtan efecto. Si hemos añadido ‘noatime’ en / /home /var /usr y /tmp, pondremos:

# mount -oremount /
# mount -oremount /home
# mount -oremount /var
# mount -oremount /usr
# mount -oremount /tmp

Y para comprobar que está todo ok vemos el estado actual de los mount con este comando:

# cat /proc/mounts
Publicado en Linux, Servidores | Etiquetado , , , | Deja un comentario

Hacer que Apache escuche en otro puerto, además del puerto 80

Puede ser útil hacer que nuestra web sea accesible por otro puerto que no sea el 80 estándar (y así evitar problemas con proxies/cachés y demás, en peticiones en las que nos interesa obtener siempre una respuesta real del servidor).

Vamos a suponer que queremos poner como puerto adicional el 666…
Sigue leyendo

Publicado en Apache, Linux | Etiquetado , , , | 1 comentario