jueves, 31 de marzo de 2011

Sintesis: Exploring Linux Command-Line Tools

Brevemente solo quiero presentar una sintesis del primer capitulo de la Guía LPI Exploring Linux Command-Line Tools. Son algunos comandos para manupulación de archivos de texto.

cat:
-E final de linea con $
-n numero de linea (incluso lineas vacias)
-b numero de linea

join: combina dos archivos por algun campo en común.
join listing1.1.txt listing1.2.txt (defecto campo 1)
join -1 3 -2 2 people.txt numbers.txt (archivo 1 campo 3)

paste: combina dos archivos (linea a linea).
paste listing1.1.txt listing1.2.txt

expand: cambia los tabs a espacios en blanco

od: nuestra un archivo en formato octal
od listing1.2.txt

sort: Ordena listados.
-i Ignora si son mayusculas o munisculas.
-r Orden invertido
-k ¿por cual campo hacemos el ordenamiento?
sort -k 3 listing1.1.txt

split: Divide un archivo en dos o mas archivos. Se le pasa el prefix.
-b Los divide por tamaño en bytes
-l Por lineas
split -l 2 listing1.1.txt numbers

tac: concantena archivos pero con lineas en orden invertidos. Aplicando tac a cada archivo y despues concantena.

tr: Remplaza caracteres los del SET1 con el equivalente del SET2
-t Trunca el SET1 al SET2
-d Elimina los caracteres del SET1
[:alnum:] (all numbers and letters)
[:upper:] (all uppercase letters)
[:lower:] (all lowercase letters)
[:digit:] (all digits).
tr BCJ bc < listing1.1.txt

unexpand: Convierte los multiples espacios a tabs.

uniq: Elimina elementos duplicados de una lista.

fmt: Formato para archivos con lineas muy largas o irregulares.

nl: Enumerar las lineas.

pr: Formato para imprimir


head: Muestra el encabezado de archivos
head -n 10 file.txt

tail: Muestra la cola de un archivo.
tail -n 10 file.txt
tail -f file.txt

cut: Extrae porciones de texto de la su STDIN y lo manda a su STDOUT, por columnas

cat file1.txt | cut -c 2-
ifconfig eth0 | grep HW | cut -d " " -f 11

wc: Contador de palabras.
-l Lineas.
-w Palabras.
-c Bytes.
-m Caracteres.
-L Longitud de la linea mas larga.

domingo, 20 de marzo de 2011

Limitando los recursos de Tomcat.

Hace unos meses trabajando con OpenLaszlo 4.9 y Tomcat 5.0 en mi vieja notebook Compaq v2617la de 512Mb Ram, dramáticamente me estaba quedando sin memoria muy seguido, esto debido a los procesos que podemos ver en la siguiente expresión:
Mysqld + browser (iceweasel) + Apache + Laszlo = Frustración, tristeza y desesperación.

El proceso Tomcat que inicialmente era propiedad del root, causaba que al terminarse la Ram, comenzara a tener una gran demanda en el uso del SWAP al extremo de provocarme síntomas parecidos a los provocados en DoS, por el uso intensivo del disco. Las medidas que aplicamos fueron:
  • Aumentar la memoria Swap ( ver ).
  • Cambiar a un browser mas ligero (google-chrome).
  • Cambiar a un windowmanager mas ligero (Fluxbox).
  • Cambiar a un reproductor mp3 mas ligero (mpg123).
  • Limitar los umbrales de recursos disponibles de Tomcat ( ver ).
  • Crear el usuario "tomcat", limitarlo en el uso de consumo de memoria, y entregarle permisos sobre el servicio Tomcat.
Los umbrales para la configuración de recursos de tomcat los ajuste en uno de los scripts de inicio del mismo tomcat $CATALINA_HOME/bin/catalina.sh.
Cambiando el parámetro export JAVA_OPTS="-Xms128m -Xmx512m $JAVA_OPTS" por export JAVA_OPTS="-Xms128m -Xmx256m $JAVA_OPTS".

Para limitar los recursos del sistema usados por el usuario tomcat, en su archivo ~.bashrc colocarle ulimit -m 200000, para que solo tome 200mb como memoria maxima.

Estos ajustes los realize como ambiente de pruebas, mismos que hasta ahora me han ayudado a trabajar mas feliz.