jueves, 3 de mayo de 2012

Ajustes finales para pasar a Ubuntu 12.04

Una vez copiado todo el sistema quedan los {ultimos toques
Copia de los marcadores de nautilus
- El archivo a copiar es  .gtk-bookmarks del directorio Home del usuario.
- una vez copiado el archivo podemos usarlo sin problema desde el nuevo sistema gnome accediendo a nautilus->marcadores.

sacado de http://ubuntuforums.org/showthread.php?t=1191021

sábado, 28 de abril de 2012

Script para hacer backup de un motor postgresql

Buscando la forma de copiar todas las bases de datos postgresql para pasarlas a la nueva instalación de Ubuntu me encontré con este script que con ligeras modificaciones quedó en algo así.

#!/bin/bash
#=============================================================================================
# Script Backup Databases PostgreSQL - Tomeu Roig // modificado por Horacio Degiorgi
# =============================================================================================

# Procedimiento de Copia de Seguridad de Servidor de Postgres

## BEGIN CONFIG ##
BACKUP_DIR="/datos/backups/"
USER=postgres
# la siguiente linea permite evitar poner la clave
export PGPASSWORD= clave  
# la siguiente linea permite hacer backup de un host remoto o de localhost
export PGHOST=localhost
FECHA=$(date +%d-%m-%Y)

## END CONFIG ##

if [ ! -d $BACKUP_DIR ]; then
mkdir -p $BACKUP_DIR
fi
#Leemos todas la bases de datos existente en Postgres, para despues realizar la copia una  a una
POSTGRE_DBS=$(psql -U $USER -l | awk '(NR > 2) && (/[a-zA-Z0-9]+[ ]+[|]/) && ( $0 !~ /template[0-9]/) { print $1 }');

#Realizamos la copia de seguridad de cada una de ellas y las guardamos en un directorio de backups


for DB in $POSTGRE_DBS ; do
echo "* Backuping PostgreSQL data from $DB@$HOST ..."
pg_dump -U $USER -Z 5  -f $BACKUP_DIR$DB-$FECHA.gz $DB

######### fin script #############

Los backups que realiza el script quedan en el directorio designado por BACKUP_DIR  y cada uno con su fecha y nombre de base de datos.


Ubuntu 12.04 entorno de desarrollo web

Una vez seleccionado el entorno de ventanas y configurado lo básico del sistema empiezo a configurar todo lo necesario para desarrollo web con PHP/MySQL y Postgresql

Primero instalar tasksel (instalador de paquetes virtuales que simplifica mucho la instalación de las distintas partes del sistema)  usando el comando sudo apt-get install tasksel

Una vez que está instalado permite seleccionar de múltiples paquetes

Lo bueno es que no es necesario instalar paquetes sueltos ni resolver dependencias.

Otra cosa que utilizo mucho para configurar los servidores virtuales es webmin
Para esto existe desde hace tiempo un repositorio desde donde puede instalarse.
Las instrucciones son simples  y pueden seguirse desde este lugar
http://www.unixmen.com/201204-install-webmin-in-ubuntu-12-04/


viernes, 27 de abril de 2012

Copiar el perfil de chrome en linux

Con la migración de sistema que estoy llevando a cabo necesito traer toda la información de mi navegador del otro portatil. La idea es traer: favoritos, extensiones, datos guardados en formularios y todo lo demás.
Para esto se puede copiar el perfil completo de una pc a otra. En mi caso usé  rsync  con los  siguientes comandos
Identicamos la ruta del perfil. En mi caso está en
~/.config/chromium
Primero muevo el perfil actual a otro directorio como backup.
mv ~/.config/chromium ~/.config/chromium_old
Luego creo el directorio
~/.config/chromium
Luego traigo el perfil de la pc vieja a la nueva usando rsync
rsync -av horaciod@192.168.0.3:/home/horaciod/.config/chromium/ chromium/

Luego hay que borrar un archivo en caso de tener abierto el chrome cuando relizamos la copia.

rm /home/horaciod/.config/chromium/SingletonLock

Con esto ya está listo y se puede arrancar el chrome en la pc nueva con toda la información necesaria.










Migrando a Ubuntu 12.04 Precise Pangolin

Después de mucho esperar (estaba usando una versión de ubuntu 11.04) hoy estoy migrando a 12.04.
Algunas cosas buenas otras no tanto.

Estoy instalando en otro hardware para poder tomarme todo el tiempo para realizar las copias e instalar todo el soft.

Ventanas
Son varias las cosas de esta nueva versión de gnome3  que no me gustan así que habrá que hacer retoques
  1. el nuevo sistema de scroll de las ventanas de gnome es feo, o por lo menos no me acostumbré  lo suficientemente rápido. Cómo volver a la barra de scroll de siempre ? 
    1. en una consola escribir
      gsettings set org.gnome.desktop.interface ubuntu-overlay-scrollbars false
  2. Unity está bien pero es necesario modificar algunas cosas, para configurarlo se puede utilizar MyUnity que se instala desde el "centro de software de Ubuntu" 
    1. hay alternativas al gnome 3 pero todavía no pruebo ninguna 
  3. Hibernación: viene desactivada por defecto pero se puede activar corriendo el siguiente comando.
    1. primero creamos un archivo 
      1. sudo gedit /var/lib/polkit-1/localauthority/50-local.d/hibernate.pkla
    2. luego lo completamos con 
[Re-enable Hibernate]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
en mi caso funcionó el hibernado pero es algo que pasa con mi portatil desde hace tiempo (un hp530) .
La solución en ubuntu maverick y ahora fue instalar el parche tuxonice  mediante el PPA correspondiente.
   sudo add-apt-repository ppa:tuxonice 
   sudo apt-get install tuxonice-userui linux-generic-tuxonice linux-headers-generic-tuxonice hibernate
  
Luego de esto funcionó perfecto.

Sigo investigando  la instalación de esta nueva versión LTS


Limpiar tabla con campos OID en postgresql

Limpieza de postgresql despues de usar campos OID
Primero pasar los campos de oid a bytea (hay varias páginas que hablan de las ventajas y desventajas de cada uno pero lo importante es que bytea es más sql y al momento de borrar realmente se borra, puede exportarse el esquema in una tabla en particular que tenga campos bytea etc)




CREATE OR REPLACE FUNCTION merge_oid(val oid)
returns bytea as $$
declare merged bytea;
declare arr bytea;
 BEGIN
   FOR arr IN SELECT data from pg_largeobject WHERE loid = val ORDER BY pageno LOOP
     IF merged IS NULL THEN
       merged := arr;
     ELSE
       merged := merged || arr;
     END IF;
   END LOOP;
  RETURN merged;

END
$$ LANGUAGE plpgsql;


update <tabla> set <campo bytea>=merge_oid(<campo oid>)  where true ;

-- limpiar lo_objects
-- https://bugs.launchpad.net/ubuntu/+source/postgresql-8.4/+bug/887138


vacuumlo -v -U postgres -W -h localhost <basededatos>  

Este comando está en ubuntu en el paquete contrib  así que es necesario instalar postgresql-8.4-contrib o similares.

Otra alternativa usando una funcion :
http://www.microolap.com/products/connectivity/postgresdac/help/TipsAndTricks/ByteaVsOid.htm