Abrir enlaces magnéticos – magnet links en Firefox, Chrome, y otros

Recientemente, the pirate bay, pagina que yo no visito (?), ha pasado el 98% de sus .torrent, a magnet link.
Muchos dirán, “En Windows se abre con solo instalar utorrent, en Linux no”.
Bueno, esto no es asi, primero que nada, veamos, que es un magnet link?:

Nos dice wikipedia

Los enlaces magnéticos (del inglés magnet links), también llamados enlaces magnetenlaces magneto o simplemente magnet, son un tipo de enlace utilizado normalmente para identificar un contenido sin tener que especificar su nombre o su ubicación sino sólo uno o más valores hash obtenidos a partir de funciones hash criptográficas. De una forma más técnica podemos decir que un enlace magnético es un esquema URI para definir hipervínculos que normalmente usa una URN para enlazar (ya que hace referencia a un archivo en base a su contenido o metadato, no en base a su ubicación como hacen las URL)
Aunque puede ser utilizado para otras aplicaciones, es particularmente útil en el contexto del peer-to-peer, porque permite que los recursos sean enlazados sin tener un servidor disponible de forma permanente. El hipervínculo describe un fichero específico de una red peer-to-peer, el cual puede ser descargado con un programa peer-to-peer compatible.
Es un estándar abierto publicado bajo la GPL. Según sus creadores, los enlaces magnet proporcionan una mayor integración en las páginas web que los programas peer-to-peer que los implementan.
Para representar este tipo de enlaces se usa el icono Magnet-icon.gif.

Ahora, veamos como hacer que esos magnet link se abran al darle click, con nuestro cliente torrent, como en mi caso y el que recomiendo, transmission-gtk (en gnome).

Estos pasos, son validos para Fedora, RHEL6.x, CentOS 6.x, SL6.x, etc.
Abrimos un terminal, y como user ponemos en este orden:
$ gconftool-2 -t string -s /desktop/gnome/url-handlers/magnet/command “/usr/bin/transmission-gtk %s”

$ gconftool-2 -t bool -s /desktop/gnome/url-handlers/magnet/needs_terminal false

$ gconftool-2 -t bool -s /desktop/gnome/url-handlers/magnet/enabled true
Luego de ejecutar eso, verificamos que el valor haya sido creado exitosamente, presionando alt+f2, y tipeamos gconf-editor, vamos a la ruta: desktop -> gnome -> url-handlers -> magnet y deberiamos ver esto:
A partir de ese momento, todo navegador, sabrá que los magnet link se manejan con /usr/bin/transmission-gtk (la version GUI).

Comparacion de navegadores web, uso de RAM y CPU | Tenemos un ganador?

Bueno, resulta que con la salida de Opera 12, que tiene muchas mejoras respecto a html5, me decidi probar las opciones que tenia en mi sistema, es decir:

Google Chrome 20
Firefox 10 ESR
Opera 12
Midori 0.2.8

Si bien los ganadores en html5 son Opera y Chrome, como era de esperarse, asi como en acid test3, y un tanto por detrás esta Firefox 10 ESR, van a sorprenderse, o no, con estos resultados.
Ambos estan optimizados, usando RAM si pueden como cache de disco, etc.
La prueba fue simple, cargar un post en taringa.net, de 500 imagenes en alta calidad, de un solo saque.
Los resultados fueron mas que increibles.
La RAM la expreso como la suma total a la de mi sistema, que eran 271MB, siempre entre navegador y el proximo, realizando un drop_caches.

Midori 0.2.8:

Uso de CPU: 10%
Uso de RAM: 511Mb (240MB)

Firefox 10 ESR:

Uso de CPU: 11%
Uso de RAM: 473Mb (202MB)

Chrome 20:

Uso de CPU: 23%
Uso de RAM: 634Mb (363MB)

Opera 12:

Uso de CPU: 48%
Uso de RAM: 475Mb (204MB)

Podemos decir a grandes razgos, que el menor uso de CPU lo tiene Midori 0.2.8, seguido por Firefox 10 ESR.
El menor uso de RAM, lo tiene Firefox 10 ESR seguido muy pegadito por Opera 12.
Por lo tanto, es un buen dato a tener en cuenta a la hora de seleccionar un navegador para nuestro sistema, dado que algunos tienen poca RAM y buen CPU, o viceversa.
Lo que no fue de sorprender es el uso de RAM de Chrome, el mas alto de todos, una pena realmente, dado que el uso de CPU no estaba nada mal, considerando que cargó todo casi de inmediato.
Respecto a mi opinion, creo que si tenemos un buen CPU, el Opera es la mejor opcion, dado que el consumo de RAM esta casi a la par de Firefox 10 ESR, unos 2mb mas, pero a expensas del uso de CPU, lo que no lo volvio inestable, al contrario, deslizaba las imagenes mientras las cargaba.
El unico que esperó al tener al menos unas 200 cargadas para mostrar el post, php, etc, fue Firefox, la carga rapida en grandes cantidades no es lo suyo.
Si estan dispuestos a sacrificar RAM por seguridad, obviamente la mejor opcion es Chrome con su SandBox.
Midori, representa el uso de CPU mas bajo, con una cantidad de RAM, nada mal, 511 contra 473 del mas bajo, y no olvidemos que Midori no usa cache en disco sino en RAM, toda en RAM, con lo cual, esta muy bien, para una netbook, donde hoy en dia tienen al menos 1GB de ram, y poco CPU.
El equilibrio justo, sin lugar a dudas, es de Firefox 10 ESR, que para mi, se lleva todos los laureles, considerando ademas, la cantidad de addons que posee y ser 100% libre.

Comparacion de navegadores web, uso de RAM y CPU | Tenemos un ganador?

Bueno, resulta que con la salida de Opera 12, que tiene muchas mejoras respecto a html5, me decidi probar las opciones que tenia en mi sistema, es decir:

Google Chrome 20
Firefox 10 ESR
Opera 12
Midori 0.2.8

Si bien los ganadores en html5 son Opera y Chrome, como era de esperarse, asi como en acid test3, y un tanto por detrás esta Firefox 10 ESR, van a sorprenderse, o no, con estos resultados.
Ambos estan optimizados, usando RAM si pueden como cache de disco, etc.
La prueba fue simple, cargar un post en taringa.net, de 500 imagenes en alta calidad, de un solo saque.
Los resultados fueron mas que increibles.
La RAM la expreso como la suma total a la de mi sistema, que eran 271MB, siempre entre navegador y el proximo, realizando un drop_caches.

Midori 0.2.8:

Uso de CPU: 10%
Uso de RAM: 511Mb (240MB)

Firefox 10 ESR:

Uso de CPU: 11%
Uso de RAM: 473Mb (202MB)

Chrome 20:

Uso de CPU: 23%
Uso de RAM: 634Mb (363MB)

Opera 12:

Uso de CPU: 48%
Uso de RAM: 475Mb (204MB)

Podemos decir a grandes razgos, que el menor uso de CPU lo tiene Midori 0.2.8, seguido por Firefox 10 ESR.
El menor uso de RAM, lo tiene Firefox 10 ESR seguido muy pegadito por Opera 12.
Por lo tanto, es un buen dato a tener en cuenta a la hora de seleccionar un navegador para nuestro sistema, dado que algunos tienen poca RAM y buen CPU, o viceversa.
Lo que no fue de sorprender es el uso de RAM de Chrome, el mas alto de todos, una pena realmente, dado que el uso de CPU no estaba nada mal, considerando que cargó todo casi de inmediato.
Respecto a mi opinion, creo que si tenemos un buen CPU, el Opera es la mejor opcion, dado que el consumo de RAM esta casi a la par de Firefox 10 ESR, unos 2mb mas, pero a expensas del uso de CPU, lo que no lo volvio inestable, al contrario, deslizaba las imagenes mientras las cargaba.
El unico que esperó al tener al menos unas 200 cargadas para mostrar el post, php, etc, fue Firefox, la carga rapida en grandes cantidades no es lo suyo.
Si estan dispuestos a sacrificar RAM por seguridad, obviamente la mejor opcion es Chrome con su SandBox.
Midori, representa el uso de CPU mas bajo, con una cantidad de RAM, nada mal, 511 contra 473 del mas bajo, y no olvidemos que Midori no usa cache en disco sino en RAM, toda en RAM, con lo cual, esta muy bien, para una netbook, donde hoy en dia tienen al menos 1GB de ram, y poco CPU.
El equilibrio justo, sin lugar a dudas, es de Firefox 10 ESR, que para mi, se lleva todos los laureles, considerando ademas, la cantidad de addons que posee y ser 100% libre.

Aplicaciones no responden o inician cuando VirtualBox esta creando un disco, o cuando existen altas cargas de escritura a disco / System unresponsive under heavy disk I/O using VirtualBox or other software

A muchas personas les sucede, yo soy una de ellas, que al tener el disco una escritura “heavy”, como al crear un disco de virtualbox de 1GB o 10GB, eso no importa, el sistema no responde hasta que termine de crearlo, o responde por momento, es decir, si dan click en una aplicacion, esta no abre, o si abre, no se cierra, etc.


Esto ocurre porque Linux tiene un sistema de flusheo de caches asi como writeback muy bien logrado, claro, me dirán, pero… entonces porque pasa esto?.
Justamente, por eso, si miran bien, en Windows 7 esto no sucede con virtualbox, porque su sistema de escritura a disco es pobre, de hecho, tengo mayor transferencia de MB/s en Linux que en Windows, en todas mis PC.

Ahora bien, esto sucede porque existen 3 demonios en esta cuestion, llamados jbd2 y flush (antiguo pdflush).

Que son?

jbd2

Journaling Block Device. Es un block device generico, que se encarga de la capa de jornaling en Linux.
Esto se encarga de los journal, si usan ext3/4, usan esto.
El jornal es lo que hace que al reiniciar la PC de forma brusca, sin apagarla, no pierdan datos, asi como actualizar los datos de acceso, modificacion y creacion de archivos.
Si bien en /etc/fstab puede usarse noatime, yo no lo recomiendo, dado que, les doy un ejemplo:

Han sido hackeados, expliquenme como realizan un analisis forense sin poder ver quien accedio, cuando, a que hora a iptables?, chroot?, su, etc?, no pueden.

Asi que la opcion mas recomendada es relatime, que solo actualiza los accesos cuando estos son superiores a la fecha existente

flush

El proceso flush, ex pdflush, es un proceso que se encarga de copiar los datos antiguos de la pagecache a disco. Es el demonio que se encarga de volcar a disco lo que vimos en un post anterior, sobre el subsistema /vm.

Con el comando cat /proc/sys/vm/nr_pdflush_threads, pueden ver, como es obvio, los hilos actuales

# cat /proc/sys/vm/nr_pdflush_threads

/proc/sys/vm/dirty_background_ratio: Indica que a partir de que porcentage de la memoria el daemon va a empezar a copiar datos. Por defecto es el 5%(aunque en algunas versiones es el 10%)
/proc/sys/vm/dirty_writeback_centisecs: Indica el periodo que va a tardar a levantar cada vez para comprobar si hay datos que escribir a disco. Este valor se expresa en centésimas de segundo, por defecto es medio segundo.
/proc/sys/vm/dirty_expire_centisecs: Indica que dato lo considera suficientemente “viejo” para pasarlo a disco la próxima vez que levante el daemon. Igual que el valor anterior se expresa en centésimas de segundo, siendo por defecto 2999

Ahora bien, que sucede con estas dos cosas que se pone el sistema un poco freezado cuando creamos una maquina virtual, o bien cuando no se, escribimos fuertemente unos 10GB de archivo?.
Basicamente, estos procesos, corren como se les indica, y por defecto, no se les indica nada, para eso existe un comando llamado ionice.
Tambien otro llamado iotop, que ahora veremos.
Los invito a crear un disco VDI en virtualbox, de unos 10GB, y cuando hayan pasado 30 segundos de que comenzo a crearse, miren, como root, iotop asi:
# iotop
Van a ver que flush y jbd2 estan al 99%, haciendo lo que virtualbox les pide, bien, esto es lo que produce que el sistema no responda.
Soluciones caras?, comprar un disco SSD rapido, un disco de 7200 RPM o mejor 10000 RPM, pero, si no queremos gastar, menos en Argentina, donde 1 dolar nos cuesta 6 pesos ARS, ademas no poder comprarse actualmente, podemos hacer un tuning con esto.
El comando ionice, asi como renice, o nice, determina la prioridad de I/O, por eso se llama IOnice (lo puse en mayuscula para que lo noten).
Ahora bien, de forma automatica, podemos indicarle a ionice, que los procesos flush y jbd2, esten en idle y no en real time, sobre todo en mi caso que uso un kernel real time, bueno… al no tener un disco SSD, esto es un problema.
Para dicha tarea, realice un script, que hace todo de forma automatica y es el siguiente, ahora explico como se usa, y demas, pero copien y pegen esto en un gedir, kwrite o lo que usen
#!/bin/sh
# Author: SynFlag
# Licence: GPLv2
# Name: high_io
# Description: Relieves the HDD I/O under high load
# For use:  Replace “sda5” for the sdaX of your /home or where VirtualBox or other software, make a very high disk I/O load

# Wait 10 seconds for the initialization of the system and get the PID of the daemons
sleep 10

# Set the variables with the PID of _all_ jbd2 and flush
sdaX=`ps ax | egrep [j]bd2/sda5 | awk ‘{print $1}’`
flushX=`ps ax | egrep [f]lush | awk ‘{print $1}’`

# Put the jbd2 (writeback) on idle mode
ionice -c 3 -p “$sdaX”
# Put the flush (older pdflush) on idle mode
ionice -c 3 -p “$flushX”

# Clean variables
unset sdaX
unset flushX

Abren un nano, vim o lo que usen, y hacen

# nano /usr/local/bin/high_io

Pegan el contenido del script, que ya tienen en gedit o kwrite o algo, dentro de nano o vim, o lo que usen, guardan y salen. Luego:

# chmod +x /usr/local/bin/high_io

Ahora, editan esto:
# nano /etc/rc.local
Colocan alli
/usr/local/bin/high_io &
Salvan y salen.
Reinician la PC, y prueben nuevamente, de crear un disco de virtualbox, observen que las aplicaciones responden y que el iotop no esta mas al 99%, sino algo mas moderado.
Basicamente, lo que hacemos es tomar el PID de los procesos flush y jbd2, y darles prioridad idle.
Eso hace el script, que espera 10 segundos antes de tomar las variables, para que los procesos esten iniciados, por eso en rc.local ponemos &, para que se inicie en segundo plano y no detenga el inicio del sistema, ni en X ni en runlevel 3.
Asi mismo, ustedes deben colocar donde dice [j]bd2/sda5 en el script, con el /dev/sdaX que sea su /home, siempre recomiendo separarlos al momento de particionar.
Porque es esto?, porque virtualbox por defecto, realiza la carga enorme en /home, donde escribe el .vdi de 10Gb, y queremos que ese sea “idleado”, no / donde se alojan binarios de constante ejecucion.

Bueno, si tienen alguna duda o no entendieron algo, me dejan comentarios y los responderé, aunque no los vean posteados, yo los veo, los publico y respondo en en blog y por mail de ser necesario.

Mejorar el I/O de disco para escrituras pequeñas, mejorar performance y cuidar el disco

Para el que no entendio el titulo del post, en lenguaje común, como para que lo entienda mi “hermana”, son unos seteos que reducen el uso de entrada y salida de datos del disco y por consiguiente el uso del mismo, en lectura y escritura de datos pequeños.

Esto no solo es util porque usamos menos el disco, una pieza que tiene un desgaste mayor a otro componente de la PC, por ser mecanico, a menos que usen SSD, que no es mi caso.
Sino porque ademas, consume menos bateria, en caso de tener una notebook, el uso de la ram que del HDD.

Existen unos valores que pueden tocarse en sysctl para conseguir esto.
Primero voy a pegar la documentacion del subsistema vm del kernel Linux, para el que quiera leer mas y aprender.

http://www.kernel.org/doc/Documentation/sysctl/vm.txt

Bueno, ahora si, primero algunos “tuneos”

Si tienen mas de 2gb de RAM, digamos que hoy en dia es barata, etc, todos tienen al menos 4GB, asi que, vamos a reducir el uso de swap, añadiendo esta linea a /etc/sysctl.conf

vm.swappiness = 1

El valor por defecto es de 60, al bajar su valor, indicamos que use mas caché y menos swap.
La caché es una clase de memoria RAM estatica de acceso aleatorio (SRAM o Static Random Access Memory). Se situa entre la Unidad Central de Procesamiento (CPU) y la memoria RAM y se presenta de forma temporal y automática para el usuario proporcionado acceso rápido a los datos de
uso más frecuente. Algo que vimos como vaciar en el post de “freeram”, que vaciaba las cachés de la RAM.
Al colocar este valor, le indicamos al sistema, que use menos Swap y use mas caché y RAM, incluso con el valor 1, es valido, dado que si realmente necesita swap, el sistema solo la va a usar, no es tonto el kernel!.

Luego, otra linea:

vm.vfs_cache_pressure = 50

Esto controla la tendencia del nucleo para recuperar la memoria que se utiliza para el almacenamiento en caché de objetos de directorio e inodo (dentries e inodes). El valor predeterminado de vfs_cache_pressure es de 100, el núcleo intentará reclamar dentries e inodos en una “justa” relacion con respecto a la memoria intermedia de páginas (pagecache) y swapcache. La disminución de vfs_cache_pressure hace que el núcleo prefiera conservar dentries y cachés de inodos. El aumento de vfs_cache_pressure más allá de 100 hace que el núcleo quiera recuperar dentries e inodos, es decir, liberarlos, pasandolos de RAM a disco.
Asi que un valor alto va a generar mayor trafico I/O de disco y un valor menor a 100, una disminucion del mismo.
Poner un valor bajo, permite que las operaciones se realicen en RAM, y asi ganar velocidad, como bajar la cantidad de operaciones en disco, aumentando su vida util.
El valor intermedio recomendado, es el que vimos, 50.

Otra linea:

vm.dirty_ratio = 30

El mayor porcentaje de su memoria que se puede utilizar para almacenar los “datos sucios”. Si lo ajusta a un valor bajo, el kernel va a eliminar pequeñas escrituras en el disco con mas frecuencia. Los valores más altos permiten el pequeñas escrituras acumularse el stack (pila) de la memoria. Van a ir al disco en streams (pedazos) solo los pedazos mas grandes.
En servidores con 32gb de RAM, suelen ponerse valores de 80 o mas, para que sean veloces y no usen sus lerdos discos, por mas rapidos que sean, siempre serán mas lentos que una RAM, tengan eso en mente

Otra linea:

vm.dirty_background_ratio = 10

El “vm.dirty_background_ratio” dice en qué proporción debe el kernel iniciar la tarea en segundo plano de la escritura de “páginas sucias”. El “vm.dirty_ratio” dice en qué proporción de todas las operaciones de I/O estas se escribirán sincrónicamente, lo que significa que no podemos hacer llamadas de I/O sin esperar a que el dispositivo subyacente las complete (lo cual es algo que nunca queremos que suceda).

