Archive

Archive for the ‘Linux’ Category

Reducir Tamaño Archivo Pdf Linux

sudo aptitude install ghostscript gsfonts

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=PDFREDUCIDO.pdf PDFORIGINAL.pd

Visto en: http://gestiweb.com/blog/?q=node/354

Categorías:Linux, SysAdmin

Un Grub maestro, varios Esclavos

marzo 2, 2009 3 comentarios

A raíz de la entrada “Un solo Grub para todos tus Linux” del magnífico blog de FORAT, en el que explica cómo crear entradas a mano en GRUB cuando instalas varios sistemas operativos y quieres mantener el GRUB original, voy a permitirme por una vez estar en desacuerdo con él y poner por escrito aquí mi forma de hacerlo, que creo que es un poco más sencilla 😉

Y para ello voy a poner el ejemplo de Windows XP.

Cuando tenemos instalado Linux y XP en una misma máquina, lo que tenemos en el MBR es el gestor de arranque GRUB, y dentro de éste una entrada con título como por ejemplo “XP”. Si editamos esa entrada ( pulsando “e” ) desde GRUB, vemos estas líneas:

root (hd0,0)

chainloader +1

makeactive

Estas líneas lo que hacen es pasarle el control al gestor de arranque del XP, que en vez de estar en el MBR está en la partición 1, de ahí el (hd0,0).

Pues eso mismo lo podemos hacer para linux. Pongámonos en un escenario típico:

  • 1ª partición hda1 –> Windows XP ( Con su gestor de arranque en la partición hda1
  • 2ª partición hda2 –> Linux Ubuntu ( Con su gestor de arranque GRUB en el MBR, ya que es nuestro sistema operativo principal )
  • 3ª partición hda3 –> Instalaremos Debian Lenny que acaba de salir como estable y queremos probarla.

Lo que haríamos sería iniciar la instalación de Debian Lenny normalmente, y cuando nos pregunte dónde instalar el gestor de arranque GRUB le decimos que en vez de en el MBR lo haga en la misma partición dónde instalamos Debian, es decir en hda3.

Al reiniciar, cuando nos salga el GRUB vemos que sólo nos aparecen las entradas del XP y de Ubuntu. Iniciamos Ubuntu, y como root editamos el fichero /boot/grub/menu.lst , y abajo de todo tendremos algo así:

title Ubuntu jaunty (development branch), kernel 2.6.28-8-generic
root (hd0,1)
kernel /boot/vmlinuz-2.6.28-8-generic root=UUID=09dd0c85-868a-457f-a25c-0f20c1707f28 ro splash vga=794
initrd /boot/initrd.img-2.6.28-8-generic
quiet

### END DEBIAN AUTOMAGIC KERNELS LIST

# This entry automatically added by the Debian installer for a non-linux OS
title Microsoft Windows XP Professional
root (hd0,0)
savedefault
makeactive
chainloader +1

Pues justo debajo de la entra para Windows XP creamos una nueva para nuestra Debian:

title Debian Lenny

root (hd0,2)

chainloader +1

makeactive

Guardamos, y al reiniciar y cargar el GRUB del MBR que es el de Ubuntu, nos saldrán tres entradas

  • Ubuntu
  • Windows XP
  • Debian Lenny

Si pulsamos Debian Lenny lo que hace es cargarnos el GRUB de Debian de la partición hda3, pinchamos en el kernel por defecto y listo.

Yo le veo 2 ventajas a este método:

  1. Podemos instalar varios Sistemas Operativos, teniendo el GRUB del que más nos guste en el MBR, y a través de éste cargamos los GRUB de los otros Sistemas Operativos.
  2. No nos tenemos que preocupar por las actualizaciones. Si sale un nuevo kernel debian y nos actualiza el GRUB no pasa nada, nos lo hace bien. De la otra forma, tendriamos que volver a editar el menu.lst con el nuevo kernel.

Aunque todo es mejorable por supuesto. Acepto sugerencias y críticas. Criticar, criticar …

Nota: Cuando me refiero a (hd0,0) hd0 se refiere al disco 1, y 0 a la particion 1. Por eso cuando instalamos Debian Lenny en hda3, en grub es (hd0,2) hd0 –> disco 1, 2 –> partición 3).

Categorías:Linux

Openvz Bug Nfs

