Obtener dinero con AdFly

jueves, 14 de abril de 2011

Sincronización con Rsync y SSH

     Si queremos hacer una sincronización con rsync usando ssh para proteger nuestros datos, usamos el comando:

     Desde un directorio remoto a un directorio local:
     rsync -avz -e ssh usuario@ip-remota:/directorio/remoto /directorio/local

     Desde un directorio local a un directorio remoto:
     rsync -avz -e ssh /directorio/local usuario@ip-remota:/directorio/remoto

     Desde un directorio local a otro directorio local:
     rsync -avz -e ssh /directorio/local1 /directorio/local2

     Las opciones:

     -a: Usar recursividad manteniendo los permisos.
     -v: Mostrar los archivos o directorios que va pasando.
     -z: Comprimir los datos para que la transferencia sea más rápida.
     -e ssh: Utilzar ssh.
     --delete: Borra los datos en el directorio o archivo destino antes de pasar los nuevos.


     Cada vez que ejecutemos rsync con ssh, nos va a pedir la clave del host remoto. Esto no nos va a servir si queremos colocar un proceso en Cron para que se ejecute automátimente. Así que automatizamos el logeo.

     Generamos la claves RSA pública y privada:

         ssh-keygen

     Cuando nos pida el Passphrase (password, clave), sólo le damos a enter. Con esto se crean dos archivos:

         /home/usuario/.ssh/id_rsa (clave privada)
         /home/usuario/.ssh/id_rsa.pub (clave pública)

     Ahora copiamos la clave pública generada (/home/usuario/.ssh/id_rsa.pub) al usuario host remoto con el que nos vamos a conectar. Si el usuario en el host remoto es debian, entonces copiamos el archivo a /home/debian/.ssh/id_rsa.pub. Suponiendo que el host remote es 192.168.0.2, probamos la conexión:

          ssh debian@192.168.0.2

    Si no nos pide passphrase, entonces ya podemos automatizar la replicación con Cron. Ejecutamos crontab -e y agregamos una de estas líneas según nuestra conveniencia:

   #Hace una sincronización los lunes a la 1:00 am
   0 1 * * 1 rsync -avz -e ssh debian@192.168.0.2:/directorio/remoto /directorio/local

   #Hace una sincronización los domingos, martes, miercoles, jueves, viernes y bados
   0 1 * * 0,2-6 rsync -avz -e ssh debian@192.168.0.2:/directorio/remoto /directorio/local

   #Hace una sincronización todos los días
   0 0 * * * rsync -avz -e ssh debian@192.168.0.2:/directorio/remoto /directorio/local

Instalar OSS4 y no morir en el intento

Hace unos días instalé OSS4 en mi Debian Squeeze para mejorar la calidad del sonido. Luego tuve problemas para reproducir música, o cualquier sonido en algunas aplicaciones como SMPlayer porque algunos módulos de ALSA todavía estaban corriendo al reiniciar el sistema. ALSA tiene compatibilidad con OSS pero no con OSS4.

Después de buscar en foros y google, encontré una guía de cómo instalar OSS4 y devolverse sin quedarse en el camino. Como está en inglés y está hecha para instalarlo en Ubuntu 10.04, lo adapto a Debian Squeeze (que no es casi nada) y de una vez lo traduzco:

http://yopensource.com/it/news/ubuntu-latest-news/9297-howto-install-oss4-in-ubuntu-1004-lucido-per-meglio-sound-di-qualita

  • En una terminal, corre sudo dpkg-reconfigure linux-sound-base. Escoge OSS, esto, entre otras cosas, previenes que los módulos de ALSA sean cargados. Ahora reinicia.
  • Hay (al menos) 3 formas de instalar OSS4:
    • Instalar desde los repositorios de Debian:
      • sudo apt-get install oss4-base oss4-dkms oss4-gtk
                         Esto reconstruye los módulos OSS si tu kernel está actualizado (yo usé la versión 2.6.32), y es la vía recomendada para instalar módulos de kernels que vienen de terceros.
    • Descarga los binarios de OSS4 en .deb desde http://www.opensound.com/download.cgi y lo instalas. Esta es la vía fácil, pero vas a tener que reinstalar el paquete manualmente cada vez que tu kernel se actualice. Además, ese paquete no es GPL, porque tiene una licencia comercial de un año.
  •  Si tienes errores con el módulo snd_pcm, intenta reiniciar y correr sudo soundon. Si el problema persiste, usa lsmod para chequear si algún módulo de ALSA sigue cargado. Si es así, agregalo a la lista negra (blacklist) manualmente, creando un archivo de configuración en /etc/modprobe.d/blacklist-nombre_modulo_alsa.conf con la línea blacklist nombre_modulo_alsa.
  • Configura Pulseaudio para que use OSS4 o eliminalo:
    • Para configurar Pulseaudio con OSS4:
                   Edita el archivo de configuración por defecto: gksu gedit /etc/pulse/default.pa
                   Comenta los módulos de detección automática de hardware, estas 3 líneas:
                      #.ifexists module-udev-detect.so
                      #     load-module module-udev-detect
                      #.else

               
                    Agrega la siguiente línea:

                      load-module module-oss device="/dev/dsp" sink_name=output source_name=input mmap=0

    •  Para eliminar Pulseaudio:
                  sudo apt-get remove pulseaudio

                     Después recuperas el ícono del control de volumen en el panel.

  • Configura Gstreamer para salida con OSS4:
            Instala Gstreamer0.10-plugins-bad.
            Corre gstreamer-properties y establece OSS como entrada y salida.

  • Configura ALSA (o si prefieres libasound) para salir por OSS4 en lugar de los controladores nativos de ALSA. Crea un archivo de configuración:
            gedit ~/.asoundrc

            Agrega lo siguiente:

            pcm.!default
            {
                type oss
                device /dev/dsp
            }
            mixer.!default
            {
                type oss
                device /dev/dsp
            }

  • Botón derecho en tu panel, selecciona "Añadir al panel..." y añade el applet de control de volumen.
  • Configura las aplicaciones que soporta OSS4 nativamente (ej. Audacious, Audacity, SMPlayer, etc.) para usar OSS. Algunas aplicaciones no tienen soporte para OSS. No es problema, porque pueden seguir funcionando con GStreamer o con la emulación de ALSA a través de OSS4 (o Pulseaudio si decidiste dejarlo).
  • Después de eliminar Pulseaudio, puede ser que Rhythmbox o Movie Player, al iniciar, no encuentren los plugins audiosink. En ese caso debes cambiar manualmente algunas Gconf-keys. Inicia gconf-editor. Abre system/gstreamer/0.10/audio/default. Chequea si algunas claves (por ejemplo: musicaudiosink y chataudiosink) todavía están establecidas con "pulsesink". Si es así, cambialo a "osssink".



REVIERTE TODOS LOS CAMBIOS (EN CASO DE QUE QUIERAS):

  • En una terminal, corre sudo dpkg-reconfigure linux-sound-base Escoge ALSA. Y ahora reinicia.
  • Borra el archivo de configuración de libasound: rm ~/.asoundrc
  • Reinstala Pulseaudio y los paquetes asociados: sudo apt-get install pulseaudio libcanberra-pulse pulseaudio pulseaudio-esound-compat pulseaudio-module-bluetooth pulseaudio-module-gconf pulseaudio-module-x11
  • Configura GStreamer para salida de Pulseaudio corriendo gstreamer-properties y estableciendo como entrada y salida a Pulseaudio.
  • Si configuraste algunas aplicaciones (ej. Audacious, Audacity, SMPlayer, etc.) para usar OSS4, vuelvelas a configurar a Pulseaudio o ALSA.
  • Inicia gconf-editor. Abre system/gstreamer/0.10/audio/default. Chequea si algunas claves (ej. musicaudiosink y chataudiosink) están establecidas a "osssink". Si es así, cambialos a "pulsesink".
  • Elimina OSS4 usando: sudo apt-get remove oss4-base oss4-dkms oss4-gtk. También puedes borrar opcionalmente gstreamer0.10-plugins-bad.

