Archive for Febrero 2007
INSTALAR ORACLE EN DEBIAN-UBUNTU
Descargar oracle-xe y libaio de
http://oss.oracle.com/debian/dists/unstable/
dpkg -i libaio_0.3.104-1_i386.deb dpkg -i oracle-xe_10.2.0.1-1.1_i386.deb
Tras la instalación, configurar:
/etc/init.d/oracle-xe configure
Configuración:
Puerto base: 8080 Puerto databse listener: 1521 SYS y SYTEM clave: 120395tt
Para administrar oracle:
http://127.0.0.1:8080/apex usuario sys o system
Añadir en el script de arranque del usuario (.bashrc) la ejecución de las variables de entorno de oracle.
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh
Para in¡ciar/detener el Oracle Net Listener (demonio que acepta las conexiones a base de datos) y la propia base de datos
/etc/init.d/oracle-xe start |stop
Para iniciarlo/ pararlo con SQL*Plus
sqlplus / as sysdba SQL>startup
sqlplus / as sysdba SQL>shutdown immediate
Para permitir conexiones remotas al servidor (por defecto no están activas):
Desde la aplicación web
Administration >> Tasks: Manage HTTP Access >> Available from local server and remote clients
Con SQL*Plus -> Accediendo como system escribir
EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);
Para que aparezca en el menú de Aplicaciones habrá que unir al usuario dentro del grupo dba.
ENLACES
http://www.oracle.com/technology/tech/linux/install/xe-on-kubuntu.html
http://www.1×4x9.info/files/oracledebian/html/online-chunked/index.html#N10012
http://www.oracle.com/technology/tech/php/pdf/underground-php-oracle-manual.pdf
7 comments Febrero 28, 2007
INSTALAR VMWARE TOOLS EN UBUNTU
1 – Tras cargar la máquina completamente seleccionar Install Vmware Tools
2 – Instalar compilador gcc. apt-get install gcc gcc-3.4 make
3 – uname -r
4 – apt-get install linux-headers-(lo obtenido de uname -r)
5 – ln -s /usr/src/linux-headers-(lo obtenido de uname -r) /usr/src/linux
6 - export CC=/usr/bin/gcc-3.4
7 – Descomprimir /media/mnt/cdrom2/vmwaretools….tar.gz
8 – Ejecutar el instalador de vmware-tools ./vmware-install.pl
* Ejecutar todos los comandos en local, no en remoto sino nos desconectará la aplicación
NOTAS TRAS LAS INSTALACIÓN
Cada vez que queramos, /usr/bin/vmware-toolbox para ejecutar las vmware tools
To use the vmxnet driver, restart networking using the following commands:
/etc/init.d/networking stop
rmmod pcnet32
rmmod vmxnet
depmod -a
modprobe vmxnet
/etc/init.d/networking start
If you wish to configure any experimental features, please run the following
command: “vmware-config-tools.pl –experimental”.
8 comments Febrero 27, 2007
Listado de comandos útiles en Bash
VARIABLES DE ENTORNO
set - export $PATH=/variable/entorno echo $PATH env - Muestra las variables de entornos del usuario
MÓDULOS
lsmod - Muestrar los módulos cargados en el núcleo de Linux modprobe nombre_modulo -> Añade o quita módulos del kernel
PROCESOS
fg - procesos en foreground bg - procesos en background ps -auxw - Ver todos los procesos y que no nos corte la pantalla killall nombre_proceso - Si deseamos matar todos los procesos ejecutados por el comando vim kill -l - Ver todas las señales de los procesosEstados de los procesos
| Id | Estado del proceso |
| D | uninterruptible sleep (usually IO) |
| R | runnable (on run queue)- Proceso ejecutando o en cola |
| S | sleeping - Proceso dormido |
| T | traced or stopped - Proceso detenido |
| W | paging - Proceso paginado |
| X | dead - Proceso muerto |
| Z | zombie Aquellos procesos cuyos procesos padres han muerto dejando el proceso hijo sin finalizar. Cuando esto ocurre no es una buena señal. |
ESTADÍSTICAS
free -m De memoria vmstat -s -S: M Del sistema
GENÉRICAS
watch 'ls -la' Muestra el resultado de un comando cada x segundos which comando - Localiza el comando type comando - Muestra los aliases del comando sudo comando usuario - Ejecuta un comando como si fuera otro usuario
RUNLEVELES
chkconfig --list ejemplo Muestra/Modifica el estado de los servicios del sistema en cada nivel de arranque (runlevel)
DISCOS
cat /dev/cdrom > /usr/imagen.iso - Crea una imagen del cdrom cat /dev/hda > /dev/hdb - Clona el disco duro mount -rt iso9660 /dev/hdc /cdrom - Montar en modo lectura con sitema de fichero iso9660 un cdrom fsck /dev/hda1 - Comprueba el disco fdisk -l - Muestra las particiones del disco
CADENAS Y FICHEROS
tr 'A-Z' 'a-z'
RED
netstat -atun | grep ESTAB - Muestra las conexiones establecidas con nuestra máquina netstat -a - Muestras los puertos abiertos ifdown eth0 - Desactiva el servicio de red para la tarjeta eth0 ifup eth0 - Activa el servicio de red para la tarjeta eth0 iptraf - Herramienta gráfica de gestión de tráfico de red /usr/sbin/iftop - Otra herramienta de análisis de tráfico
TAR
tar -tzvf fichero.tar Muestra el contenido del fichero
COMPILACIÓN
gcc -o prueba prueba.c
FIND
find / -name mysql* -exec rm {} - Busca todos los ficheros que comiencen por mysql y los elimina
find . -name "*mysql*" -print - Busca todos los ficheros que contengan la palabra mysql
HORAS
date --set=15:30 - Cambiar la hora
APT
apt-cache search datoabuscar - Busca una aplicación en la lista de aplicaciones a instalar (sólo distribuciones Debian) apt-get install nombreaplicacion - Instala la aplicación especificada (si se tiene conexión a Internet), sólo disponible en distribuciones Debian apt-get install -f - Comprueba la correcta instalación de los paquetes descargados en '/var/cache/apt/archives/', repitiendo la instalación si fuese necesario o bajando algún paquete dependiente que no se haya descargado apt-get update - Actualiza la base de datos de paquetes a actualizar o instalar a partir del fichero '/etc/apt/sources.list'. La base de datos la constituyen un conjunto de ficheros ubicados en '/var/lib/apt/lists/' apt-get upgrade - Actualiza todos los paquetes instalados en el sistema a la última versión disponible apt-get clean - Elimina todos los paquetes (.deb) descargados (almacenados automáticamente en '/var/cache/apt/archives/') apt-get update && apt-get -f dist-upgrade && apt-get clean . Actualizar completamente el listado de paquetes disponibles Si estás detrás de un proxy no transparente apt-get necesita IP y puerto del proxy obtenido de unas variable de entorno que vamos a menter automáticamente en .bashrc y .bash_profile: export http_proxy=http://128.19.54.25:8080/ export ftp_proxy=http://128.19.54.25:8021/
YUM
Por defecto YUM lee el fichero de configuración /etc/yum.conf Importar las claves GPG rpm --import /usr/share/rhn/RPM-GPG-KEY rpm --import /usr/share/rhn/BETA-RPM-GPG-KEYyum info festival yum install festival yum list festival* yum update RedHat sólo ofrece soporte para up2date up2date
Add comment Febrero 23, 2007
10 Buenos hábitos a la hora de programar en shell scripting
Traducción propia del artículo de IBM http://www-128.ibm.com/developerworks/aix/library/au-badunixhabits.html
1 – Definir una estructura de árbol de una sóla vez
mkdir -p tmp/a/b/c
en vez de
~ $ mkdir tmp
~ $ cd tmp
~/tmp $ mkdir a
~/tmp $ cd a
~/tmp/a $ mkdir b
~/tmp/a $ cd b
~/tmp/a/b/ $ mkdir c
~/tmp/a/b/ $ cd c
~/tmp/a/b/c $
Y mejor todavía, pues crea el directorio project y dentro los distintos directorios
mkdir -p project/{lib/ext,bin,src,doc/{html,info,pdf},demo/stat/a}
2 – Cambiar el path, no mover el fichero. Por ejemplo, no desempaquetar ficheros directamente en el directorio que deseemos. Para ello podemo usar la opción -C
tar xvf -C tmp/a/b/c newarc.tar.gz
3 – Combinar comandos con operadores de control
Por ejemplo: Ejecutar un comando sólo si otro comando ha devuelto 0 exit status. cd tmp/a/b/c && tar xvf ~/archive.tar Otro ejemplo: Ejecutar un comando sólo si otro comando no ha devuelto un 0 exit status. cd tmp/a/b/c || tar xvf ~/archive.tar
4 – Entrecomillar variables con cuidado
Ejemplos:
ls tmp/
a b
~ $ VAR="tmp/*"
~ $ echo $VAR
tmp/a tmp/b
~ $ echo "$VAR"
tmp/*
~ $ echo $VARa
~ $ echo "$VARa"
~ $ echo "${VAR}a"
tmp/*a
~ $ echo ${VAR}a
tmp/a
5 – Usar secuencias de escape para controlar la entrada en el log
cd tmp/a/b/c || > mkdir -p tmp/a/b/c && > tar xvf -C tmp/a/b/c ~/archive.tar cd tmp/a/b/c > || > mkdir -p tmp/a/b/c > && > tar xvf -C tmp/a/b/c ~/archive.tar
6 – Agrupar los comandos en una lista para poder ir redirigiendo los resultados
Ej. Ejecutar una lista de comandos en un subshell
~( cd tmp/a/b/c/ || mkdir -p tmp/a/b/c &&
> VAR=$PWD; cd ~; tar xvf -C $VAR archive.tar )
> | mailx admin -S "Archive contents"
Ej. Ejecutar una lista de comandos en el propio shell
~ $ { cp ${VAR}a . && chown -R guest.guest a &&
> tar cvf newarchive.tar a; } | mailx admin -S "New archive"
7 – Usar xargs fuera de find. Usar con -e. Por defecto se considera el símbolo _ como fin de línea. Si por alguna razón aparece ese símbolo en una línea como único carácter con xargs, todo lo que venga detrás no será filtrado.
~ $ find some-file-criteria some-file-path | > xargs some-great-command-that-needs-filename-arguments Otros ejemplos de xargs $ xargs a b c Control-D a b c ~ $ Otros ejemplos: ~/tmp $ ls -1 | xargs December_Report.pdf README a archive.tar mkdirhier.sh ~/tmp $ ls -1 | xargs file December_Report.pdf: PDF document, version 1.3 README: ASCII text a: directory archive.tar: POSIX tar archive mkdirhier.sh: Bourne shell script text executable ~/tmp $
8 – Evitar usar grep y wc -l. Usar mejor -c que cuenta las líneas y es más rápido
time grep -c and tmp/a/longfile.txt
9 – Es preferible usar awk en vez de grep
Usar ls -l | awk '$6 == "Dec"' en vez de ls -l /tmp/a/b/c | grep Dec
10 – No usar tuberías con grep y cat puesto que grep toma el nombre del fichero como argumento
BIEN time grep and tmp/a/longfile.txt MAL time cat tmp/a/longfile.txt | grep and
4 comments Febrero 23, 2007
Bucle para obtener los directorios dentro de un directorio. Se usa tr como transformador
ORIGEN=/usr/ for i in $(ls -F $ORIGEN | grep / | tr -d / ) do echo $i; done
Add comment Febrero 22, 2007
Introducir la fecha actual dentro de una variable
Se introduce el comando dentro de comillas simples para
FECHA=`date +%d%m%Y`
Add comment Febrero 22, 2007
Uso del comando at y crontab para programar tareas
COMANDO AT
# Programar tareas puntualmente
at -f /scripts/copia 5am tomorrow at -f /scripts/copia 3:50am May 19
#Para ver los trabajos activos
atq at -l
CRONTAB
crontab -e
Se abre el editor vi y nos permite editarlo.
Pulsamos la letra i, editamos el fichero.
Pulsamos la tecla Esc, y escribimos :qw para guardar los cambios.
Si no deseamos guardarlos escribimos :q!
# Ejecución de un comando todos los días a media noche 0 0 * * * /comando # Ejecución de un comando cada hora en punto 0 * * * * /comando # Ejecución de un comando el primer día de cada mes a las 0 y a las 12 horas 0 0,12 1 * * /comando # Ejecución de un comando el día 12 que sea domingo, lunes o sábado a las 2 de la mañana 0 2 12 * 0,1,6 /comando # Ejecución de un comando cada 5 minutos */5 * * * * /comando #Ejecución de un comando cada media hora 0,30 * * * * /comando
# Para poder ver las tareas
crontab -l
Add comment Febrero 22, 2007
Comprobar si existe un fichero en bash
if [ -d "$RUTA_COPIA/$i" ]
then
echo “Ya existe”
else
mkdir $RUTA_COPIA/$i
fi
4 comments Febrero 22, 2007
Arrays en bash
sitio[1]=bbdd1
sitio[2]=bbd2
# Recorro el array
for i in “${sitio[@]}”
do
echo $i;
done
3 comments Febrero 22, 2007
Código css para mostrar un menu lateral con resaltado y clickable en toda su extensión
La técnica se basa en:
- Usar una capa div como contenedor
- Crear dentro de la capa enlaces href que se corresponderán con cada una de las filas del menú
- El uso dentro de la hoja de estilo de display: block en el div
- Anidar el estilo de los enlaces al div (#left_menu a.sub)
- Distinguir con background-color en los estilos asociados a los estados de los enlaces (hover)
<style>
#left_menu a {
display: block;
color: black;
text-decoration: none;
}
#left_menu a.sub {
background-color:blue;
}
#left_menu a.sub:hover{
background-color: red;
}
</style>
<div id=”left_menu”>
<a href=”#” mce_href=”#” class=”sub”> Models</a>
<a href=”#” href=”#” class=”sub”>Models 2</a>
<a href=”#” href=”#” class=”sub”> Models 3</a>
<a href=”#” href=”#” class=”sub”>Models 4</a>
</div>
Este es el resultado
Add comment Febrero 22, 2007