febrero 24, 2009 2 comentarios

buglogo-openvz

Hace un par de meses se me pidió exportar un directorio de un servidor de ficheros a un EV ( máquina virtual de openvz ) por nfs.

Lo primero que hice fué mirar en la wiki de openvz si estaba implementado, y qué pasos había que seguir.

Como podéis comprobar los pasos son sencillos, bien explicados, pero a mi no me funcionaba. Hacía todo bien, no me daba error, pero no me cargaba el sistema de ficheros nfs en el EV.

Para saber los sistemas de ficheros que soporta tu EV lo puedes ver dentro del EV editando el fichero /proc/filesystems

Al final abrí un hilo en el foro de openvz ( no os riáis de mi inglés ), y ahí dimos con un bug.

Resulta que con el kernel que estaba utilizando ( Linux openvz1 2.6.26-1-openvz-686 ) no era posible cargar el sistema de ficheros nfs en el EV, por lo que tuve que bajarme el kernel estable de openvz para que funcionase.

El problema con el kernel estable es que es un poco antiguo, y en mi caso en un Dell PowerEdge T100 no me detecta una de las dos tarjetas de red, por lo que ahora me queda por conprobar si desde hace dos meses se corrigió este bug con los nuevos kernels.

Ya os contaré.

Categorías:Linux

Acceder Mediante SSH Sin Contraseña

septiembre 9, 2008 1 comentario

Sí, vale, lo reconozco, ya sé que hay tropecientas mil páginas dónde cuentan como se hace. Pero también es verdad que siempre que lo necesito hacer estoy 10 minutos buscando, así que lo pongo aquí y lo tengo a mano. Además que este blog no lo lee nadie, así que iros a protestar a otro lado.

Objetivo: Entrar como usuario root ( sí, que vale otra vez, que no se debe entrar como root, que pesados que sois ) desde server2 a server1 sin contraseña.

Método:

En server2, como usuario root ejecutar:
ssh-keygen -t rsa y dar a enter las veces que haga falta.
Esto creará:

  • /root/.ssh/id_rsa –> Clave privada
  • /root/.ssh/id_rsa.pub –> Clave publica

Si en el server1, en la ruta /roo/.ssh/ no existe el fichero authorized_keys:

  • Copiamos el archivo de server2 /root/.ssh/id_rsa.pub y lo pegamos en server1 en /root/.ssh/ con el nombre authorized_keys

Si ya existe el fichero authorized_keys en server1:

  • Copiamos el archivo de server2 /root/.ssh/id_rsa.pub a /tmp en server1 y lo agregamos a authorized_keys con:

cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys desde server1

Si ahora entramos desde server2 por ssh como root, no nos debería pedir contraseña.

Categorías:Linux

Bajar Videos De Youtube

julio 31, 2008 4 comentarios

Esto va para los usuarios de Linux y más concretamente de Linux+Firefox.

Debido a que mucha gente me pregunta cómo bajar los vídeos de youtube, y en muchos blogs he visto que recomiendan instalar programas tipo QtTube o PyTube para realizar dicha tarea, me veo en la obligación de explicar aquí la manera más sencilla que existe:

En Linux, si tienes instalado Firefox ( no he probado con otros navegadores ), cuando estás viendo un vídeo de youtube, metacafé, etc, éste crea un fichero temporal en /tmp que es el vídeo en sí mismo, en formato flv. Y sólo lo borra cuando cambias de vídeo, página o cierras el navegador.
Esto quiere decir que si te vas a /tmp, le cambias la extensión al fichero y te lo guardas … ya tienes el puñetero vídeo de youtube !!
Y después pásalo al formato que quieras.

Yo para pasarlos a mi iphone suelo hacer:

ffmpeg -i videoyoutube.flv -s cif videoiphone.mp4

Fácil, bonito y para toda la familia.

Categorías:Linux

PHP Data Objects en Edgy

Me ha tocado instalar en un servidor en producción que está en Edgy con los repositorios old relases ubuntu el Php Data Objects ( pdo ) que es otra forma de acceder a base de datos desde php, y el pdo-pgsql que es el controlador para acceder a una base de datos en Postgres.

La forma de instalarlos en un entorno amigable con el sysadmin sería:
1. Comprobar que tenemos instalado php5-dev php5 php5-cli php-pear
2. pecl install pdo
3. pecl install pdo-pgsql
4. Editararchivo /etc/php5/apache2/php.ini y añadir:
extension=pdo.so
extension=pdo_pgsql.so