Asi que bajamos su valor a 10% (en mi caso)

Otra linea:

vm.dirty_writeback_centisecs = 1500

Esto le indica al kernel cada cuantos segundos debe escribir los datos al disco. El valor por defecto es de 500, que equivale a 5 segundos, lo habran leido por ahi cuando apenas salio ext4.
Si no suelen apagar la PC a lo bestia, o tener cortes de luz, es decir, tienen bateria, una UPS, o no sufren cortes, aumentan este valor a 1000, quedando en 10 segundos. Cada 10 segundos el kernel volcará los datos al disco, a menos que sea forzado con el comando sync.
Asimismo, si ustedes tienen cortes de luz frecuentes o les falla un cable, pueden bajarlo a 2 segundos, o 1, poniendo 200 o 100 respectivamente. La unidad son centisegundos, o sea, centesimas de segundo.

Otro Tip Importante

Colocar en /etc/rc.local, este valor:
hdparm -B 255 /dev/sda
Nos dice el manpage de hdparm:

“A  value  of 255 tells hdparm to disable Advanced Power Management altogether on the drive (not all drives support disabling it, but most do)”

Eso quiere decir, que bajo ninguna circunstancia, el disco bajará sus revoluciones ni nada, como suele pasar en Windows, donde los discos duran menos en las notebook, por bajar revoluciones y a veces tocar algun plato.

Con estos seteos, obtenemos un sistema que usa poco el disco, y responde rapido ante cosas violentas, por ejemplo, hacer un make -j400 para compilar un kernel, y cuando la RAM, en mi caso, se llena hasta 3.7GB (tengo 4GB), darle un crtl+c y que corte el proceso sin freezar el sistema y se recupere rapidamente.
Asimismo, cuidamos el disco y usamos mas la ram, volcamos pequeñas cantidades de datos al disco en intervalos medianos, y no un volcado enorme cada mucho tiempo, lo que es mas trabajo, ruido y vibracion al mismo.
Por otro lado, usamos toda la paginacion de RAM posible, si, los datos sucios, asi estan en la documentacion, para minimizar el acceso a disco.
Y por ultimo desactivamos la posibilidad que ante una baja de bateria o algo, el disco baje revoluciones y toque sus platos.
Obvio que estos valores pueden cambiarse, segun test, bechmark, necesidad, no es lo mismo un server de mysql, que uno de correo, como tampoco otro que es un web server ni un desktop.
Cada equipo tiene una necesidad distinta, el mismo Torvalds dice que es bueno tunear esto, pero que no hay una medida justa para todos.

En mi caso, estos valores, junto al post sobre heavy disk I/O, fueron los optimos, para no reiniciar la PC, pueden usar el script de heavy ( LINK ) load I/O y modificarlos, y hacer sysctl -p, el cual actualiza los datos, y ajustar bien los valores, que van, en dirty de 20 a 40, y en background de 5 a 15.

Usar RAM para la caché de disco de Firefox y Google Chrome

Habiendo visto como montar /tmp y /var/tmp en RAM, ahora, que ventaja si no podemos usarla mas que para chucherias?, no es asi!.

A muchos no les convendrá esto, por falta de RAM, dado que esto se cargará en ella, pero a muchos si, quienes tengan al menos 1gb de ram, les va a convenir, dado que la RAM es muchisimo mas rapida que un disco, a menos que sea un SSD de los ultimos, y aun asi, una ddr3 en dual channel 1600mhz, le gana.
Bueno, basicamente, le vamos a indicar a Firefox y a Chrome, que en vez del disco, el tradicional path, usen nuestro nuevo /tmp montado en RAM.

Nota: Es excluyente hacer lo de estos post, en el orden dado antes de proceder
1.- http://hackingthesystem4fun.blogspot.com.ar/2012/06/mejorar-el-rendimiento-usando-tmp-como.html
2.- http://hackingthesystem4fun.blogspot.com.ar/2012/06/usar-vartmp-en-memoria-ram.html

Cuando navegan, la caché se escribe en disco, sobre todo Firefox, si abren cosas muy pesadas, como un post de taringa con 500 fotos, van a ver como todo se pone lento, es por la cantidad de información que cachea al disco y no a la RAM, por el contrario, Chrome usa mas la RAM, aun asi, no es 100% RAM. Eso vamos a hacer, luego me cuentan como les fue.

Chrome

Si usan KDE o GNOME2 o GNOME3 o lo que sea, es lo mismo, la orden es la misma.
Por defecto, los lanzadores de Chrome vienen con esta orden:

/opt/google/chrome/google-chrome %U

Bueno, solo debemos cambiar eso, por esto otro:

/opt/google/chrome/google-chrome %U –disk-cache-dir=”/tmp/google-chrome/”

Con eso, Chrome iniciará usando la caché de disco en /tmp, que vimos en post anteriores, como montar en RAM, mejorando asi, la velocidad, asi como fiabilidad, es decir, no mas “borras historial”, reinician la PC, y no tienen mas cache de porno, por ejemplo, util no?.


