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

01 noviembre 2006

Instalación de parche Oracle en modo texto

A veces es difícil tener un ambiente gráfico para hacer las instalaciones de Oracle y/o sus parches.

La ventaja de instalar Oracle en modo texto, nos ahorra tiempo ya que no requiere de "clicks" o "enter", lo podemos aplicar en modo desatendido e irnos a tomar un café mientras se instala.

Instalando un parche con el comando runInstaller en modo texto:

1.- Antes que nada debemos configurar el archivo patchset.rsp , editamos el archivo patchset.rsp que se encuentra en la ruta donde se descomprimió el archivo que contiene el parche, por ejempo /Disk1/response/patchset.rsp y editamos las siguientes líneas:

#-------------------------------------------------------------------------------
#Name : ORACLE_HOME
#Datatype : String
#Description: Complete path of the Oracle Home.
#Example: ORACLE_HOME = "C:\OHOME1"
#-------------------------------------------------------------------------------
ORACLE_HOME="/oracle9i/product"

#-------------------------------------------------------------------------------
#Name : ORACLE_HOME_NAME
#Datatype : String
#Description: Oracle Home Name. Used in creating folders and services.
#Example: ORACLE_HOME_NAME = "OHOME1"
#-------------------------------------------------------------------------------
ORACLE_HOME_NAME="db92"

Nota: En modo gráfico el instalador automáticamente coloca el "ORACLE_HOME_NAME" pero en este caso lo desconocemos, si colocamos cualquier valor a esta variable en nuestra instalación en modo texto, el instalador nos indicará que no existe tal Oracle Home Name, mostrándonos el valor correcto. :)


2.- Ejecutamos el comando de instalación de esta manera:

./runInstaller -silent -responseFile /orac/parches/Disk1/response/patchset.rsp

Aparecerán varias lineas como esta:

Starting Oracle Universal Installer...

Checking installer requirements...

Checking operating system version: must be 5.6, 5.7, 5.8, 5.9 or 5.10. Actual 5.8
Passed

Checking Temp space: must be greater than 250 MB. Actual 4829 MB Passed
Checking swap space: must be greater than 500 MB. Actual 5590MB Passed

All installer requirements met.

Checking operating system patches: 108652-66,108921-16,108940-53,108773-18,111310-01,109147-24,111308-03,111111-03,112396-02,110386-03,111023-02,108987-13,108528-21,108989-02,108993-18 Passed
Checking for patch 108652-66; found 108652-78
Checking for patch 108921-16; found 108921-25
...
...
...
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2006-11-01_08-04-19PM. Please wait ...
....................................
Loading Product Information
...............................................................100% Done.


Analyzing dependencies
...............................................................100% Done.

-----------------------------------------------------------------------------
Summary

...
...
...


4.- Inicia la instalación:

Copying files in progress (Wed Nov 01 20:05:00 CST 2006)
............................................................... 22% Done.
............................................................... 45% Done.
............................................................... 68% Done.
............................................................... 91% Done.
......... 94% Done.
Copy successful

Linking in progress (Wed Nov 01 20:15:37 CST 2006)
..... 96% Done.
Link successful

Setup in progress (Wed Nov 01 20:23:42 CST 2006)
... 97% Done.
Setup successful

End of install phases.(Wed Nov 01 20:24:42 CST 2006)
Warning:*** Alert: A configuration script needs to be run as root for the installation to be complete. Please run /oracle9i/product/root.sh as root at the end of install. ***


y listo, tenemos nuestra instalación parchada. ¿Sencillo, no?

30 octubre 2006

Oracle Enterprise Linux

Llamado oficialmente por Oracle: Enterprise Linux
Es un producto derivado de Red Hat Enterprise AS 4.
Es exactamente el mismo producto de Red Hat sin los logos oficiales del "Sombrero Rojo".
Oracle dará soporte a Linux Red Hat Enterprise a un menor costo que el propio Red Hat.
El programa se llama: Oracle's Unbreakable Linux Program.

Red Hat responde a esta noticia.

Capturas de instalación de Enterprise Linux: