Mostrando entradas con la etiqueta linux. Mostrar todas las entradas
Mostrando entradas con la etiqueta linux. Mostrar todas las entradas

miércoles, 8 de julio de 2015

Borrado de ficheros recursivo en linux

Al ser peligroso (cualquier borrado o reemplazado recursivo lo es), lo vamos a hacer en dos pasos, usando la herramienta find que esta disponible en todos los sistemas Linux:

  1. Ver que vamos a borrar

    Tan sencillo como pedir una búsqueda por nombre (-iname y usando los comodines que necesitemos) y filtrada por tipo (-type) para que solo nos entregue ficheros.

    find /var/log/externos/ARCHIVO/ -iname "dhcpd*" -type f
  2. Borrado como tal

    Una vez lo tengamos claro (es muy importante que hayamos comprobado que realmente en el paso anterior SOLO han aparecido aquellos ficheros que queremos borrar), ejecutamos exactamente el mismo comando, pero añadiendo el comando "-delete"

    find /var/log/externos/ARCHIVO/ -iname "dhcpd*" -type f -delete

lunes, 4 de noviembre de 2013

Listado de tarjetas de red en linux

Untimamente me pasa mucho, especialmente al trabajar con máquinar virtuales de linux sobre un servidor Xen.

Después de mucho buscar, he encontrado un blog que da una solución a mi problema directamente: http://carlosyr.blogspot.com.es/2012/07/truco-listar-las-tarjetas-instaladas-en.html Desde aquí le doy las gracias a su autor.

A lo que vamos, que es lo que me interesa recordar como recetilla imprescindible:

Listar todas los dispositivos de red:
ifconfig -a -s | awk '{print $1}'

Listar los dispositivos de red activos:
ifconfig -s | awk '{print $1}'

Sencillo, pero eficaz.... :D

domingo, 18 de abril de 2010

¡Me acabo de cargar el menú del Gnome!


Bueno... como alguno ya sabréis, hace como un mes que decidí darle nueva vida a mi portátil (un flamante Toshiba M70 de más de 5 años), obligándole a renacer en Linux. Y ya que estamos, ¿por que no hacer la migración sencilla, a través de Ubuntu?

Dicho y hecho. Aunque no es tarea fácil. Una cosa es manejar un samba por consola, y otra tratar de que el maldito Módem 3G de Vodafone se entienda con tu sistema (eso lo por aquí contaré otro día). El caso es que del portátil solo he "extraviado" temporalmente el Bluetooth y, desde luego, no doy por perdida la batalla.

Sin embargo, esta mañana, no se cómo, me he cargado el menú de Gnome. De alguna forma he eliminado el indicador de red de la barra superior, y aunque todo seguía funcionando como siempre, no deja de molestar. El tema es que me he puesto a tocar... bueno... vamos a dejarlo.

¿Habrá alguna forma de hacer un Ctrl-z de todo esto? ¡Pues sí! y es sencillo... Vamos a tratar de que las barras de Gnome vuelvan a su ser:
  1. Siempre en modo gráfico (ya que lo tenemos), vamos a Lugares->Carpeta Personal
  2. En Ver, seleccionamos "Mostrar archivos ocultos" (o pulsamos ctrl-h, que viene a ser lo mismo).
  3. Buscamos la carpeta ".gconf", y dentro de esta, "apps".
  4. Eliminamos la carpeta "panel".
  5. La siguiente vez que iniciemos sesión, todo estará por defecto...
¿Puede ser más fácil? :D

miércoles, 30 de diciembre de 2009

Conocer el tamaño de un directorio en Linux

Parece una tontería, pero me ha hecho falta en varias ocasiones y siempre me toca buscar en google... Esta vez será la última para mi :D
du -sh * .[a-zA-Z0-9]* | sort -n

jueves, 12 de noviembre de 2009

Actualizar Linux desde consola tras un proxy

Tan solo lo dejo como recordatorio, ya que lo he necesitado en varias ocasiones.
export http_proxy=http://usuario:password@miservidorproxy.net:puerto/
export ftp_proxy=http://usuario:password@miservidorproxy.net:puerto/

