1032

Archivo de la categoría ‘linux’

htop Linux

htop linuxUna de las utilidades que antes instalo en un servidor, o un nuevo equipo con Linux es htop. No sólo permite una visualización más clara de los consumos de CPU (que hace por cada core del procesador), también  del consumo de memoria, de los nivelas de carga y de los procesos. Además es interactivo, pudiendo seleccionar y matar procesos desde la misma utilidad.

Es sorprendente que no sea más conocido. Además se instala en segundos en distintas distribuciones de Linux, para Ubuntu:

sudo apt-get install htop

Fedora o RedHat:

sudo yum -y install htop

Incluso en Mac, a través de macports:

sudo port install htop

Martes, abril 23rd, 2013

Solucionar problemas con SQLite y PHP 5.3.6 en Ubuntu

Normalmente solucionar problemas de sistemas operativos (cualquiera) es relativamente sencillo teniendo a mano Google. Siempre hay alguien que ha tenido el mismo problema y foros y otras herramientas donde se deja información sobre cómo solucionarlo.

Escribo esta entrada porque con este último problema (y hacía mucho que no me pasaba), he estado un par de días dándo vueltas hasta encontrar la solución, no ha sido sencillo.

El problema sucedió en mi máquina, un HP Probook 6360b, con Ubuntu 11.10 y PHP 5.3.6. Tenía instalada la librería php5-sqlite, pero tenía dos problemas en mi entorno de desarrollo:

- Utilizando la consola, obtenía este error:

PHP Startup: Unable to load dynamic library ‘/usr/lib/php5/20090626+lfs/sqlite.so’

- En cualquier aplicación web que usase funciones o métodos de SQLite, obtenía errores:

PHP Fatal error:  Class ‘SQLiteDatabase’ not found

o de la función:

PHP Fatal error:  Call to undefined function sqlite_open()

Parece que PHP 5.3 ya trae las funciones de SQLite incorporadas por defecto, pero parece no ser así. Además, en el directorio /usr/lib/php5/20090626+lfs/ no aparecía la librería sqlite.so, que teóricamente tendría que aparecer.

La solución:

1) Bajarse directamente el .deb, me funcionó bajándome la versión de la 11.04.

http://packages.ubuntu.com/natty-updates/php5-sqlite

2) Descomprimir o abrir el .deb con algún editor de archivos (el Archive Manager debería servir)

3) Copiar sqlite.so a /usr/lib/php5/20090626+lfs/

4) Reiniciar Apache

No sé si será un problema específico de mi instalación, es probable. En cualquier caso, lo dejo por si a algún otro desafortunado le ocurre.

Viernes, diciembre 2nd, 2011

VirtualBox: La mejor forma de tener Windows en Linux

vbox_logo2_gradientUna de las mejores formas de escapar al bajo rendimiento que ofrece Windows Vista a la hora de elegir un portátil es instalar Linux. La ganancia en rendimiento puede llegar a ser impresionante, y lo digo por experiencia propia.

El problema de trabajar con Linux es que, aunque las posibilidades y estándares avanzan a pasos agigantados, siempre va a haber problemas de compatibilidad para ciertas aplicaciones y, por qué no decirlo, hay programas exclusivamente disponibles para plataformas Windows muy superiores. Ejemplos de esto puede ser MS Office (OpenOffice está por detrás aún en prestaciones y no es 100% compatible) o Photoshop (GIMP está lejos de ofrecer las mismas posibilidades y facilidad de uso). Además, en mi caso, es fundamental poder probar la visualización de los desarrollos web que hacemos en esa lacra aún existente llamada Internet Explorer 6.

Hay algunas alternativas, como pude ser instalar Wine. No he probado las últimas versiones, pero las anteriores que probé no ofrecían todas las posibilidades a la hora de instalar programas que sólo funcionan en Windows.

Pero la mejor sin duda es la virtualización, y para ello existe una aplicación perfecta para este propósito: VirtualBox, desarrollado por Sun. Está disponible para sistemas operativos Windows y Linux, y a partir de ahí se pueden instalar máquinas virtuales de multitud de sistemas operativos.

De esta forma podemos tener un sistema Linux, con lo que ganaremos en velocidad y prestaciones entre otros beneficios y utilizar el lento y viejo Windows sólo para las aplicaciones que necesitemos.

