Primero habría que configurar la hora del equipo, esto lo hice con el comando hwclock (hardware clock):
hwclock --set --date="MM/dd/YY HH24:MI:SS"
Luego sincronicé la hora del sistema con la hora previamente configurada:
hwclock --hctosys
Ahora hwclock -r y date deberían quedar sincronizados.
miércoles, 15 de octubre de 2008
miércoles, 1 de octubre de 2008
FEDORA 9: Antes era Samba, ahora CIFS
Mirá vos de qué me vengo a enterar. Con razón mi Fedora 9 no reconocía la siguiente instrucción: mount -t smbfs ...
Para los que están tan desactualizados como yo, el nuevo tipo de FS ahora se denomina CIFS, no voy a entrar en detalles y conceptos, sólo voy a publicar la instrucción para montar un recurso compartido desde windows en linux.
mount -t cifs //maquina_remota/recurso_compartido /punto_de_montaje -o user=dominio\\usuario,pass=clave
En mi caso, obvié ponerle el parámetro pass y me lo solicitó el mismo servicio, evitando así que quede mi clave grabada en el histórico de comandos del shell.
Seguramente habrá otro despistado como yo, al que le servirá este post.
Para los que están tan desactualizados como yo, el nuevo tipo de FS ahora se denomina CIFS, no voy a entrar en detalles y conceptos, sólo voy a publicar la instrucción para montar un recurso compartido desde windows en linux.
mount -t cifs //maquina_remota/recurso_compartido /punto_de_montaje -o user=dominio\\usuario,pass=clave
En mi caso, obvié ponerle el parámetro pass y me lo solicitó el mismo servicio, evitando así que quede mi clave grabada en el histórico de comandos del shell.
Seguramente habrá otro despistado como yo, al que le servirá este post.
lunes, 29 de septiembre de 2008
LINUX: configurar proxy para aplicaciones en modo texto
Mi problema consistía en que deseaba acceder a internet pero desde mi terminal ssh, el problema era que mi acceso a internet era mediante un proxy sobre windows con autentificación.
Una técnica que encontré navegando, consistía en configurar las variables http_proxy y ftp_proxy de la siguiente forma:
export http_proxy="http://usuario:contraseña@proxy:puerto"
idem con ftp_proxy, y luego filtrar los dominios que no utilizarían el proxy de la siguiente forma:
export no_proxy="dominio.com"
De todas formas, esta técnica no me sirvió por tratarse de un proxy M$, así que seguí navegando y me topé con este programita construído en python, que finalmente me solucionó mi problema de conectividad en modo texto. Se trata de ntlmaps, donde solo hay que configurar el archivo server.cfg con el usuario y contraseña para autentificarse en el proxy, y el puerto por defecto donde escuchará las conexiones hacia el proxy. Una vez lanzado el programa en segundo plano, se configura las variables de ambiente antes mencionadas, para que accedan al puerto configurado, en forma local, por ejemplo:
export http_proxy="http://localhost:8888"
Y con esto, ya quería en condiciones de salir a internet por ejemplo con lynx o elinks.
Una técnica que encontré navegando, consistía en configurar las variables http_proxy y ftp_proxy de la siguiente forma:
export http_proxy="http://usuario:contraseña@proxy:puerto"
idem con ftp_proxy, y luego filtrar los dominios que no utilizarían el proxy de la siguiente forma:
export no_proxy="dominio.com"
De todas formas, esta técnica no me sirvió por tratarse de un proxy M$, así que seguí navegando y me topé con este programita construído en python, que finalmente me solucionó mi problema de conectividad en modo texto. Se trata de ntlmaps, donde solo hay que configurar el archivo server.cfg con el usuario y contraseña para autentificarse en el proxy, y el puerto por defecto donde escuchará las conexiones hacia el proxy. Una vez lanzado el programa en segundo plano, se configura las variables de ambiente antes mencionadas, para que accedan al puerto configurado, en forma local, por ejemplo:
export http_proxy="http://localhost:8888"
Y con esto, ya quería en condiciones de salir a internet por ejemplo con lynx o elinks.
miércoles, 10 de septiembre de 2008
ORACLE: Logré que me funcionara el TNS!!!
Gracias al siguiente a este enlace tengo una base de datos Oracle 11g corriendo sobre un Fedora 9 (ambos sistemas para arquitectura de 64 bits).
Pero el tip en este caso nace, porque a diferencia del 10g cuando generé la entrada LISTENER en el archivo listener.ora con el asistente netca, no me generó la entrada SID_LIST_LISTENER con lo cual no me reconocía el servicio de base de datos que quería publicar hacia la red.
Probablemente, sea algo que cualquier DBA principiante lo haya descubierto, creo que esta nota le servirá para otro autodidacta como yo.
Pero el tip en este caso nace, porque a diferencia del 10g cuando generé la entrada LISTENER en el archivo listener.ora con el asistente netca, no me generó la entrada SID_LIST_LISTENER con lo cual no me reconocía el servicio de base de datos que quería publicar hacia la red.
Probablemente, sea algo que cualquier DBA principiante lo haya descubierto, creo que esta nota le servirá para otro autodidacta como yo.
viernes, 15 de agosto de 2008
UBUNTU: Contraseña de root
Cuando instalé el ubuntu 8.04, durante la instalación me solicitó un usuario y clave para generarme una cuenta de ingreso, en ningún momento me solicitó una clave para el root.
Como de costumbre, investigando en la web, encontré que hay que asignársela luego de ingresar con la cuenta antes creada, de la siguiente manera:
Abrí una terminal e ingresé el comando "sudo passwd root", esto me permitió asignarle la clave al root.
Ahora vuelvo a ser feliz!
Como de costumbre, investigando en la web, encontré que hay que asignársela luego de ingresar con la cuenta antes creada, de la siguiente manera:
Abrí una terminal e ingresé el comando "sudo passwd root", esto me permitió asignarle la clave al root.
Ahora vuelvo a ser feliz!
martes, 12 de agosto de 2008
VIRTUALBOX: XP SP2 como invitado
Acabo de instalar el Windows XP SP2 en mi VM, la única forma en que logré hacerlo, teniendo en cuenta la configuración de mi pc, fué quitándole de la configuración de la VM la opción ACPI, luego de haber hecho esto, pude instalarlo sin problemas.
Antes reventaba el mismo instalador, no dejándome siquiera particionar el disco. Un secretito para tenerlo en cuenta.
Antes reventaba el mismo instalador, no dejándome siquiera particionar el disco. Un secretito para tenerlo en cuenta.
viernes, 8 de agosto de 2008
ORACLE: Auditoría de la Base de Datos
Habiliar la auditoría para la base de datos
Parámetros de inicio requeridos:
-- DB_EXTENDED registra también la sentencia SQL que afecta al objeto de base de datos
ALTER SYSTEM SET AUDIT_TRAIL = DB_EXTENDED SCOPE = SPFILE;
-- Opcional: si se quieren las sentencias ejecutadas por SYS
ALTER SYSTEM SET AUDIT_SYS_OPERATIONS = FALSE SCOPE = SPFILE;
-- Opcional: el directorio por defecto es $ORACLE_HOME/rdbms/audit
ALTER SYSTEM SET AUDIT_FILE_DEST = '/tmp' DEFERRED SCOPE = SPFILE;
Luego de realizar estos cambios con el usuario system o algún otros con privilegios de administración, deberá reiniciar la instancia para que surtan efecto los cambios.
En mi caso, necesitaba auditar las sentencias ejecutadas por un usuario específico, esto se lo indico con la sentencia AUDIT:
AUDIT ALL BY SCOTT BY SESSION;
Esto sólo audita sentencias preconfiguradas (las mismas se indican en los manuales de Oracle). Yo a su vez, agregué la auditoría de las sentencias clásicas SELECT, UPDATE, DELETE e INSERT.
AUDIT SELECT TABLE, UPDATE TABLE, DELETE TABLE, INSERT TABLE, TABLE, INDEX, SYNONYM, EXECUTE PROCEDURE BY SCOTT BY SESSION;
Básicamente, el resultado de esta auditoría queda registrada en la tabla SYS.AUD$
Con la sentencia NOAUDIT se deshabilita la auditoría.
NOAUDIT ALL BY SCOTT;
Un dato adicional:
Para ver los valores de los parámetros actuales de la instancia, puede consultar la vista V$PARAMETER ó los parámetros almacenados en el SPFILE a través de la vista V$SPPARAMETER.
Agrego una consulta para determinar con el usuario SYS, qué usuarios están auditando y sobre qué sentencias:
SELECT usr.name, map.name FROM audit$
JOIN stmt_audit_option_map map USING(option#)
JOIN user$ usr USING(user#)
Sino, prueben con esta:
SELECT * FROM DBA_STMT_AUDIT_OPTS;
Parámetros de inicio requeridos:
-- DB_EXTENDED registra también la sentencia SQL que afecta al objeto de base de datos
ALTER SYSTEM SET AUDIT_TRAIL = DB_EXTENDED SCOPE = SPFILE;
-- Opcional: si se quieren las sentencias ejecutadas por SYS
ALTER SYSTEM SET AUDIT_SYS_OPERATIONS = FALSE SCOPE = SPFILE;
-- Opcional: el directorio por defecto es $ORACLE_HOME/rdbms/audit
ALTER SYSTEM SET AUDIT_FILE_DEST = '/tmp' DEFERRED SCOPE = SPFILE;
Luego de realizar estos cambios con el usuario system o algún otros con privilegios de administración, deberá reiniciar la instancia para que surtan efecto los cambios.
En mi caso, necesitaba auditar las sentencias ejecutadas por un usuario específico, esto se lo indico con la sentencia AUDIT:
AUDIT ALL BY SCOTT BY SESSION;
Esto sólo audita sentencias preconfiguradas (las mismas se indican en los manuales de Oracle). Yo a su vez, agregué la auditoría de las sentencias clásicas SELECT, UPDATE, DELETE e INSERT.
AUDIT SELECT TABLE, UPDATE TABLE, DELETE TABLE, INSERT TABLE, TABLE, INDEX, SYNONYM, EXECUTE PROCEDURE BY SCOTT BY SESSION;
Básicamente, el resultado de esta auditoría queda registrada en la tabla SYS.AUD$
Con la sentencia NOAUDIT se deshabilita la auditoría.
NOAUDIT ALL BY SCOTT;
Un dato adicional:
Para ver los valores de los parámetros actuales de la instancia, puede consultar la vista V$PARAMETER ó los parámetros almacenados en el SPFILE a través de la vista V$SPPARAMETER.
Agrego una consulta para determinar con el usuario SYS, qué usuarios están auditando y sobre qué sentencias:
SELECT usr.name, map.name FROM audit$
JOIN stmt_audit_option_map map USING(option#)
JOIN user$ usr USING(user#)
Sino, prueben con esta:
SELECT * FROM DBA_STMT_AUDIT_OPTS;
jueves, 7 de agosto de 2008
ORACLE: Tablas Particionadas I
Muchas veces nos encontramos trabajando desde terminales qué cuentan sólo con el sistema operativo y el bien ponderado SQL/Plus, ni una herramienta visual que nos simplifique ver la información de tablas particionadas. He aquí una consulta que me resultó muy útil en este caso:
SELECT atc.owner,
atc.table_name,
atp.partition_name,
apt.partitioning_type,
apkc.column_name,
atp.high_value,
atp.tablespace_name
FROM all_tab_columns atc,
all_part_tables apt,
all_part_key_columns apkc,
all_tab_partitions atp
WHERE atc.table_name = apt.table_name
AND atc.table_name = apkc.NAME
AND atc.table_name = atp.table_name
AND atc.owner = apt.owner
AND atc.owner = apkc.owner
AND atc.owner = atp.table_owner
AND atc.column_name = apkc.column_name
AND atc.owner = 'SCOTT'
ORDER BY 1, 2, apkc.column_position;
Espero también les sea de utilidad.
SELECT atc.owner,
atc.table_name,
atp.partition_name,
apt.partitioning_type,
apkc.column_name,
atp.high_value,
atp.tablespace_name
FROM all_tab_columns atc,
all_part_tables apt,
all_part_key_columns apkc,
all_tab_partitions atp
WHERE atc.table_name = apt.table_name
AND atc.table_name = apkc.NAME
AND atc.table_name = atp.table_name
AND atc.owner = apt.owner
AND atc.owner = apkc.owner
AND atc.owner = atp.table_owner
AND atc.column_name = apkc.column_name
AND atc.owner = 'SCOTT'
ORDER BY 1, 2, apkc.column_position;
Espero también les sea de utilidad.
jueves, 31 de julio de 2008
ORACLE: Dos pequeños scripts para verificar y corregir la integridad de los datafiles
El primer script (chkdbf.sh) verifica la integridad de los datafiles ubicados en un directorio determinado, si todo está en orden, el resultado debería visualizar todos los valores en cero.
Caso contrario entraría en acción el segundo script (rcvdbf.sh), que intentará reparar los daños en el datafile y bloque correspondiente.
Caso contrario entraría en acción el segundo script (rcvdbf.sh), que intentará reparar los daños en el datafile y bloque correspondiente.
#!/bin/bash -x
# chkdbf.sh
function chkdbf {
for f in `find /u01/oradata/orcl10g/ -name "*.dbf"`; do
echo `basename $f`|tr [:lower:] [:upper:];
$ORACLE_HOME/bin/dbv file=$f blocksize=8192;
done
}
chkdbf > chkdbf.out 2>&1
grep Failing chkdbf.out
#!/bin/bash -x
# rcvdbf.sh
function Error {
echo "rcvdbf.sh <file number> <block number>"
}
function ChkDigit {
case $1 in
[0-9]*$) return 0;;
*) return 1;;
esac
}
if [ ${#} -lt 2 ]; then
Error
exit 1
fi
if ChkDigit ${1}; then
Error
exit 2
fi
if ChkDigit ${2}; then
Error
exit 3
fi
$ORACLE_HOME/bin/rman target / <<!
blockrecover datafile ${1} block ${2}
exit
!
ORACLE: Script para iniciar y detener la instancia de base de datos
Este script se sitúa en el directorio /etc/init.d con el nombre "oracle".
Dentro del directorio /etc/rc.d vamos a encontrar otros directorios con el nombre rcnivel.d, donde nivel corresponde a uno de los detallados a continuación:
0: Apagado del sistema operativo.
1: Inicio en modo monousuario.
2: Multiusuario sin soporte de red.
3: Multiusuario con soporte de red.
4: No utilizado.
5: Inicio gráfico.
6: Reinicio del sistema operativo.
Cada uno de estos directorios, contiene un conjunto de scripts para detener e iniciar diferentes servicios requeridos, según el nivel de inicio que se solicite. Este conjunto de scripts se dividen en dos grupos, y son ejecutados secuencialmente en orden alfabético. Primero se ejecutan los K##* (Kill scripts) deteniendo los servicios que no corresponden al nivel de inicio seleccionado, y posteriormente se ejecutan los S##* (Start scripts), que inician los servicios requeridos por el nivel solicitado. Aclaro que ## es un número de secuencia que va desde el 00 al 99, y el * sería el nombre del servicio.
Luego de esta breve introducción a la estructura de scripts de inicialización del sistema, volvemos a nuestro objetivo, iniciar y detener la instancia de base de datos Oracle.
Cuando instalamos el motor de base de datos, se generan dos script en $ORACLE_HOME/bin, denominados dbstart y dbshut, revisar que en su interior localicen correctamente el archivo oratab, si no es así, corregir dicha situación.
En todos los niveles de inicio, generar un enlace simbólico al script /etc/init.d/oracle, con el nombre K00oracle. Con esto nos aseguramos que cada vez que se cambie a un nivel de inicio diferente, se baje la instancia de base de datos si se encuentra activa.
En mi caso, solo quiero que se levante la base de datos en el nivel 3 de inicio, y para ello genero un enlace simbólico a /etc/init.d/oracle con el nombre S98oracle.
Un pequeño secreto: cuando se ejecuta el script S98oracle, se genera el archivo /var/lock/subsys/oracle, de no existir este archivo, cuando se ejecute el script K00oracle no hará nada, porque pensará que nunca se inició la instancia de base de datos.
Para más detalles de cómo se ejecutan los diferentes script de inicio, se puede ver el script /etc/rc.d/rc
A continuación, les dejo el fuente del script oracle, que también se encarga de iniciar el listener para conexiones remotas por TNS.
#!/bin/bash -x
################################################################################
#
# ORACLE: Start database and listener.
#
################################################################################
function dbstart {
if su - oracle -c "/u00/oracle/product/10.1.0.3/bin/dbstart"; then
if ps -fu oracle|grep -v grep|grep -q ora_smon; then
if su - oracle -c "/u00/oracle/product/10.1.0.3/bin/lsnrctl start"; then
return 0
else
return 2
fi
fi
else
return 1
fi
return 0
}
################################################################################
#
# ORACLE: Shutdown listener and database.
#
################################################################################
function dbshut {
if ps -fu oracle|grep -v grep|grep -q tnslsnr; then
su - oracle -c "/u00/oracle/product/10.1.0.3/bin/lsnrctl stop"
fi
if su - oracle -c "/u00/oracle/product/10.1.0.3/bin/dbshut"; then
return 0
else
return 1
fi
return 0
}
################################################################################
#
# ORACLE: Startup / Shutdown listener and database.
#
################################################################################
case ${1} in
start) if dbstart; then
touch /var/lock/subsys/oracle
fi;;
stop) if dbshut; then
rm -f /var/lock/subsys/oracle 2>/dev/null
fi;;
reload|restart) if dbshut && dbstart; then
rm -f /var/lock/subsys/oracle 2>/dev/null
touch /var/lock/subsys/oracle
fi;;
*) exit 1
esac
exit 0
Dentro del directorio /etc/rc.d vamos a encontrar otros directorios con el nombre rcnivel
0: Apagado del sistema operativo.
1: Inicio en modo monousuario.
2: Multiusuario sin soporte de red.
3: Multiusuario con soporte de red.
4: No utilizado.
5: Inicio gráfico.
6: Reinicio del sistema operativo.
Cada uno de estos directorios, contiene un conjunto de scripts para detener e iniciar diferentes servicios requeridos, según el nivel de inicio que se solicite. Este conjunto de scripts se dividen en dos grupos, y son ejecutados secuencialmente en orden alfabético. Primero se ejecutan los K##* (Kill scripts) deteniendo los servicios que no corresponden al nivel de inicio seleccionado, y posteriormente se ejecutan los S##* (Start scripts), que inician los servicios requeridos por el nivel solicitado. Aclaro que ## es un número de secuencia que va desde el 00 al 99, y el * sería el nombre del servicio.
Luego de esta breve introducción a la estructura de scripts de inicialización del sistema, volvemos a nuestro objetivo, iniciar y detener la instancia de base de datos Oracle.
Cuando instalamos el motor de base de datos, se generan dos script en $ORACLE_HOME/bin, denominados dbstart y dbshut, revisar que en su interior localicen correctamente el archivo oratab, si no es así, corregir dicha situación.
En todos los niveles de inicio, generar un enlace simbólico al script /etc/init.d/oracle, con el nombre K00oracle. Con esto nos aseguramos que cada vez que se cambie a un nivel de inicio diferente, se baje la instancia de base de datos si se encuentra activa.
En mi caso, solo quiero que se levante la base de datos en el nivel 3
Un pequeño secreto: cuando se ejecuta el script S98oracle, se genera el archivo /var/lock/subsys/oracle, de no existir este archivo, cuando se ejecute el script K00oracle no hará nada, porque pensará que nunca se inició la instancia de base de datos.
Para más detalles de cómo se ejecutan los diferentes script de inicio, se puede ver el script /etc/rc.d/rc
A continuación, les dejo el fuente del script oracle, que también se encarga de iniciar el listener para conexiones remotas por TNS.
#!/bin/bash -x
################################################################################
#
# ORACLE: Start database and listener.
#
################################################################################
function dbstart {
if su - oracle -c "/u00/oracle/product/10.1.0.3/bin/dbstart"; then
if ps -fu oracle|grep -v grep|grep -q ora_smon; then
if su - oracle -c "/u00/oracle/product/10.1.0.3/bin/lsnrctl start"; then
return 0
else
return 2
fi
fi
else
return 1
fi
return 0
}
################################################################################
#
# ORACLE: Shutdown listener and database.
#
################################################################################
function dbshut {
if ps -fu oracle|grep -v grep|grep -q tnslsnr; then
su - oracle -c "/u00/oracle/product/10.1.0.3/bin/lsnrctl stop"
fi
if su - oracle -c "/u00/oracle/product/10.1.0.3/bin/dbshut"; then
return 0
else
return 1
fi
return 0
}
################################################################################
#
# ORACLE: Startup / Shutdown listener and database.
#
################################################################################
case ${1} in
start) if dbstart; then
touch /var/lock/subsys/oracle
fi;;
stop) if dbshut; then
rm -f /var/lock/subsys/oracle 2>/dev/null
fi;;
reload|restart) if dbshut && dbstart; then
rm -f /var/lock/subsys/oracle 2>/dev/null
touch /var/lock/subsys/oracle
fi;;
*) exit 1
esac
exit 0
LINUX: Con un poco de sudo, el usuario oracle ejecuta los scripts de inicio
La idea es que el usuario oracle (propietario del software de base de datos), pueda iniciar y detener la instancia de base de datos, con los propios scripts de inicio (rc.d / init.d) del sistema operativo, aprovechando esta configuración de permisos, el mismo usuario podrá reiniciar (shutdown) el sistema operativo, y todas estas tareas sin requerirle la contraseña.
Modificar con el usuario root el archivo /etc/sudoers, este archivo se puede editar con el comando visudo. Deberá contener las siguientes líneas:
Defaults:oracle !authenticate
oracle rh90o10g=(root)/etc/init.d/oracle *,(root)/sbin/shutdown *
La línea roja le indica a sudo que no le solicite la contraseña al usuario oracle.
La línea azul le indica a sudo que el usuario oracle puede ejecutar los comandos oracle y shutdown, ambos con cualquier lista de argumentos, adquiriendo el perfil de root, sobre el equipo rh90o10g.
Modificar con el usuario root el archivo /etc/sudoers, este archivo se puede editar con el comando visudo. Deberá contener las siguientes líneas:
Defaults:oracle !authenticate
oracle rh90o10g=(root)/etc/init.d/oracle *,(root)/sbin/shutdown *
La línea roja le indica a sudo que no le solicite la contraseña al usuario oracle.
La línea azul le indica a sudo que el usuario oracle puede ejecutar los comandos oracle y shutdown, ambos con cualquier lista de argumentos, adquiriendo el perfil de root, sobre el equipo rh90o10g.
Configuración del hardware donde compruebo mis experiencias
Procesador: Intel Pentium Dual Core E2140
Memoria: 2 Gb
Disco: 160 Gb
Sistema Operativo (anfitrión): Windows XP Pro SP2
X-Server para Windows: cygwin
Manejador de máquinas virtuales: Sun Virtual Box 1.6.0
Sistema Operativo (huesped): Red Hat Linux 9 (Shrike)
Kernel: 2.4.20-8
Base de datos: Oracle 10g para Linux x86 release 10.1.0.3
Memoria asignada a la MV: 768 Mb
Memoria: 2 Gb
Disco: 160 Gb
Sistema Operativo (anfitrión): Windows XP Pro SP2
X-Server para Windows: cygwin
Manejador de máquinas virtuales: Sun Virtual Box 1.6.0
Sistema Operativo (huesped): Red Hat Linux 9 (Shrike)
Kernel: 2.4.20-8
Base de datos: Oracle 10g para Linux x86 release 10.1.0.3
Memoria asignada a la MV: 768 Mb
ORACLE: Cálculo rápido de memoria.
Cuando estamos generando una nueva instancia de base de datos con el asistente de Oracle (dbca), podemos corregir los valores de los parámetros de memoria, más adecuados a nuestro hardware disponible, evitando utilizar los valores por defecto.
Para más detalles, estos datos los obtuve del siguiente blog: http://oracle-now.blogspot.com
oracle = RAM * 0.55
PGA = (RAM * 0.8 - oracle) * 0.2
SGA = (RAM * 0.8 - oracle) * 0.8
Buffer Cache = Aprox. 80% de la SGA
Shared Pool = Aprox. 12% de la SGA
Fixed Size = Aprox.1% de la SGA
Redo Log Buffer = Aprox. 0.1% de la SGA
Para más detalles, estos datos los obtuve del siguiente blog: http://oracle-now.blogspot.com
miércoles, 30 de julio de 2008
VIRTUALBOX: Brindar servicios desde una máquina virtual con Linux

