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)
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;'
$ 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;
# 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';
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'
$ 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'
Suscribirse a:
Entradas (Atom)