Puedes elegir hacer máquinas virtuales de sistemas operativos Linux en un Windows o al revés, hacer máquinas virtuales Windows si tu sistema operativo es Linux. De esta forma puedes disfrutar de las dos opciones.

Lunes, agosto 24th, 2009

Chrome para Linux

Ya es posibgoogle-chromele instalar el nuevo navegador de Google, Chrome, en sistemas Linux. No hay aún versión estable, pero podremos evaluar qué tal es la integración con nuestro PC. Lo primero que vamos a notar es un incremento de velocidad muy notable. Habrá que buscarse un poco la vida para hacer funcionar algunas cosas como Flash y posiblemente echemos de menos muchas de las extensiones de Firefox. Todas las instrucciones para instalar Chrome en Linux.com.

Una excelente noticia para los que usamos Linux en el día a día.

Lunes, agosto 17th, 2009

Nos pasamos a Git como repositorio de código

Después de pasar media vida con CVS y la otra media con Subversion, hemos dado el paso en Acilia y vamos a utilizar Git como repositorio de código. La verdad es que las referencias eran muy buenas y, aunque el tener que aprender un nuevo sistema siempre es un poco duro, creemos que merece la pena.

El significado de Git en inglés es algo así como persona estúpida y desagradable y fue diseñado inicialmente por Linus Torvalds, que dejó algunas perlas para la historia, como viene siendo habitual en el personaje:

“I’m an egotistical bastard, and I name all my projects after myself. First Linux, now git.” – Linus Torvalds

For the first 10 years of kernel maintenance, we literally used tarballs and patches, which is a much superior source code management system than CVS is” – Linus Torvalds

When I say I hate CVS with passion, I have to also say that if there any SVN users in the audience, you might want to leave. Because my hatredof CVS has meant that I see Subversion as being the most pointless project ever started, because the whole slogan for the Subversion for a while was ’CVS done right’ or something like that. And if you start with that kind of slogan, there is nowhere you can go. It’s like, there is no way to do CVS right. – Linus Torvalds

Lo mejor de Git es que es un repositorio distribuido. O más que distribuido, es deslocalizado. Esto quiere decir que localmente tienes un repositorio de Git totalmente funcional, de hecho los commits se hacen contra tu repositorio local. Luego juntas tu código con otros repositorios (o normalmente un repositorio que todo el mundo usa de referencia).

Además del vídeo donde el amigo Linus hace la presentación, dejo algunos enlaces de referencia. (Gracias Raúl por ellos y animarnos a dar el paso!)

Referencias:

- Git fetch and pull video tutorial

- Tutorial de Git del Gsyc

- Git Cheat Sheet

Lunes, julio 20th, 2009

Backups por FTP con Bash Shell

Para evitar disgustos como le sucedió a ma.gnolia.com (que perdió todos los datos de sus servidores y no pudo recuperarlos), es buena idea tener un sistema de backups al día que te permita recuperarte de cualquier catástrofe. Como decía aquel doctor en la tele, es mejor prevenir que lamentar. Dejo por aquí un pequeño script que puede ayudar a la tarea. Realmente simple pero efectivo.

Los archivos: back_daily.ftp , back_monthly.ftp