Firefox

En Firefox no es mucho mas complicado, solo que mejor lo pongo por pasos, si?.
1.- Abren firefox
2.- Tipean en la barra de direccion donde suelen poner google.com, about:config y le dan enter
3.- Aceptan la advertencia de seguridad
4.- Click derecho sobre el cuerpo de Firefox, el contenido!.
5.- Nueva, cadena, o string si lo usan en inglés
6.- El valor será ‘browser.cache.disk.parent_directory’ sin las comillas
7.- Cuando le den enter, les pedirá un valor, colocan ‘/tmp’ sin las comillas
Reinician Firefox y listo, la caché de navegacion se guardará en /tmp, que es un directorio montado en RAM.

Por ultimo, para que no se pisen entre Chrome y Firefox, en /tmp, debemos crear un directorio aparte para Chrome, o bien Firefox, yo lo hice con Chrome, como /tmp ahora es RAM, en cada reinicio se borrará lo que hagamos, asi que en /etc/rc.local, colocamos lo siguiente:

mkdir -p -m 700 /tmp/google-chrome/ && chown -R synflag:synflag /tmp/google-chrome/ && chmod -R 700 /tmp/google-chrome/

Reemplacen synflag por su usuario, si?.

Nota Final Importante

Firefox utiliza la cache para descargas de archivos, los guarda como .part y cuando estan listos los mueve al destino que le indicamos con la extension que le corresponde.

Si son de esos que bajan 10 archivos de mediafire al mismo tiempo, de unos 200mb cada uno, la size de /tmp, debería variar, sino van a pasarse, asi que pongan 1 o 2G, la sintaxis, en vez de ser 512m es:

size=1G

Eso es todo

Usar /var/tmp en memoria RAM al igual que /tmp

Ya habiamos visto en este post, como usar /tmp en RAM, para mejorar rendimiento y reducir al acceso a disco.
Ahora vamos a ver como usar /var/tmp como RAM.
La diferencia entre /var/tmp y /tmp en sistemas RHEL, es que /var/tmp contiene datos temporales que son almacenados por 30 días, luego el logrorate los elimina, por tanto, no son tan vitales para ser sinceros.
Esto es mas facil que lo anterior, asi que manos a la obra:

se loguean como root:

# cd /var/
# rm -rf tmp/
# ln -s /tmp /var/tmp
# nano /etc/fstab
y dejan la linea de fstab que habian editado en el otro post, asi:

tmpfs                   /tmp                    tmpfs   size=2G,noexec,nosuid,rw,auto,nouser,sync,relatime,mode=01777       0 0

Salvan y salen

Reinician, y si, /var/tmp no es mas que un symlink a /tmp, donde ahora usan como maximo, no esta reservado aun, 2GB de RAM.

whoip | Saber la informacion de una IP

Hace algún tiempo habia colocado un script llamado geoip, para desde consola, ver la localizacion de una IP.
Ahora bien, hay otro servicio llamado whois IP, el cual nos da la informacion del bloque de la misma, ISP, etc.
Si bien podria poner todo en el mismo script, un geoip-who, me parece mas ordenado colocarlo de forma separada, ademas, geoip depende de un servicio distinto que whoip, por tanto, si cae uno de los dos, no afectará el script, sumando el hecho, de que por su sintaxis, el geoip es mas inmediato, ademas de lanzar menos informacion en pantalla, esto es conveniente si tenemos gente mirando, como ser, en un trabajo, un bar?, porque no, si miran podrian decir \”y ese mirando la informacion tan completa de una IP\”, se entiende no?.

Bueno, para esto vamos a necesitar 2 cosas.

1.- Un editor de texto, nano, vim, vi, emacs
2.- elinks

Debí usar elinks, porque lynx tiene problemas con el formateo del texto de la web que usé, es la única que no me banea por uso constante, en cambio otras web, me dicen que si requiero muchas peticiones, que pague por mes.

Ahora, vamos al script, es muy sencillo.

1.- Ejecutan como root
nano /usr/local/bin/whoip

2.- Colocan ahi dentro

1
2
3
4
5
6
7
#!/bin/sh
#Name: whoip
#Author: SynFlag
#Description: Whois ip from terminal
#Licence GPLv3
#!/bin/sh
elinks -dump https://who.is/whois-ip/ip-address/$1| sed -n \'/Overview/,/Who.is/p\'

3.- Salvan  y salen 4.- Ejecutan chmod +x /usr/local/bin/whoip Listo, desde cualquier terminal, ponen whoip IP, donde IP es la IP, un ejemplo de una salida normal:

whoip 24.232.16.45
* [11]Overview
* [12]Diagnostics

Overview for 24.232.16.45

Updated 0 seconds ago

% Joint Whois - whois.lacnic.net
% This server accepts single ASN, IPv4 or IPv6 queries