martes, 5 de abril de 2011

Quanta 4

Para los que hemos desarrollado en Quanta y nos parece uno de los mejores editores Web, una guía de cómo instalarlo en Ubuntu (ya no hay soporte desde KDE 3.5):

      http://www.ubuntu-es.org/node/141444

Pero hay un proyecto en curso para llevarlo a la versión 4:

      http://nikosams.blogspot.com/2010/01/kdevelopquanta4-css-language-support.html
     
Plan de desarrollo:

      http://techbase.kde.org/Projects/Quanta/Feature_Plan_4

domingo, 3 de abril de 2011

Recuperé Grub2 desde la cónsola de rescate, sin CD-Live

Esto lo escribo porque acabo de perder casi toda la información de mi partición donde tenía /home, porque estaba redimensionando el disco, moviendo particiones, cambiando de lugar /boot... y se apagó la computadora :SSSS (no chinges jeje). Como no me dió tiempo de actualizar el gestor de arranque Grub2, al reiniciar la PC, obtuve este mensaje:

No such partition
grub rescue>

Con el cursor en esta última línea de comandos para recuperar el Grub2. Me salió este mensaje porque al cambiar de partición a /boot y sin actualizar el grub2, este sigue buscando el kernel y el inird donde antes estaba /boot.

Estaba en la peor de las situaciones (casi), porque no tenía una computadora de respaldo para buscar documentación sobre los comandos de la cóndola de Grub2; tenía imágenes ISO de Debian, Ubuntu y de como 8 distribuciones más, pero todas en el disco y sin poder acceder para quemarlas :(. Sabemos que no es fácil encontrar una distro en la farmacia de la esquina y no quería buscar un Windows ni nada de eso :). Así que fui a un Cyber y busqué información de los comandos y encontré esto:

https://help.ubuntu.com/community/Grub2

En la sección Command Line and Recue Mode, encontré lo que necesitaba, con lo que hice una medio guía:


Primero vemos qué particiones tenemos con:

>ls

Debería aparecer algo en este formato: (hdX) (hdX,A) (hdX,B)... tantas como particiones tengamos. Siendo hdX el disco (hd0,hd1,etc...) y el segundo parámetro es la partición (0,1,etc... ó msdos1,msdos2,etc..., según el tipo de partición).

Si ejecutamos ls (hdX,Y)/ aparecerá lo que hay dentro de esa partición en su carpeta raíz.

Luego asignamos el prefijo donde está el /boot/grub:

>set prefix=(hdX,Y)/boot/grub

Si la partición (hdX,Y) sólo es para /boot, tendríamos que colocar algo así:

>set prefix=(hdX,Y)/grub

Después asignamos la partición raíz:

>set root=(hdX,Y)

Con ls / o con ls /boot, ya podemos ver lo que hay dentro de estos directorios en la partición que escogimos.

Cargamos los módulos adicionales para asignar el kernel y el initrd desde el cual vamos a iniciar el sistema:

>insmod /boot/grub/linux.mod

Asignamos el kernel:

>linux /vmlinuz root=/dev/sdXY ro

Siendo /dev/sdXY (ej.: /dev/sda1) la partición donde está el grub.

Asignamos el initrd:

>initrd /initrd.img

Si queremos un kernel e initrd específicos, ejecutamos:


>linux /boot/vmlinuz-<versión> root=/dev/sdXY ro

>initrd /boot/initrd-<versión> root=/dev/sdXY ro

Y finalmente cargamos hacemos boot:

>boot

Al iniciar el sistema instalamos el Grub2 antes de reiniciar, porque sino vamos a tener que hacer todos los pasos otra vez. Desde una cónsola de root ejecutamos:

#grub-install --recheck /dev/sdXY

Siendo /dev/sdXY la partición donde está el directorio /boot.

Y actualizamos el grub2, ejecutando desde una cónsola root:

#update-grub
#update-grub2

Por ahora no me ha funcionado update-grub2 sólo, por eso ejecuto los dos.

Perdí la información pero recuperé el Grub2 xDD...