martes, 10 de noviembre de 2009

UUID, ese gran desconocido

Según la Wikipedia inglesa (ya que la española solo habla del GUID -versión Microsoft del UUID), UUID es "an identifier standard used in software construction, standardized by the Open Software Foundation (OSF) as part of the Distributed Computing Environment (DCE)", o lo que es lo mismo, un forma unificada de identificar dispositivos.

Siguiendo con esta fuente de saber, "A UUID is a 16-byte (128-bit) number. The number of theoretically possible UUIDs is therefore about 3 × 1038. In its canonical form, a UUID consists of 32 hexadecimal digits, displayed in 5 groups separated by hyphens, in the form 8-4-4-4-12 for a total of 36 characters (32 digits and 4 hyphens)".

Todo esto se traduce en que nuestros números UUID tendrán un formato parecido al siguiente:
550e8400-e29b-41d4-a716-446655440000


De todas formas, lo que nos puede interesar de este número es que se utiliza para montar particiones en puntos específicos del sistema. Donde antes los sistemas Linux hablaban del SDA o del HDA ahora hablan del UUID:550e8400-e29b-41d4-a716-446655440000.

Supongamos que al instalar un nuevo disco duro en nuestro sistema Linux, queremos dar el paso final para que se monte de forma automática cada vez que arrancamos. Para ello, modificamos el fichero /etc/fstab, obteniendo algo parecido a lo siguiente:
# /etc/fstab: static file system information.
#
#
proc /proc proc defaults 0 0
# /dev/sda1
UUID=ec468ae1-6d26-43ec-a2c7-ea32c4eafa0f / ext3 relatime,errors=remount-ro 0 1
# /dev/sda3
UUID=8ebbae95-9fc3-4434-9deb-9ebcfe4eaaca /datos-1 ext3 relatime 0 2


Está claro que para incluir nuestro nuevo disco en esta lista, deberemos descubrir el UUID que le corresponde, según el tipo de dispositivo que sea. En nuestro caso, el último disco es el sdi, y su única partición, la sdi1 . Ejecutando lo siguiente, obtenemos nuestro identificador:
blkid /dev/sdi1


Obtenemos: /dev/sdi1: UUID="59edfdf9-8124-4cc1-b046-c94ac140ba81" TYPE="ext3"

Para listar todos los UUID de las unidades que tengamos en nuestro sistema podemos ejecutar el siguiente comando:
ls /dev/disk/by-uuid/ -lh


y obtendremos algo parecido a lo siguiente:
ls /dev/disk/by-uuid/ -lh
total 0
lrwxrwxrwx 1 root root 10 2009-11-10 22:52 072290ce-e38d-40c1-9af4-06f6fdde3a9e -> ../../sdg1
lrwxrwxrwx 1 root root 10 2009-11-10 22:53 2937af2a-130d-4ddb-ad46-a25d602f18d6 -> ../../sdh1
lrwxrwxrwx 1 root root 10 2009-11-10 22:52 3d777c46-e7e2-4d80-8c77-2fd762572cc0 -> ../../sdb1
lrwxrwxrwx 1 root root 10 2009-11-10 22:53 59edfdf9-8124-4cc1-b046-c94ac140ba81 -> ../../sdi1


Ahora podremos añadir la linea adecuada en /etc/fstab

jueves, 9 de abril de 2009

Cliente FTP para linux en modo automático

Llevo toda la mañana tratando de configurar una tarea programada en un servidor Linux que envíe por FTP cada semana un fichero.

Se que es sencillo, porque lo he hecho en otra ocasión, pero me ha costado un triunfo localizar los comandos adecuados.

Creamos un fichero en el que guardaremos los comandos que queremos ejecutar con el cliente FTP casi tal-cual los escribiríamos en modo interactivo. En mi caso lo guardo con el nombre "comandos.ftp".
open ftp.servidor.com
user usuario clave
cd /directorio_remoto/
lcd /directorio_local/
put fichero
bye
Llamamos al cliente FTP con el siguiente comando:
ftp -n <comandos.ftp

Chuletilla - tar, split, cat

