Linux: Ver que proceso esta bloqueando algún archivo

Estos comandos nos puede ayudar para conocer cual proceso esta bloqueando nuestro archivo, para posteriormente matarlo con un kill -9 PROCESO

el primero es fuser -v ARCHIVO, un ejemplo tipico de bloqueo es cuando tenemos el error

debconf: DbDriver “config”: /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable

#fuser -v /var/cache/debconf/config.dat

USER PID ACCESS COMMAND /var/cache/debconf/config.dat:
root 1846 F…. frontend

Lo que nos interesa es la parte del PID, o tambien tenemos este otro comando lsof ARCHIVO

#lsof /var/cache/debconf/config.dat

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
frontend 1846 root 4uW REG 8,3 48329 24036395 /var/cache/debconf/config.dat

De igual manera nos interesa el PID, en este caso 1846, y ahora si.., a eliminar el proceso latoso: kill -9 1846

Apt: Dynamic MMap ran out of room. Please increase the size of APT::Cache-Limit. Current value: 25165824. (man 5 apt.conf)

Después de ejecutar un apt-get update, al procesar las listas de cambios y realizar la unión de todos los archivos, me aparece el siguiente error.

Reading package lists… Error!
E: Dynamic MMap ran out of room. Please increase the size of APT::Cache-Limit. Current value: 25165824. (man 5 apt.conf)
E: Error occurred while processing postgresql-pltcl-8.4 (NewPackage)
E: Problem with MergeList /var/lib/apt/lists/s2plmirror01.prod.sdl2.secureserver.net_ubuntu_dists_lucid_universe_binary-i386_Packages
W: Unable to munmap
E: The package lists or status file could not be parsed or opened.

Al parecer tiene una limitante la cache de APT a 25165824, la solución obvia es aumentar ese tamaño.., pero la pregunta del millón!! en donde???…, pues solo tenemos que editar el archivo: /etc/apt/apt.conf.d/70debconf y agregar la siguiente linea:

APT::Cache-Limit “100000000″;

Y listo!!…, el valor pues puede ser cualquiera mas alto a el del error, pero con ese número se soluciona :)

Ahora si.. ,procedemos a limpiar la cache y recargar la lista: apt-get clean && apt-get update –fix-missing

Postfix: temporary failure. Command output: /usr/bin/maildrop: Unable to create a dot-lock

De repente el servidor de correos que se configuro con ISPConfig 3, no enviaba correos cuando se trata de mails configurados con “reenvío de correo.” (Email forward)

Me daba el siguiente error en /var/log/mail.log

Feb 12 15:25:17 oviedo.mx postfix/pipe[30549]: DDE86158187: to=, relay=maildrop, delay=4356, delays=4356/0.05/0/0.1, dsn=4.3.0, status=deferred (temporary failure. Command output: /usr/bin/maildrop: Unable to create a dot-lock at /var/vmail/oviedo.mx/usuario/3055320.0.oviedo.mx. )

Ademas anteriormente me daba problemas con el puerto 10024, me decia que conexion rechazada:

Feb 10 16:13:28 oviedo.mx postfix/smtp[14558]: connect to 127.0.0.1[127.0.0.1]:10024: Connection refused

Entonces para solucionar el problema del puerto 10024, era desactivar el antivirus amavis, entonces en el archivo de configuración de postfix main.cf /etc/postfix/main.cf procedemos a comentar la línea donde aparezca algo así:

#content_filter = amavis:[127.0.0.1]:10024

Reiniciamos postfix /etc/init.d/postfix restart y tratamos de enviar un email de los configurados para forward y pues me sigue dando el error inicial del maildrop.

Investigando un poco me doy cuenta que al comentar la línea de content_filter del anti-virus amavis, tambien se debe de comentar la línea donde dice: receive_override_options entonces el archivo main.cf nos quedará de la siguiente manera:

#content_filter = amavis:[127.0.0.1]:10024
#receive_override_options = no_address_mappings

Y listo!, reiniciamos otra vez postfix y a probar. Por lo menos a mi me funciono así como les he dicho.

Apt-get: Problem with MergeList en /var/lib/apt/lists/

Si Ubuntu o Debian les arroja el siguiente error, o algo similar que diga problemas con MergeList.

E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/apt/lists/ ftp.utexas.edu_ubuntu_dists_quantal_main_i18n_Translation-en
E: No se pudieron analizar o abrir las listas de paquetes o el archivo de estado.

La solución es limpiar la lista del APT y volver a actualizar los paquetes, quizas se descargo un paquete corrupto y pues fue el causante de todo el problema, entonces como ejecutar los siguientes comandos con los superpoderes de sudo.

