26 enero 2007

ftp via nohup

Para realizar una transferencia de archivos de forma automática y en segundo plano utilizamos los comandos ftp y nohup de esta manera:

1.- crear un archivo que contedrá los parámeros del comando ftp, lo llamaremos parftp.txt:

open 172.16.1.1
user usuario01 [contraseña_sin_llaves]
cd /home
cd desktop
bin
get archivo1.bin
get archivo2.tar
get archivo3.tar.gz
quit


2.- Ahora crearemos el scripts que ejecutará el ftp y lo llamaremos getftp.sh:

#!/bin/ksh
ftp -ni < /directorio_donde_esta_parftp.txt
exit


3.- Asignamos permisos de ejecución al script getftp.sh

chmod +x getftp.sh


3.- Ejecutamos de esta manera:

nohup ./getftp.sh &

12 enero 2007

Ejecutar "X-Client" remotos a través de SSH (XDMCP on ssh)

Aqui se explica cómo ejecutar en nuestra computadora aplicaciones X de Servidores UNIX/Linux en mi PC con Windows.

Es decir, ejecutar una aplicación remota tipo X (gráfica) en una PC con Windows, esto se logra utilizando el comando telnet, pero esta opción es sencilla de usar y muy insegura que nadie la recomienda. Por lo tanto utilizaremos el protocolo SSH (shell seguro) para conectarnos al servidor UNIX/Linux, implica hacer algunos pasos extras para configurar nuestra conexión apropiadamente.

Antes que nada debemos instalar CygWin en nuestra PC. No detallamos que es Cygwin porque en su página principal lo explica.

Los programas que utilizaremos por parte de Cygwin son: ssh, xterm y Cygwin-Xserver principalmente.

Veremos paso a paso cómo funcionan:

1.- Ejecutamos Cygwin bash shell



2.- Luego ejecutamos el comando startx e inmediatamente se abrirá una ventana de xterm



3.- Ya en nuestra sesión de xterm, damos permiso a nuestra sesión para visualizar aplicaciones del servidor remoto, lo agregamos a nuestra lista de "servidores conocidos" de esta manera:

xhost +192.68.1.48


4.- En seguida ejecutamos desde la terminal xterm la siguiente instrucción:

ssh -Y -l oracle 192.168.1.100

Inmediatamente nos pedirá contraseña y finalmente estamos conectados al servidor donde nos interesa ejecutar el programa gráfico en nuestra PC.

5.- Para saber que IP nos asignó la VPN al conectarnos al servidor hacemos lo siguiente:

who am i

y devolverá el número IP con la cual nos conectamos al servidor a través de SSH


6.- Ahora exportamos la variable DISPLAY como sigue:

export DISPLAY=:0.0

Ejemplo, supongamos que nos devolvió el IP 192.168.4.98

export DISPLAY=192.168.4.98:0.0

7.- Y como último paso, verificamos que sí podemos ejecutar la aplicacion:

/usr/openwin/bin/xclock &



Listo, ya tenemos configurada nuestra sesión para ejecutar nuestra aplicación de forma remota desde un servidor UNIX/Linux.

Por cierto, ya podemos hacer la instalación de Oracle en forma remota :)

05 enero 2007

Leer argumentos de un Shell Script

Ejemplo de un script que lee la BD y la contraseña con las opciones -d y -p.
Se hace uso de la variable getopts y $OPTARG:


#!/usr/bin/ksh
set -x
export DATE=`date "+%d%m%y"`
export ORACLE_HOME=/oracle/product/
export DB_CAT=rcat

while getopts d:p: DATA
do
case $DATA in
d) DB_TARGET=$OPTARG
;;
p) PASS=$OPTARG
;;
*) usage
;;
esac
done

usage()
{
clear
echo "Usar: rman_back.sh -d -p "
echo ""
exit 2
}

$ORACLE_HOME/bin/rman target=system/$PASS@$DB_TARGET catalog rcat/xxxxxx@rcat cmdfile=/scripts/full_backup_$DB_TARGET.rcv log=/b1/$DB_TARGET/rman_backup_$DB_TARGET.$DATE.log

"ANALYZE" a una partición de un índice

exec dbms_stats.gather_index_stats(ownname=> 'FULANO', indname=> 'INDICE', partname=> 'IDX_PART_ENE_2007');

"ANALYZE" a una partición de una tabla

exec dbms_stats.gather_table_stats(ownname=> 'FULANO', tabname=> 'TABLITA', partname=> 'SPART_ENERO_057');

Export con el usuario "sysdba"

exp "\"/ as sysdba\"" tables=fulano.tab file=fuldata.dmp log=tabexp.log direct=y