Evidentemente como no estamos en un entorno amigable, sino en un entorno toca-cojones, en esta versión de ubuntu vamos a tener el siguiento error:

pecl install pdo
downloading PDO-1.0.3.tgz …
Starting to download PDO-1.0.3.tgz (52,613 bytes)
………….done: 52,613 bytes

Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 92160 bytes) in /usr/share/php/PEAR/Builder.php on line 312

Googleando por ahí encuentro primero que se resuelve aumentando la memory_limit del php.ini de 8M a lo que quieras. El problema es que ya lo tengo puesto a 128M, así que va a ser que esa solución no me vale.
Segundo, que es un bug en la distribución edgy y que se soluciona actualizando a gutsy.
Como evidentemente no voy a actualizar a gutsy una edgy de un servidor en producción sin actualizarlo en otro primero, busco un poco maś antes de darme por vencido, y doy con este enlace donde me ofrecen una solución fácil, sencilla y para toda la familia:

1. Editar el archivo /usr/share/php/pearcmd.php y añadir:
@ini_set(‘memory_limit’, ’16M’);
2. pecl install pdo
3. pecl install pdo-pgsql
4. Editararchivo /etc/php5/apache2/php.ini y añadir:
extension=pdo.so
extension=pdo_pgsql.so
5. Reiniciar apache
6. A cascarla por ahi.

Categorías:Linux

Comando Find

julio 14, 2008 3 comentarios
En el curro tenemos una red San, con una cabina de almacenamiento dividida en varios LUNS.
Uno de ellos es para el almacenamiento de datos importantes de los usuarios “avanzados”. Es decir, usuarios que tienen información importante y que trabajan en tiempo real contra ese LUN. Usuarios que en teoría son lo suficientemente responsables para saber del costo del GIGA en ese LUN.

Pues bien, como os imagináis, a mi el adjetivo responsable al lado de usuario no me encaja, así que de vez en cuando busco en la cabina tipos de archivos multimedia, música, … o archivos que sean mayor de un tamaño específico.

Y para eso tenemos el comando find:

  • Buscar archivos con extensión .avi:
find /media/archivosimportarntes -iname ‘*.avi’

con “iname” no distingue entre mayúsculas y minúsculas, con “name” sí.
También podemos buscar varios tipos de archivos a la vez:

find /media/archivosimportantes -iname ‘*.avi’ -o -iname ‘*.mp3

y nos encuentra todos los archivos con extensión .avi, y con extensión .mp3.

  • Buscar archivos de más de 100MB:

find /media/archivosimportantes –size +1M

Aquí depende de la versión de find a usar. En debian sid, con la versión 4.4.0 se puede usar el comodín “M” para
Megabyte, o el “G” para Gigabyte.
Sin embargo, en la red hat dónde tengo el LUN está la versión 4.1.20, que sólo soporta el comodín “k” de kbyte, por lo
que tengo que hacerlo así:

find /media/archivosimportantes -size +1024k

Lo que suelo hacer a primeros de mes:

  • find /media/archivosimportantes -iname ‘*.avi’ -o -iname ‘*.mpeg’ -o -iname ‘*.mp3’ -o -iname ‘*.3gp’ -print0 | xargs -0 du -hs

Comprobar que no sean falsos positivos y palante:

  • find /media/archivosimportantes -iname ‘*.avi’ -o -iname ‘*.mpeg’ -o -iname ‘*.mp3’ -o -iname ‘*.3gp’ -print0 | xargs -0 rm
  • find /media/archivosimportantes -size +100024k -print0 | xargs -0 du -hs

Nos saca un listado con los archivos de más de 100MB. Esto es útil porque muchos usuarios crean words con imágenes
sin reducir, dando como resultado un archivo inmenso. Así los podemos detectar y decirles que los revisen.

Para poder ver qué tamaño ocupan con “du -hs”, o poder eliminarlos con “rm”, hay que formatear la salida con “print0” en find, y con “-0” en xargs.

El placer que se siente cuándo encuentra pelis, música, … y empieza a borrar es indescriptible.

En serio, tenéis que probarlo. Es una terapia de puta madre.

Categorías:Linux