% LACNIC resource: whois.lacnic.net


% Copyright LACNIC lacnic.net
% The data below is provided for information purposes
% and to assist persons in obtaining information about or
% related to AS and IP numbers registrations
% By submitting a whois query, you agree to use this data
% only for lawful purposes.
% 2014-12-23 13:35:54 (BRST -02:00)

inetnum: 24.232.16/24
status: reallocated
owner: CABLEVISION S.A.
ownerid: AR-CASA17-LACNIC
address: Bonpland 1745
address: Buenos Aires, 1414
country: AR
owner-c:
created: 19990312
changed: 19990312
inetnum-up: 24.232/16
source: ARIN-HISTORIC

% whois.lacnic.net accepts only direct match queries.
% Types of queries are: POCs, ownerid, CIDR blocks, IP
% and AS numbers.

Get More Out of Who.is

 

Espero que les sirva y les haya gustado

Whois IP | Saber la informacion de una IP

Hace algún tiempo habia colocado un script llamado geoip, para desde consola, ver la localizacion de una IP.
Ahora bien, hay otro servicio llamado whois IP, el cual nos da la informacion del bloque de la misma, ISP, etc.
Si bien podria poner todo en el mismo script, un geoip-who, me parece mas ordenado colocarlo de forma separada, ademas, geoip depende de un servicio distinto que whoip, por tanto, si cae uno de los dos, no afectará el script, sumando el hecho, de que por su sintaxis, el geoip es mas inmediato, ademas de lanzar menos informacion en pantalla, esto es conveniente si tenemos gente mirando, como ser, en un trabajo, un bar?, porque no, si miran podrian decir “y ese mirando la informacion tan completa de una IP”, se entiende no?.

Bueno, para esto vamos a necesitar 2 cosas.

1.- Un editor de texto, nano, vim, vi, emacs
2.- elinks

Debí usar elinks, porque lynx tiene problemas con el formateo del texto de la web que usé, es la única que no me banea por uso constante, en cambio otras web, me dicen que si requiero muchas peticiones, que pague por mes.

Ahora, vamos al script, es muy sencillo.

1.- Ejecutan como root
nano /usr/local/bin/whoip

2.- Colocan ahi dentro

#!/bin/sh
#Name: whoip
#Author: SynFlag
#Description: Whois ip from terminal
#Licence GPLv3
elinks -dump http://tools.whois.net/whoisbyip/$1|tail -n 95|head -n 55

3.- Salvan  y salen

4.- Ejecutan
chmod +x /usr/local/bin/whoip

Listo, desde cualquier terminal, ponen whoip IP, donde IP es la IP, un ejemplo de una salida normal.

 [user@hostname ~]$ whoip 130.237.188.216
  %
 % The RIPE Database is subject to Terms and Conditions.
 % See http://www.ripe.net/db/support/db-terms-conditions.pdf


 % Note: this output has been filtered.
 %       To receive output for a database update, use the “-B” flag.


 % Information related to ‘130.237.184.0 – 130.237.191.255’


 inetnum:        130.237.184.0 – 130.237.191.255
 netname:        SUNT
 descr:          Stockholm University
 descr:          SE-106 91 Stockholm
 descr:          SWEDEN
 country:        SE
 admin-c:        SUI3-ripe
 tech-c:         SUI3-ripe
 status:         ASSIGNED PI
 mnt-by:         SUNET-MNT
 descr:          ======================================
 descr:          Abuse issues should be sent
 descr:          to abuse@su.se
 descr:          ======================================
 source:         RIPE # Filtered


 role:            Stockholm University IT
 address:         Stockholm University
 address:         IT services
 address:         SE-106 91 Stockholm
 address:         Sweden
 phone:           +46 8 16 1999
 fax-no:          +46 8 674 73 48
 admin-c:         DS8776-RIPE
 admin-c:         PE1861-RIPE
 tech-c:          DS8776-RIPE
 tech-c:          PE1861-RIPE
 nic-hdl:         SUI3-ripe
 remarks:         ======================================
 remarks:         Abuse issues should be sent
 remarks:         to abuse@su.se
 remarks:         ======================================
 abuse-mailbox:   abuse@su.se
 mnt-by:          sunet-mnt
 source:          RIPE # Filtered


 % Information related to ‘130.237.0.0/16AS1653’


 route:          130.237.0.0/16
 descr:          KTH-LAN
 origin:         AS1653
 mnt-by:         SUNET-MNT
 source:         RIPE # Filtered


 % This query was served by the RIPE Database Query Service version 1.12.4 (WHOIS2)

Espero que les sirva y les haya gustado

bad /dev/cdrom symlink | /dev/cdrom2 | /dev/sr0 | 70-persistent-cd.rules | bad /dev/cdrom2 -> /dev/sr0