¿Como se hace?

Empaquetar y comprimir un directorio:

  • Incluyendolo en la estructura:
tar -cvzf archivo.tar.gz directorio
Con la opción "z" hacemos un comprimido (gz).
Sin ella, empaquetamos (tar).
  • Sin incluirlo:
cd directorio
tar -cvzf ../archivo.tar.gz *

Desempaquetar y descomprimir lo anterior:

  • En la ubicación del archivo:
tar -xvzf archivo.tar.gz
  • En otro directorio:
cd /directorio
tar -xvzf /ruta_de_nuestro_archivo/archivo.tar.gz

Cortar en trozos un fichero más grande:

split -b tamaño -d fichero_original nombre_fragmento.s
tamaño puede ser 100k, por ejemplo.
split -b 100m -d fichero.tar.gz fichero.tar.gz.s
Deberíamos haber obtenido unos cuantos fragmentos de 100 megas, con el formato fichero.tar.gz.s01, fichero.tar.gz.s02...

Unir los trozos de antes:

cat nombre_fragmento* > fichero_original
Muy macarra, ¿verdad?
cat fichero.tar.gz.s* > fichero.tar.gz

Por último, nunca es mala idea el asegurarnos de la integridad del fichero una vez reconstruido, mediante algo tan sencillo como comprara los valores de las firmas MD5 de ambos ficheros:
md5sum -b fichero.tar.gz > fichero.tar.gz.md5

Pasar un proceso a un segundo plano

Una de esas dudas eternas para cualquien novatillo en linux....

En ocasiones, podemos necesitar que un proceso que estamos ejecutando sobre nuestro terminal pase a un segundo plano (Background) de forma que nos permita continuar trabajando.

Imaginemos, por ejemplo, que hemos lanzado una compresión de gran tamaño:
tar -czf /datos/backup-2/archivo.tar.gz *
El sistema se quedará esperando a que el comando tar le devuelva el control del terminal.

Si en ese momento, pulsamos [ctrl+Z] detendremos el proceso en curso:
[1]+ Stopped tar -czf /datos/backup-2/archivo.tar.gz *
Seguidamente, usaremos el siguiente comando para continuar con el proceso en segundo plano:
bg
Con el comando "jobs", obtendremos un listado de los comandos que tenemos en proceso:
[1]+ Running tar -czf /datos/backup-2/archivo.tar.gz * &
Y con el siguiente comando volveremos a poner nuestro proceso en primer plano (foreground):
fg


No obstante, nunca está de más ser previsores y para ello, siempre podremos lanzar nuestro proceso directamente a un segundo plano, añadiendo al final el símbolo "&":
tar -czf /datos/backup-2/archivo.tar.gz * &

sábado, 28 de marzo de 2009

Inicio automático de IPTables

Siempre me ha llamado la atención las enormes posibilidades que ofrece Linux, pero la configuración se complica a la par que crecen sus capacidades.

