miércoles, 30 de abril de 2014

Linux - wget - Descarga de un sitio completo


sudo wget -c -r -erobots=off  -k  --limit-rate=10k http://www.site_to_download

-c:   para que la descarga continue
-r:   para que descargue recursivamente todos los archivos
-erobots=off:  indica al servidor que no es un robot
-k:   convierte los links en locales

-P:  Carpeta donde se descargara, si no existe la crea

sudo wget  -c http://www.site.com  -P /home/gabito/curso/

-m:  Mirror similar a la descarga recursiva

Postgres - Creando tabla temporal desde una consulta

Las tablas temporales no son visibles desde otra sesión, son eliminadas automáticamente a la conclusión de una sesión.

CREATE TABLE tmp_personas AS (SELECT id, name FROM personas)


martes, 22 de abril de 2014

Postgres - Postgis - Instalación en Ubuntu

Verificando el "status" de Postgres instalado:

$ sudo /etc/init.d/postgresql status

Instalando:


$ sudo apt-add-repository ppa:ubuntugis/ppa
$ sudo apt-get update
$ sudo apt-get install postgresql-9.1-postgis

Carpeta en la que se instaló:

$ ls /usr/share/postgresql/9.1/contrib/


Habilitando postgis a una bd ya existente:

$ sudo -u postgres psql -d basedatos -f /usr/share/postgresql/9.1/contrib/postgis-2.0/postgis.sql

$ sudo -u postgres psql -d basedatos -f /usr/share/postgresql/9.1/contrib/postgis-2.0/spatial_ref_sys.sql

$ sudo -u postgres psql -d basedatos -f /usr/share/postgresql/9.1/contrib/postgis-2.0/postgis_comments.sql

Con soporte raster:

$ sudo -u postgres psql -d basedatos -f /usr/share/postgresql/9.1/contrib/postgis-2.0/rtpostgis.sql 

$ sudo -u postgres psql -d basedatos -f /usr/share/postgresql/9.1/contrib/postgis-2.0/raster_comments.sql 

Con soporte para topologia:

$ sudo -u postgres psql -d basedatos -f /usr/share/postgresql/9.1/contrib/postgis-2.0/topology.sql 

$ sudo -u postgres psql -d basedatos -f /usr/share/postgresql/9.1/contrib/postgis-2.0/topology_comments.sql 

Asignando privilegios a un usuario para la gestión SIG:

$ psql -d database -c 'GRANT ALL ON geometry_columns TO usuariosig;'
$ psql -d database -c 'GRANT ALL ON spatial_ref_sys TO usuariosig;'

 

 


jueves, 17 de abril de 2014

Postgres - Grant

Creando un usuario:

# create user consulta login password 'consulta';

Asignando permiso de consulta (SELECT) a todas las tablas:

# grant select on all tables in schema public to consulta;

Asignando permiso de consulta (SELECT) a las tablas tabla1, tabla2:
 
# grant select on table tabla1, tabla2  to consulta;


Postgres - psql - cursor for update

Función que actualiza una tabla iterando la misma con números correlativos a partir de un parámetro:

CREATE OR REPLACE FUNCTION seq_id(integer) RETURNS VOID AS
$$
DECLARE
 nrosec integer:= $1;

 curupd CURSOR FOR SELECT * from tabla  for UPDATE;
BEGIN
 for i in curupd LOOP
   UPDATE tabla SET id=nrosec WHERE CURRENT OF curupd;
  nrosec:=nrosec+1;
 END LOOP;

 return;
END;
$$
LANGUAGE 'plpgsql';  



martes, 15 de abril de 2014

Postgres - Backup / Restore

Backup: (S.O. Linux distr. Ubuntu)

$ sudo -u postgres -i pg_dump -c -Fc database > database.backup

-i:   simula login inicial
-u:  usuario
-c:  clean - elimina los objetos de la base de datos previo a la creación de la bd
-Fc: "custom" Format - genera la salida más flexible, considerando todos los ítems y comprimidos por defecto

Restore: (La bd debe ser creada previamente)

$ pg_restore -h localhost -U postgres -Fc -d database  database.backup >> restore.log

Si la base de datos se encuentra en uso y no es eliminada desde PSQL ejecutar:

# SELECT pg_terminate_backend(procpid) FROM pg_stat_activity WHERE datname = 'database'