En SL6.2, supongo que en CentOS.62 pasará lo mismo, noté que al usar el comando \”eject\”, que expulsa la lectora de CD o DVD, no funcionaba, me decia que no se habia encontrado /dev/cdrom.
Claro, mi dispositivo era /dev/sr0, y dentro de /dev/ habia un symlink llamado cdrom2 que apuntaba a /dev/sr0.

Es decir, cdrom, se llamaba cdrom2. Por mas que recrearamos el symlink con el valor cdrom, borrando el otro, al reiniciar, el mismo problema.

Porque?, porque esto lo controla udev, el cual lee /etc/udev/rules.d/70-persistent-cd.rules y en base a ello, añade el symlink.

El error o bug, es que el contenido del archivo original es este:

# This file was automatically generated by the /lib/udev/write_cd_rules
# program, run by the cd-aliases-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and set the $GENERATED variable.


# DVDRAM_GU10N (pci-0000:00:1f.2-scsi-1:0:0:0)
SUBSYSTEM==\”block\”, ENV{ID_CDROM}==\”?*\”, ENV{ID_PATH}==\”pci-0000:00:1f.2-scsi-1:0:0:0\”, SYMLINK+=\”cdrom\”, ENV{GENERATED}=\”1\”
SUBSYSTEM==\”block\”, ENV{ID_CDROM}==\”?*\”, ENV{ID_PATH}==\”pci-0000:00:1f.2-scsi-1:0:0:0\”, SYMLINK+=\”cdrw\”, ENV{GENERATED}=\”1\”
SUBSYSTEM==\”block\”, ENV{ID_CDROM}==\”?*\”, ENV{ID_PATH}==\”pci-0000:00:1f.2-scsi-1:0:0:0\”, SYMLINK+=\”dvd\”, ENV{GENERATED}=\”1\”
SUBSYSTEM==\”block\”, ENV{ID_CDROM}==\”?*\”, ENV{ID_PATH}==\”pci-0000:00:1f.2-scsi-1:0:0:0\”, SYMLINK+=\”dvdrw\”, ENV{GENERATED}=\”1\”


# DVDRAM_GSA-U10N (pci-0000:00:1f.1-scsi-0:0:0:0)
SUBSYSTEM==\”block\”, ENV{ID_CDROM}==\”?*\”, ENV{ID_PATH}==\”pci-0000:00:1f.1-scsi-0:0:0:0\”, SYMLINK+=\”cdrom1\”, ENV{GENERATED}=\”1\”
SUBSYSTEM==\”block\”, ENV{ID_CDROM}==\”?*\”, ENV{ID_PATH}==\”pci-0000:00:1f.1-scsi-0:0:0:0\”, SYMLINK+=\”cdrw1\”, ENV{GENERATED}=\”1\”
SUBSYSTEM==\”block\”, ENV{ID_CDROM}==\”?*\”, ENV{ID_PATH}==\”pci-0000:00:1f.1-scsi-0:0:0:0\”, SYMLINK+=\”dvd1\”, ENV{GENERATED}=\”1\”
SUBSYSTEM==\”block\”, ENV{ID_CDROM}==\”?*\”, ENV{ID_PATH}==\”pci-0000:00:1f.1-scsi-0:0:0:0\”, SYMLINK+=\”dvdrw1\”, ENV{GENERATED}=\”1\”


# DVDRAM_GU10N (pci-0000:00:1f.2-scsi-0:0:0:0)
SUBSYSTEM==\”block\”, ENV{ID_CDROM}==\”?*\”, ENV{ID_PATH}==\”pci-0000:00:1f.2-scsi-0:0:0:0\”, SYMLINK+=\”cdrom2\”, ENV{GENERATED}=\”1\”
SUBSYSTEM==\”block\”, ENV{ID_CDROM}==\”?*\”, ENV{ID_PATH}==\”pci-0000:00:1f.2-scsi-0:0:0:0\”, SYMLINK+=\”cdrw2\”, ENV{GENERATED}=\”1\”
SUBSYSTEM==\”block\”, ENV{ID_CDROM}==\”?*\”, ENV{ID_PATH}==\”pci-0000:00:1f.2-scsi-0:0:0:0\”, SYMLINK+=\”dvd2\”, ENV{GENERATED}=\”1\”
SUBSYSTEM==\”block\”, ENV{ID_CDROM}==\”?*\”, ENV{ID_PATH}==\”pci-0000:00:1f.2-scsi-0:0:0:0\”, SYMLINK+=\”dvdrw2\”, ENV{GENERATED}=\”1\”

Que sucede con esto, al leer udev, observa que el ultimo existente es cdrom2 y lo crea nuevamente con cada reinicio, por eso se llaman reglas persistentes.
Como es arregla?, facil, solo debemos comentar todas las lineas, es decir, añadir un # delante de cada linea, asi quedaria como \”vacio\”, y crea cdrom como unica y primera unidad al detectarla en el inicio.
Seguro fue un bug de empaquetado, dado que al hacer esto, no sucede nunca mas, bueno, ahora tenemos un bug menos.