Hace unos tres años, alguien me introdujo en el maravilloso mundo de iptables, y en mis primeros pinitos, como no, lo primero que hice fue bloquear mi equipo totalmente. Más adelante me presentaron una herramienta imprescindible para todo buen administrador de sistemas Linux, Firewall Builder (http://www.fwbuilder.org/), que me ha permitido, siempre con ayuda, crear cortafuegos realmente interesantes.

Sin embargo, hay algo que falta en todos los sistemas linux que conozco. Una vez instalados los paquetes "iptables" e "ipchain", necesitamos algún procedimiento que nos permita tanto cambiar la configuración de nuestro firewall como que nuestro cortafuegos se inicie a la par que nuestro sistema.

Aunque solo son unas sencillas pinceladas, seguro que para más de uno (yo mismo incluido), resultan más que útiles.

Los organizaré en pasos:

  1. Suponemos que nuestra máquina se llama "destellos". Decidimos donde vamos a situar nuestros ficheros. Trabajaremos con dos, uno "destellos.fw" que almacenará las reglas y actuales y otro, "inactive" que nos permitirá desactivar el firewall.

    Guardaremos ambos ficheros en la ruta "/etc/local/iptables", configurando adecuadamente FWBuilder para que use dicha ruta al enviarnos el fichero de reglas.

  2. Tenemos que crear un nuevo fichero que nos permite arrancar y parar nuestro firewall a voluntad. Lo almacenaremos en "/etc/init.d", con el nombre de "iptables". El contenido será el siguiente (haciendo las modificaciones adecuadas):
    #!/bin/sh

    ruta="/etc/local/iptables"
    maquina="`uname -n`"

    case "$1" in
    start)

    # Arranca el iptables
    sh ${ruta}/${maquina}.fw
    echo " "
    echo " Iptables ACTIVADO "
    echo " "
    ;;

    stop)
    # Borramos todas las reglas:
    iptables-restore < ${ruta}/inactive
    echo " iptables DESACTIVADO "
    ;;

    save)
    iptables-save > ${ruta}/$2
    echo " Configuracion guardada en ${ruta}/$2 "
    ;;

    restart)
    iptables-restore < ${ruta}/inactive
    echo ""
    echo " iptables DESACTIVADO "
    sh ${ruta}/${maquina}.fw
    echo " Iptables ACTIVADO "
    ;;

    *)
    echo "Usage: /etc/init.d/iptables {start|stop|save NombreFichero}"
    exit 1
    ;;
    esac

    exit 0

    Este fichero tendrá que tener los permisos adecuados (-rwxr-xr-x), mediante el comando siguiente:
    chmod 755 /etc/init.d/iptables

    Ahora, mediante los comandos "start", "stop", "restart" y "save" podremos utilizar con mayor facilidad nuestro cortafuegos.

  3. Pero aun no queda algo que hacer, ya que por el momento, nuestro cortafuegos no se inicia de forma automática. Para ello, lo primero que necesitamos conocer es el nivel en el que se encuentra nuestro sistema en reposo (generalmente, será el 2). Ejecutamos lo siguiente:
    runlevel

  4. Nos dirigimos a la ruta adecuada. En caso general, iremos a "/etc/rc2.d", donde crearemos el enlace simbólico adecualdo.

    Primero, deberíamos hacer un listado "ls" de lo que contiene el directorio para ver la posición más adecuada de inicio (queda determinada por el orden ascendente de los ficheros). La verdad es que no conozco realmente la razón (la preguntaré), pero en mi trabajo siempre lo hemos colocado en las máquinas debian y ubuntu en la posición 12.

    En este caso, IPTables debería arrancar, así que nuestro enlace debería tener un nombre de tipo "S12iptables", apuntando al script que creamos antes en "/etc/init.d". En otras palabras:
    ln -s /etc/init.d/iptables S12iptables
    Como es un enlace, al hacer un "ls -la" obtendremos algo como esto:
    lrwxrwxrwx 1 root root 20 2008-02-07 16:47 S12iptables -> /etc/init.d/iptables
  5. El sieguiente paso será parar el servicio al apagar. Para eso, nos iremos al directorio "/etc/rc1.d" y, siguiendo la misma idea, haremos un enlace simbólico a "/etc/init.d" con un nombre parecido a "K12iptables":
    ln -s /etc/init.d/iptables K12iptables

Eso es todo... por el momento.

domingo, 8 de febrero de 2009

Configuración del fichero Crontab

Para acceder a la lista de tareas de un usuario, introduciomos el siguiente comando:
crontab -e

El formato de este fichero siempre es el mismo:
mm hh dd mm ds comando

Los valores de cada campo son los siguientes:
  • mm -> minutos - 0-59
  • hh -> hora - 0-23
  • dd -> día - 0-31
  • mm -> mes - 0-12
  • ds -> dia semana 0-7 (0 o 7 indica domingo)
También podemos usar:
  • Comodín (*) para indicar todos los valores.
  • Con numero para indicar minutos, horas...
  • Varios valores separados por comas.
  • Un rango de valores separado dos numeros con guiones. Si añadimos /incremento indicaremos el salto.
  • Un valor */incremento para indicar todos los valores a saltos iguales.