Concluido este paso, si nos fijamos en la ventana de conexiones de red de windows, nos encontraremos con que existe un nuevo dispositivo de red. A continuación le asignamos una dirección de red estática.
Ahora nos encontramos en condiciones de iniciar nuestra máquina virtual, con las nuevas versiones de linux es probable que autodetecte el nuevo dispositivo de red, con lo que nos preguntará los datos para configurar, caso contrario lo agregamos manualmente con el asistente en X-Window, donde también le asignamos una dirección de red estática.
Si contamos con servicio de telnet activado en Linux, desde Windows podríamos acceder sin problemas.
Ejecutar aplicaciones X en Linux desde Windows con X server de Cygwin
Iniciar el X-Window del Cygwin, ejecutando el siguiente batch:
C:\cygwin\usr\X11R6\bin\startxwin.bat
Este batch arranca el X server y abre una terminal visual (xterm), desde donde se ejecuta el siguiente comando para habilitar la ejecución de aplicaciones visuales remotas:
xhost +mylinux
Abrir una terminal remota, por ejemplo telnet, hacia el linux y configurar la variable de ambiente DISPLAY para indicar que las aplicaciones X se visualicen en el X server del cygwin.
DISPLAY=mywin:0.0; export DISPLAY
Y ya nos encontraríamos en condiciones de lanzar una aplicación X en el Linux y visualizarla en el Windows, por ejemplo ejecutando la aplicación "xeyes &" sin las comillas dobles.
C:\cygwin\usr\X11R6\bin\startxwin.bat
Este batch arranca el X server y abre una terminal visual (xterm), desde donde se ejecuta el siguiente comando para habilitar la ejecución de aplicaciones visuales remotas:
xhost +mylinux
Abrir una terminal remota, por ejemplo telnet, hacia el linux y configurar la variable de ambiente DISPLAY para indicar que las aplicaciones X se visualicen en el X server del cygwin.
DISPLAY=mywin:0.0; export DISPLAY
Y ya nos encontraríamos en condiciones de lanzar una aplicación X en el Linux y visualizarla en el Windows, por ejemplo ejecutando la aplicación "xeyes &" sin las comillas dobles.
Automatizar el inicio de una máquina virtual con Virtual Box
Habiendo instalado Virtual Box en mi Windows XP, se me ocurrió automatizar el inicio de la máquina virtual con Linux, en el propio inicio de Windows.
Esto lo hice generando un acceso directo a VBoxManage.exe, donde le agregué a la línea de comando startvm + el nombre de mi máquina virtual.
Por ejemplo:
"C:\Program Files\Sun\xVM VirtualBox\VBoxManage.exe" startvm MyLinux
Este acceso directo lo almacené en la carpeta startup del menú start de mi sesión Windows.
Esto lo hice generando un acceso directo a VBoxManage.exe, donde le agregué a la línea de comando startvm + el nombre de mi máquina virtual.
Por ejemplo:
"C:\Program Files\Sun\xVM VirtualBox\VBoxManage.exe" startvm MyLinux
Este acceso directo lo almacené en la carpeta startup del menú start de mi sesión Windows.
Suscribirse a:
Entradas (Atom)