Cosas que me pasan con Linux, php, software libre...

Añadir el contenido de un archivo de texto a otro archivo de texto

Me ha surgido la necesidad de añadir el contenido de un archivo de texto a otro archivo de texto. Estoy en linux, desde la línea de comandos.

He tenido que hacer memoria para acordarme de una simple orden:

cat archivo_origen >> archivo_destino

Linux ofrece muchas posibilidades desde la línea de comandos, que lamentablemente al no usarlas voy olvidando…

Publicado en Linux

Cuenta atrás para el lanzamiento de kiwicreativos.es

Kiwi Creativos S.C. es una empresa dedicada al diseño gráfico y de páginas web ubicada en Zaragoza de la que soy socio.

Por fin comienza la cuenta atrás de la nueva página de Kiwi Creativos. Verá la luz dentro de 30 días: http://www.kiwicreativos.es/

Publicado en Diseño Web, Personal

[warn] mod_fcgid: read data timeout in 31 seconds

Últimamente en un servidor con Virtualmin donde solo hay alojado un foro SMF, aparecía de vez en cuando un error 500 acompañado del siguiente aviso en los logs de error de Apache: [warn] mod_fcgid: read data timeout in 31 seconds.

Buscando he llegado a este post del foro de Virtualmin donde indicaban una posible solución, que por el momento está funcionando. Consistiría en cambiar el modo de ejecución de PHP. De FCGID aa CGI desde Server Configuration -> Websites Options.

Ahora toca vigilar por si todo funciona correctamente.

Publicado en Apache, Php

stock dovecot: IMAP (email): mkdir(/var/dovecot/control/email/.INBOX) failed: Permission denied

Error al abrir el correo en usermin (con virtualmin).  En pantalla me da este error:

An error occurred listing mail in this folder : Failed to login to POP3 server : Internal error occurred. Refer to server log for more information.

Y en los logs del correo:

stock dovecot: IMAP (email): mkdir(/var/dovecot/control/email/.INBOX) failed: Permission denied

La solución ha sido cambiar en el archivo de configuración /etc/dovecot/dovecot.conf el parámetro mail_location dejándolo de este modo:

mail_location = maildir:~/Maildir

Reiniciamos dovecot:

/etc/init.d/dovecot restart

Y funcionando…

Publicado en Correo, Linux, Usermin, Virtualmin

2147483647

¿Qué significa el número 2147483647?

Cuando en una base de datos MySQL aparece este número puede significar 2 cosas:

– que casualmente se ha introducido este valor.

– que se trata de un campo integer ha introducido un número mayor.

2147483647 es el valor máximo permitido para un campo INT.

2147483647 es el valor positivo máximo para un número entero de 32 bits.

2147483647 = (2^31) – 1

Y por último, 2147483647 en binario es 1111111111111111111111111111111

Publicado en Mysql

Matar todos los procesos de un programa

Para acabar con todos los procesos ejecutados por un mismo programa, bastaría con ejecutar el comando:

killall -9 nombre_del_programa

Atención: Hay que tener sumo cuidado con el comando killall ya que si lo ejecutamos sin argumentos (simplemente escribiendo killall) y tenemos permisos de root mataríamos todos lo procesos del sistema.

Manual de killall.

Publicado en Linux

Crear url a partir de una cadena en php

Esta es una función de php que convierte una cadena de texto que puede contener cualquier caracter extraño en una url con sólo letras y números. Ideal para crear urls.

function quitar_cosas_raras($s)
{
$s = ereg_replace(«[áàâãª]»,»a»,$s);
$s = ereg_replace(«[ÁÀÂÃ]»,»A»,$s);
$s = ereg_replace(«[ÍÌÎ]»,»I»,$s);
$s = ereg_replace(«[íìî]»,»i»,$s);
$s = ereg_replace(«[éèê]»,»e»,$s);
$s = ereg_replace(«[ÉÈÊ]»,»E»,$s);
$s = ereg_replace(«[óòôõºö]»,»o»,$s);
$s = ereg_replace(«[ÓÒÔÕÖ]»,»O»,$s);
$s = ereg_replace(«[úùûü]»,»u»,$s);
$s = ereg_replace(«[ÚÙÛÜ]»,»U»,$s);
$s = ereg_replace(«[<>!¡¿?=()/\%&$\·\»|#¬’^+*`¨´:;,.]»,»»,$s);
$s = str_replace(«[«,»»,$s);
$s = str_replace(«]»,»»,$s);
$s = str_replace(«{«,»»,$s);
$s = str_replace(«}»,»»,$s);
$s = str_replace(«ç»,»c»,$s);
$s = str_replace(«Ç»,»C»,$s);
$s = str_replace(«ñ»,»n»,$s);
$s = str_replace(«Ñ»,»N»,$s);
$s = str_replace(«@»,»o»,$s);

//limpiamos todos los caracteres invalidos
$s= ereg_replace(«[^ A-Za-z0-9_]», «», $s);

$s = str_replace(» «,»-«,$s);
return $s;
}

Publicado en Php

Lanzada la web de servifranquicia.es

Hace unos días se ha puesto online la página web de Servifranquicia, empresa que ofrece servicios para franquicias. ServiFranquicia ha sido lanzada por 100franquicias.com, un portal web publicitario para empresas franquiciadoras.

Voy a colaborar, por medio de Innova Networks, en la prestación de los servicios informáticos de ServiFranquicia.

Asímismo, participaré activamente, siempre que el tiempo me lo permita, en su blog corporativo. Otras formas de enterarase de la información de ServiFranquicia puede ser a través de su Facebook y de su Twitter.

Publicado en Personal

Error: message file too big

Usando virtualmin con postfix, algunos emails no llegaban. Eran devueltos con el error «552 5.3.4 Error: message file too big«. Está claro lo que hay que hacer, subir el límite del tamaño de los mensajes.

Para modificarlo en todos los dominios del servidor hay que añadir o modificar el parámetro message_size_limit en /etc/postfix/main.cf. Por defecto está a 10 MB. Lo ponemos por ejemplo a 50MB

message_size_limit = 51200000

Y reiniciamos postfix.

/etc/init.d/postfix reload

Si quisiéramos hacerlo para sólo un dominio tendríamos que ir a webmin: Servidores / Configuración de Postfix / Control general de recursos y cambiar el parámetro Medida máxima de un mensaje. Guardamos y aplicamos.

Publicado en Correo, Linux, Virtualmin, Webmin

Renombrar archivos masivamente en linux en entorno gráfico

Para renombrar archivos tenemos la posibilidad de usar en línea de comandos rename, pero por no ponerme con las expresiones regulares, he buscado algo en entorno gráfico. He encontrado pyRenamer.

Es muy fácil e intuitivo. Permite sustituir caracteres conflictivos, quitar espacios, añadir prefijos, sufijos… También permite renombrar música e imágenes usando metatags.

Lo acabo de probar y perfecto.

Para instalarlo desde Debian o distribuciones basadas en Debian simplemente:

apt-get install pyrenamer

Publicado en Linux