Como ejemplos sencillos:
  • mm hh dd mm ds
  • 10 02 * * * -> Se ejecuta a las 2:10 todos los dias.
  • 10 02 * * 0 -> Se ejecuta a las 2:10 los domingos
  • 10 02 1,15 * * -> Se ejecuta a las 2:10 los días 1 y 15 de cada mes
  • */2 00 * * * -> Se ejecuta todos los días, cada 2 horas

sábado, 24 de enero de 2009

Instalacación de un nuevo disco duro en Debian

Como ya me ha tocado hacerlo lo menos 5 veces y siempre tengo dudas de todo tipo, he preparado con capturas de las salidas que da el equipo los pasos (todos) que sigo para instalar una nueva unidad de disco en los sistemas de respaldo con Debian.

En este caso, el sistema ya tenía 1 unidad IDE de sistema ("hda") y 2 unidades SATA de almacenamiento ("sda" y "sdb"). La que voy a instalar es una tercera SATA, por eso se localiza como "sdc".

Solo va a tener una partición principal que ocupará el disco completo. Ni que decir tiene, que todos los pasos los hacemos con privilegios de root en el sistema...

Vamos al tema:


Tecleamos: fdisk -l

Disco /dev/hda: 20.0 GB, 20020396032 bytes
255 cabezas, 63 sectores/pista, 2434 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes

Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/hda1 * 1 24 192748+ 83 Linux
/dev/hda2 25 267 1951897+ 82 Linux swap / Solaris
/dev/hda3 268 2434 17406427+ 83 Linux

Disco /dev/sda: 400.0 GB, 400088457216 bytes
255 cabezas, 63 sectores/pista, 48641 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes

Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/sda1 1 48641 390708801 83 Linux

Disco /dev/sdb: 400.0 GB, 400088457216 bytes
255 cabezas, 63 sectores/pista, 48641 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes

Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/sdb1 1 48641 390708801 83 Linux

Disco /dev/sdc: 400.0 GB, 400088457216 bytes
255 cabezas, 63 sectores/pista, 48641 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes

El disco /dev/sdc no contiene una tabla de particiones válida

Tecleamos: fdisk /dev/sdc
El dispositivo no contiene una tabla de particiones DOS válida ni una etiqueta de disco Sun o SGI o OSF
Se está creando una nueva etiqueta de disco DOS. Los cambios sólo
permanecerán en la memoria, hasta que decida escribirlos. Tras esa
operación, el contenido anterior no se podrá recuperar.


El número de cilindros para este disco está establecido en 48641.
No hay nada malo en ello, pero es mayor que 1024, y en algunos casos
podría causar problemas con:
1) software que funciona en el inicio (p.ej. versiones antiguas de LILO)
2) software de arranque o particionamiento de otros sistemas operativos
(p.ej. FDISK de DOS, FDISK de OS/2)
Atención: el indicador 0x0000 inválido de la tabla de particiones 4 se corregirá mediante w(rite)

Orden (m para obtener ayuda):

Tecleamos: n
Acción de la orden
e Partición extendida
p Partición primaria (1-4)

Tecleamos: p
Número de partición (1-4):

Tecleamos: 1
Primer cilindro (1-48641, valor predeterminado 1):

Tecleamos: Enter
Se está utilizando el valor predeterminado 1
Último cilindro o +tamaño o +tamañoM o +tamañoK (1-48641, valor predeterminado 48641):

Tecleamos: Enter
Se está utilizando el valor predeterminado 48641

Orden (m para obtener ayuda):

Tecleamos: w
¡Se ha modificado la tabla de particiones!

Llamando a ioctl() para volver a leer la tabla de particiones.
Se están sincronizando los discos.

Tecleamos: mkfs.ext3 /dev/sdc1
mke2fs 1.40-WIP (14-Nov-2006)
Etiqueta del sistema de ficheros=
Tipo de SO: Linux
Tamaño del bloque=4096 (bitácora=2)
Tamaño del fragmento=4096 (bitácora=2)
48840704 nodos i, 97677200 bloques
4883860 bloques (5.00%) reservados para el súper usuario
Primer bloque de datos=0
Maximum filesystem blocks=0
2981 bloque de grupos
32768 bloques por grupo, 32768 fragmentos por grupo
16384 nodos i por grupo
Respaldo del súper bloque guardado en los bloques:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968