Algunos comentarios de las partes que tienen (comentaré el daily):

  1. Tomamos la variable DAY con la fecha del sistema
  2. DAY=`date +%d`
    echo Backup for Day: $DAY

  3. Volcado de todas las bases de datos del sistema
  4. mysqldump -uUSER -pPASSWORD –all-databases > mysql_backups/mysql-latest.sql

  5. Zip con archivos y base de datos
  6. zip -r file_backups/files_back_$DAY.zip public_html/*
    zip -r file_backups/files_back_$DAY.zip hostx/*
    zip -r file_backups/files_back_$DAY.zip hosty/*
    zip -r file_backups/files_back_$DAY.zip hostz/*
    zip -r file_backups/mysql_back_$DAY.zip mysql_backups/mysql-latest.sql

  7. Subimos todo por FTP
  8. ftp -n HOST-DEL-SERVIDOR.com <
    user USERNAME PASSWORD
    binary
    cd target_directory
    lcd file_backups
    put files_back_$DAY.zip
    put mysql_back_$DAY.zip
    quit
    EOF

  9. Creamos un cronjob que ejecute el script (en este caso dos, uno diario y otro menusal) redirigiendo la salida a un log.
  10. 05 03 * * * /home/acilia/file_backups/back_daily.ftp >> /home/acilia/file_backups/log/back_daily.ftp.log
    05 03 01 * * /home/acilia/file_backups/back_monthly.ftp >> /home/acilia/file_backups/log/back_monthly.ftp.log

Y con esto sería suficiente para tener un respaldo contra catástrofes. Mediante este sistema, guardaríamos las copias diarias durante 1 mes y las copias mensuales durante 12 meses, aunque siempre sería modificable para que no se sobre-escriban los ficheros. En caso de utilizar estos mismos scripts, habría que tener cuidado con los directorios. En este caso se asume que existen (y tienen permiso de escritura) los directorios mysql_backups y file_backups en la raíz del usuario que ejecutará los scripts.

El script es básico y muy mejorable, no estaría de más echarle un ojo al bash y darle algún retoque… cuando tenga un rato ;-)

Miércoles, julio 15th, 2009

Unir Documentos PDF en Linux

pdf1Últimamente ando atareado escaneando y enviando documentos para algunas cuestiones adminstrativas. Al no tener la posibilidad de tener Adobe Acrobat (el editor, no el reader) en Linux, hay que buscarse un poco la vida para poder unir varios documentos PDF en uno solo. Especialmente útil si has estado escaneando documentos con el Xsane y llegas a tener varias decenas que unir.

Hay una utilidad fantástica para eso, con un nombre muy descriptivo: JoinPDF. Se utiliza por command line, y la sintaxis, igualmente, no puede ser más sencilla:

joinPDF fichero_destino.pdf fichero1.pdf [fichero2.pdf ...]

Probado y funcionando a las 1000 maravillas, muy recomendable.

Lunes, abril 13th, 2009

1234567890 segundos desde el Linux Epoch

Circula por Facebook la invitación al evento más original que he visto en los últimos tiempos. El lugar de reunión es el PC Linux de quien quiera participar y la hora será el 13 de Febrero de 2009 a las 23:31:30. En ese momento, se cumplirán 1234567890 segundos desde el Linux Epoch. Para acudir a la cita, sólo hay que inscribirse tecleando esta instrucción en tu terminal, que mostrará la citada cifra, o acudir a la web que lo conmemorará.

date +%s

EL Epoch es un punto de referencia inicial donde se basan sistemas lógicos.
En Linux está establecido el 01/01/1970. Fechas de otros sistemas populares:

  • Mac Os: 01/01/1904
  • Windows: 01/01/1601
  • DOS: 01/01/1980
  • Cobol: 01/01/1601
  • C#: 01/01/0001

Hay un gran grupo de sistemas o lenguajes que comparten el 01/01/1971 como PHP, Python, Java y  Ruby.

Lunes, febrero 9th, 2009

Borrar todas las tablas de una base de datos

Cuando llega el momento de borrar todas las tablas de una base de datos de MySQL desde el command line no queda más remedio que ir borrando tabla por tabla.

Pero me he encontrado por ahí una ingeniosa instrucción para hacerlo, una sóla línea de código en el command line:
mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | grep ^DROP | mysql -u[USERNAME] -p[PASSWORD] [DATABASE]
Los créditos del útil descubrimiento para Thingymajing.

Domingo, febrero 8th, 2009

“Comos” de Linux

Los Comos de Linux en castellano fueron un proyecto impulsado desde Insflug.org hace ya varios años. Me he encontrado el proyecto bastante abandonado, con errores de código y sin nuevos avances. Posiblemente el estallido del movimiento Web 2.0, donde las posibilidades de publicación web son mucho mayores para cualquiera, hayan hecho que el proyecto ya no tenga tanto sentido.

Sin embargo, el trabajo y el contenido son realmente interesantes. Estos comos ya formaban parte, aunque era simplemente enlazando el contenido, de aulaDigital. Hemos dado un impulso mayor y los hemos integrado completamente, haciéndolos totalmente navegables.

Son bastante antiguos y algunos ya no sirven de mucho (como el de la configuración de Infovía). Pero otros, como programación en Bash o conceptos de redes en Linux están de total actualidad.

Lunes, enero 26th, 2009