sudo rm /var/lib/apt/lists/* -vf
sudo apt-get update

Y listo!!! asunto arreglado no más errores que no se encuentra en encabezado de los paquetes ni que no puede hacer la combinación de las listas de apt.

Linux: Contar requests por IP de un access_log de Apache

Para ver el total de peticiones a nuestro servidor apache por dirección IP, podemos ejecutar este comando desde la terminal.

cat /var/log/apache2/access_log |awk ‘{print($1)}’|sort |uniq -c |sort

Y listo, nos dará como resultado 2 columnas, la primera con el total de visitas y la segunda la dirección IP, útil para saber si alguien esta queriendo entrar al sistema indebidamente, aunque por lo general en los primeros lugares con más visitas encontraremos a Google o MSN Search.

nginx – error 413 Request Entity Too Large

Hoy por la mañana queria subir un archivo CSV al servidor pero lo hago mediante 2 pasos, primero cargo el archivo y muestro un formulario con los resultados para confirmar que la información sea correcta, despues ese formulario lo mando mediante POST y al darle enviar me aparece el siguiente error en el servidor web Nginx

Error 413 Request Entity Too Large

La solución a todo esto es aumentar el tamaño en Megas que puede recibir el servidor., solo es cosa de modificar el archivo /etc/nginx/nginx.conf o si tiene subdominios la carpeta correspondiente al subdominio que estara dentro de /etc/nginx/sites-available/default (por ejemplo)

Bueno ahí dentro del archivo de configuración buscamos el bloque server e insertamos adentro la etiqueta: client_max_body_size 50M; (en donde 50M es el tamaño deseado), nos quedaría algo así:

server {

listen 80; ## listen for ipv4
listen [::]:80 default ipv6only=on; ## listen for ipv6

server_name paginaweb.com www.paginaweb.com;
client_max_body_size 50M;
access_log /var/log/nginx/paginaweb.access.log;

location / {
root /var/www/paginaweb.com;
index index.php;
if (-e $request_filename) {
break;
}
rewrite ^/(.+)$ /index.php?/$1 last;
}
}

Y listo, reiniciamos el servidor web.

Ubuntu en una Dell Inspiron 15 (1546), problemas con la tarjeta de red inalambrica

He instalado Ubuntu 11.04 Natty Narwhal de 32bits en una Dell Inspiron 15 con procesador AMD pero resulta que la tarjeta de wireless Broadcom Corporation BCM4312 802.11b/g LP-PHY (rev 01) no funciona, la solución es instalar el firmware correcto, para eso ocupamos la aplicación ndiswrapper, y procedemos con los siguientes comandos.

No olviden antes actualizar su repositorio (mediante cable de red, sino pues está dificil): apt-get update

apt-get install ndiswrapper-common firmware-b43-lpphy-installer

Y listo!!, ya tenemos la tarjeta inalambrica lista para ser utilizada.

Linux: sudo: unable to resolve host NombreMaquina

Si estas utilizando Linux ( Debian, Ubuntu u otra distro) y le cambiaste el nombre a tu maquina en el archivo /etc/hostname y después cuando quieres hacer un sudo su - te aparece:

sudo: unable to resolve host NombreMaquina

Entonces te falto cambiar también la lista de hosts con el nombre de la maquina.
Solo es entrar al archivo: /etc/hosts, con tu editor favorito (a mi me gusta nano), buscar donde dice 127.0.1.1 NombreMaquinaViejita y cambiar el nombre de la maquina por la nueva y listo!…, algo así debe de quedar:

127.0.0.1 localhost
127.0.1.1 NombreMaquina

# The following lines are desirable for IPv6 capable host

Error al montar NTFS, necesita un chkdsk /f

Si tienes problemas para montar un disco duro ó unidad USB formateada con NTFS ya que te dice que necesita reparación del sistema de archivo, porque se apago sin desmontar la unidad y que debemos de utilizar el comando chkdsk /f (que es un comando de Windows), tenemos la solución sin salir de nuestra sistema operativo Linux, en este caso Ubuntu.

El comando que nos ayuda a solucionar este problema de reparación del sistema de archivos se llama ntfsfix, aunque no pretende ser un chkdsk, pero ayuda a reparar algunas inconsistencias del NTFS.

Simplemente como Root lo ejecutamos de esta forma, donde /dev/sdb1 es nuestro disco duro USB.

root@ubuntu:~# ntfsfix /dev/sdb1
Mounting volume… FAILED
Attempting to correct errors…
Processing $MFT and $MFTMirr…
Reading $MFT… OK
Reading $MFTMirr… OK
Comparing $MFTMirr to $MFT… FAILED
Correcting differences in $MFTMirr record 0…OK
Processing of $MFT and $MFTMirr completed successfully.
Setting required flags on partition… OK
Going to empty the journal ($LogFile)… OK
NTFS volume version is 3.1.
NTFS partition /dev/sdb1 was processed successfully.

Despues de esto, solo nos resta montar la unidad,

root@ubuntu:~# mkdir /media/DISCO_MONTADO
root@ubuntu:~# mount -t ntfs-3g /dev/sdb1 /media/DISCO_MONTADO -o force

y listo, para la proxima no hay que olvidar desmontar correctamente la unidad externa.