Mientras se escribían las tablas de nodos i: terminado
Creando el fichero de transacciones (32768 bloques): hecho
Escribiendo superbloques y la información contable del sistema de ficheros: hecho

Este sistema de ficheros se revisará automáticamente cada 23 meses o
180 dias, lo que suceda primero. Utilice tune2fs -c o -i para cambiarlo.

Tecleamos: mkdir backup-2

Tecleamos: vi /etc/fstab
# /etc/fstab: static file system information.
#
#
proc /proc proc defaults 0 0
/dev/hda3 / ext3 defaults,errors=remount-ro 0 1
/dev/hda1 /boot ext3 defaults 0 2
/dev/sdb1 /datos/backup ext3 defaults 0 2
/dev/sda1 /datos/principal ext3 defaults 0 2
/dev/hda2 none swap sw 0 0
/dev/hdb /media/cdrom0 udf,iso9660 user,noauto 0 0

Añadimos: /dev/sdc1 /datos/backup-2 ext3 defaults 0 2


Tecleamos: :wq


Tecleamos: df -h
S.ficheros Bloques de 1K Usado Dispon Uso% Montado en
/dev/hda3 17132844 1817204 14445320 12% /
tmpfs 193368 0 193368 0% /lib/init/rw
udev 10240 64 10176 1% /dev
tmpfs 193368 0 193368 0% /dev/shm
/dev/hda1 186663 16339 160687 10% /boot
/dev/sdb1 384578164 99109552 265933172 28% /datos/backup
/dev/sda1 384578164 100055948 264986776 28% /datos/principal
/dev/sdc1 384578164 199232 364843492 1% /datos/backup-2

Ya tenemos nuestro nuevo disco "sdc" particionado ("sdc1") y montado en el directorio "/datos/backup-2". Además, al haber modificado "fstab", el sistema lo montará en cada reinicio.

martes, 2 de diciembre de 2008

Esa navaja suiza antes conocida como "date"

GNU date is one of the many common Linux programs in GNU Coreutils package. Here are some of the examples of performing date time arithmetic with GNU date command, using -d or --date option switch:
date -d "last month" +%m
Return as last month in numeric format
date -d "2 month ago" +%b
Return as last month in abbreviated month name
date -d "-2 month" +%B
Return as last month in full month name
date -d "-1 hours" +%H
Returns previous hour in 24-hours format (00-23)
date -d "tomorrow"
Return the date and time of tomorrow
date -d "yesterday" +"%d %B %y"
Return the date of yesterday in dd MMM yy
date -d "last week" +%a
Return last week in abbreviated weekday name
date -d "$(date +%Y-%m-15) -1 month" +'Last month was %B!'
To avoid getting result of “July” when executing date -d "-1 month" +%B on 31 July 2006, because “2006-07-31 -1 month” might evaluate to 2006-07-01, because 2006-06-31 is an invalid date!
date -d "1970-01-01 00:00:01 UTC" +%s
Return the Unix Epoch time (the total seconds elapse since midnight of 1970-01-01), which is 1 secs in this case.
date -d "1970-01-01 1234567890 sec" +"%F %T %z"
Return the literal date format of the given Unix Epoch time.

lunes, 1 de diciembre de 2008

Cambiar la hora el sistemas Linux

Leo en Bulma, despues de buscar en Google como cambiar la hora en Linux:

Para cambiar la hora del sistema usaremos el comando date, pero hemos de tener en cuenta que al reinicializar el ordenador, éste cogerá la hora de la BIOS y nos volverá a colocar la hora anterior, para evitar esto cambiaremos también la hora de la BIOS con el comando hwclock como se detalla a continuación:

Suponemos que queremos colocar la fecha: 25-Feb-2000 y la hora 16:25.
Esto lo haremos como root:

# date --set "2000-02-25 16:25"
Fri Feb 25 16:25:00 CET 2000

Ahora realizaremos el mismo cambio para actualizar la fecha en la BIOS.
# hwclock --set --date="2000-02-25 16:25"

Para comprobarlo tecleamos:
# hwclock
Fri Feb 25 16:25:06 2000 -0.010586 seconds

jueves, 25 de septiembre de 2008

Instalando Tomcat en Linux

Como instalar Apache-Tomcat sin tener ni idea de Java

Vamos a instalar las versiones de JDK 6up7 y de Apache-Tomcat 6.0.18

1.- En nuestro sistema linux, tras iniciar sesión como root, creamos un directorio temporal de descargas en /usr/tmp

su -
Introducimos la clave de root
mkdir /usr/tmp


2.- Nos descargamos el auto-instalable de la SDK de Java. Cuando escribo esta entrada, el enlace es el siguiente (que puedes obtenerlo pulsando con el botón derecho sobre el enlace y copiando la ruta en cualquier Windows):

http://javadl.sun.com/webapps/download/AutoDL?BundleId=23103


Para iniciar la descarga, usamos wget:

cd /usr/tmp
wget http://javadl.sun.com/webapps/download/AutoDL?BundleId=23103


3.- Copiamos el fichero descargado a /usr/local y le damos permiso de ejecución:

cp -p jdk-6u7-linux-i586.bin /usr/local
cd /usr/local
chmod +x jdk-6u7-linux-i586.bin


4.- ejecutamos el auto-instalable (pulsando la barra hasta poder teclear 'yes') y cuando terminemos, lo borramos:

./jdk-6u7-linux-i586.bin
rm jdk-6u7-linux-i586.bin


Tenemos que tener todo el paquete instalado en /usr/local/jdk1.6.0_07

5.- Creamos las variables de ruta necesarias para ejecutar la SDK desde cualquier ruta añadiendo las siguientes lineas al final del fichero /etc/profile

JAVA_HOME=/usr/local/jdk1.6.0_07
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME


Actualizamos las variables ejecutando "source /etc/profile"

6.- Comprobamos la instalación, con el comando "javac -version", que nos dará la versión de la SDK instalada.

7.- Continuamos con la instalación de apache-tomcat. Lo primero, descargamos en la ruta "/usr/tmp" el archivo de instalación. El enlace lo sacamos de http://tomcat.apache.org

cd /usr/tmp
wget http://apache.rediris.es/tomcat/tomcat-6/v6.0.18/bin/apache-tomcat-6.0.18.tar.gz


8.- Copiamos el fichero descargado a /usr/local y le damos permiso de ejecución:

cd /usr/tmp
cp -p apache-tomcat-6.0.18.tar.gz /usr/local/


9.- Descomprimimos el paquete y borramos el fichero fuente
cd /usr/local
tar xvzf apache-tomcat-6.0.18.tar.gz
rm apache-tomcat-6.0.18.tar.gz


10.- Nuevamente, tenemos que crear las variables de ruta necesarias añadiendo las siguientes lineas al final del fichero /etc/profile
CATALINA_HOME=/usr/local/apache-tomcat-6.0.18
export CATALINA_HOME


Actualizamos las variables ejecutando "source /etc/profile"

11.- Tenemos dos scripts importantes de uso, uno para arrancar el servicio y otro para detenerlo.
/usr/local/apache-tomcat-6.0.18/bin/startup.sh
/usr/local/apache-tomcat-6.0.18/bin/shutdown.sh


12.- Una vez arrancado, deberíamos llegar a la página principal del servidor mediante la ruta siguiente:
http://servidor:8080


13.- Por último, podemos configurar el manager de Tomcat (una forma de gestionar los recursos mediante página web) que viene preinstalado en la versión 6. Para ello, debemos agregar un par de lineas en el fichero que gestiona los usuarios:
vi /usr/local/apache-tomcat-6.0.18/conf/tomcat-users.xml


<tomcat-users>
<role rolename="manager">
<role rolename="standard">
<user username="admin" password="clave" roles="standard,manager">
</user>
</role></role></tomcat-users>


Accedemos a la consola mediante la dirección http://servidor:8080/manager