6/30/2008


Si fueramos como los futbolistas...

Casi siempre leo el blog eladodelmal, que es de un flaco que trabaja en seguridad informatica, aunque no me gusta que le tire siempre con bombas a Linux, bue nadie es perfecto jaja. Trabaja para Micro$oft como podriamos imaginar...

La cuestión es que me pareció muy comico lo siguiente, ya que españa(su pais) salió campeon de la eurocopa, y como todos sabemos los futbolistas al terminar el partido relatan como fué el encuentro. Pero imaginense a un informático que descubrió un exploit XD:

"la verdad es que fue una compilación muy dificil, el código estaba muy desordenado, no había muchas llamadas a funciones, el equipo de programadores no había refactorizado correctamente el flujo y esto hacía que no hubiera llamadas exteriores en paralelo. Los desmarques de variables eran muy dificiles de fijar y esto hacía que se fueran de marca constantemente. Al final encontré el fallo, pero ha sido un trabajo colectivo, lo importante es el equipo. Yo, personalmente me sentí muy felíz, pleno de satisfacción"

Y la foto de portada del diario "El Bug" el informático levantando el portátil entre fuegos artificiales y la música de Queen.. "we are the champions, no time for loosers, 'cause we are the ch...." y él con la sonrisa de felicidad en alto. Las niñas monas a sus pies, pidiendo un hijo suyo, abrazos, besos, etc..."

Muy ingenioso este tipo Chema XD. Saludos!


6/27/2008


Anime Wallpapers Gnu/Linux

Wallpapers de las distribuciones Gnu/Linux en Anime. Sitio de la creadora Link

Linux
(a.k.a The Penguin Girl)

1024x768

1280x1024

1440x900

1600x1200

6/26/2008


Ver los puertos abiertos en Gnu/Linux

Los siguientes comandos nos ayudaran a ver los sockets/puertos LISTEN o en escucha. Quiere decir los puertos abiertos, preparados para establecer una conexion.

# netstat -an | grep LISTEN
Muestra todos los sockets en estado LISTEN

# lsof -i
Muestra todas las conexiones a internet

#socklist
Nos muestra la lista de los sockets abiertos

# netstat -anp --udp --tcp | grep LISTEN
Nos muestra solo los puertos LISTEN

# netstat -tup
Lista las conexiones activas a/desde nuestro sistema

# netstat -tupl
Lista los puertos en escucha


Crear paquete para Archlinux

Exelente articulo leido en el blog de FlaPer87, que nos explica como crear paquetes para Archlinux.

Este es un pequeño y simple howto acerca de como crear un paquete para Archlinux…

Los paquetes de archlinux son simples .tar.gz, la mayoria con 3 archivos dentro (2 de ellos opcional) que gestionan la descarga e instalación de la aplicación, digo la mayoria porque también existen paquetes que ademas de traer estos 2 archivos traen las fuentes de la aplicación (vease el caso de eclipse, netbean, Firefox3, entre otros) y que por ende son más pesados.

Estos dos archivos que mencionon son el PKGBUILD (Obligatorio), un .install con algunas reglas extras como pre_instalacion, post_instalacion, pre_desisntalacion o post_desisntalacion y un archivo .filelist que contine la lista de archivos el cual es usado para la desisntalación del paquete o para buscar conflictos con archivos. El archivo .install se dice que es opcional ya que el paquete no depende directamente de el, pero si no se especifican estas reglas el paquete a la hora de ser desisntalado (por ejemplo) sera eliminado solamente de la base de datos dejando todos los archivos en las carpetas de instalación ya que no existe ninguna regla para desinstalarlo y lo mismo se aplica para el archivo .filelist

Para este ejemplo utilizare el paquete de Ulipad que en estos momentos mantengo. Comencemos con el PKGBUILD:

El PKGBUILD es un archivo que contiene tanto la información completa del paquete como la
funcion de construcción (build) del paquete, por ejemplo:

# Maintainer: Flavio Percoco 
# Contributor: Flavio Percoco
pkgname=ulipad
pkgver=3.8.1
pkgrel=1
pkgdesc="UliPad is en editor written in python and wxPython."
arch=('i686' 'x86_64')
license=('GPL')
install=ulipad.install
url="http://code.google.com/p/ulipad/"
depends=(python wxpython unzip)
source=("http://ulipad.googlecode.com/files/ulipad.$pkgver.zip")
md5sums=('9bfb7c6000c3b1a61e65840385c2be03')

build() {
cp -Rf $startdir/src/ulipad /usr/share/
echo "#!/bin/bash" > /usr/bin/ulipad
echo "python /usr/share/ulipad/UliPad.py" >> /usr/bin/ulipad
chmod 777 /usr/share/ulipad/ -Rf
chmod a+x /usr/bin/ulipad
}

Expliquemos el PKGBUILD:

Los parametros para proporcionar la informacón del paquete son faciles de entender, sin embargo acá les coloco la explicación de los que utilice, para verlos todos vean este link

  • pkgname: El nombre del paquete.
  • pkgver: La versión del paquete.
  • pkgrel: El numero de release del paquete, el cual debe ser modificado cada vez que se le hagan cambios al
  • PKGBUILD.
  • pkgdesc: La descripción del paquete.
  • arch: la architectura para la cual esta permitida el paquete.
  • license: La licencia del paquete.
  • install: El archivo .install a incluir el cual debe encontrarse en la misma carpeta del PKGBUILD.
  • url: La pagina principal del paquete.
  • depends: Las dependencias del paquete.
  • source: De donde se obtendran las fuentes, puede ser local como http o ftp.
  • md5sum: El md5sum de las fuentes del paquete.

La función build también es bastante simple por el tipo de paquete que estamos creando, Ulipad es un IDE para python hecho en python y utilizando wxwidgets, y su instalación se hace simplemente copiando la carpeta a donde queramos, sin necesidad de compilar o algo por el estilo.

cp -Rf $startdir/src/ulipad /usr/share/

Con este comando copiamos la carpeta de ulipad a /usr/share/ que sera nuestro path de instalación.

echo "#!/bin/bash" > /usr/bin/ulipad
echo "python /usr/share/ulipad/UliPad.py" >> /usr/bin/ulipad
chmod 777 /usr/share/ulipad/ -R
chmod a+x /usr/bin/ulipad

Esto era realmente opcional y lo hice para ofrecer un lanzador para ulipad ya que este no lo trae, simplemente creo un archivo llamado ulipad bajo /usr/bin el cual ejecutara el comando python /usr/share/UliPad.py al ser ejecutado y le otorgo permisos de ejecución.

Ahora pasemos a explicar el arhcivo ulipad.install del paquete el cual por la simplicidad del paquete es aun mas facil que el mismo PKGBUILD :-D

post_remove() {
rm -Rf /usr/share/ulipad/
rm /usr/bin/ulipad
}

La unica función que le agregue fue la de post_remove (post_desinstalacion) la cual eliminara todos los archivos que fueron agregados durante la instalación obviando los de configuracion del usuario por supuesto. En este caso esos archivos son /usr/share/ulipad y /usr/bin/ulipad.

Ok ahora empaquetemos todo lo que acabamos de hacer, creemos una carpeta con el nombre de la aplicación en la cual deberan ser guardados los archivos:

$ mkdir ulipad && cd ulipad
$ vim PKGBUILD // Para crear el PKGBUILD, pueden usar su editor favorito.
$ vim ulipad.install // Para crear el ulipad.install, pueden usar su editor favorito.

Ahora quedan dos cosas por hacer una es crear el paquete para subirlo a los repositorios de AUR ( Archlinux User-Community Repository ) y crear el paquete instalable. El primero nos servira simplemente para subirlo a AUR y que otros lo puedan instalar mediante yaourt (hasta que tenga suficientes votos para entrar en community y poder ser instalado mediante el uso de pacman ), este es un paquete que contiene los dos archivos que creamos y el cual sera construido cuando el usuario intente instalarlo; el segundo es un paquete ya construido y listo para instalar.

$ tar -cvvf ulipad-3.8.1.tar.gz ../ //Este es el que podra ser subido en los repositorios de AUR

# makepkg –asroot // Este debe ser ejecutado como root y con el comando –asroot

Ok… Hemos construido nuestros paquetes, el segundo es opcional pero siempre es bueno probarlo antes de subirlo al repositorio, asi que probemoslo. Como lo tenemos en nuestro computador lo podemos instalar con pacman.

# pacman -A ulipad-3.8.1-1-i686.pkg.tar.gz

Si todo va bien entonces es hora de entrar a la pagina de AUR, iniciar nuestra sesión y subir nuestro paquete ulipad-3.8.1.tar.gz

Espero que les sirva este pequeño howto de como crear un paquete para Archlinux…

Nota de braianet:

En un comentario del mismo articulo milmazz nos acota lo siguiente:


Tal vez esto sea un consejo para futuras ocasiones cuando tengas que hacer ficheros de configuración algo extensos, así que en vez colocar cosas como:

echo "#!/bin/bash" > /usr/bin/ulipad
echo "python /usr/share/ulipad/UliPad.py" >> /usr/bin/ulipad

Puedes hacer esto:

cat > /usr/bin/ulipad <

python /usr/share/ulipad/UliPad.py
EOF


Saludos!



Estreno Archlinux 2008.06 - "Overlord"

Las imagenes 2008.06 están disponibles, éstas introducen muchos cambios:

- La categoría 'base' se instala siempre
- Se utilizan los UUID para una nomenclatura persistente de discos
- Disponibles imágenes USB junto a las ISOs
- Disco Live real de arch durante la instalación
- Incluida la Guía para principiantes de la wiki
- Actualizada la documentación
- Incluye el kernel estable actual 2.6.25.6

Despues de mi ansiada espera, sale la version 2008 de Arch. Ya la estoy bajando...=). Es una distro muy recomendada si quieren algo rapido, ligero y estable.

Link de descarga


Se podrán elegir los dominios de Internet

El ente regulador mundial de la Web aprobó la modificación en las terminaciones de las direcciones electrónicas; .mac, .buenosaires y .juan, algunas alternativas


París.- La Corporación de Internet para la Asignación de Nombres y Números (Icann) decidió hoy durante un encuentro en París que en un futuro próximo se podrá elegir libremente cuál será la terminación de las direcciones de Internet.

Además de las terminaciones actuales, como por ejemplo ".com", ".org", etc., en el futuro también se podrán utilizar terminaciones que sean nombres propios, como por ejemplo de empresas y de ciudades, ".buenosaires" o ".ebay".

Los interesados en registrar nuevas direcciones podrán solicitarlo a partir de comienzos del año próximo. Los especialistas estiman que los precios no serán menores a los diez mil euros (15 mil dólares).

Una de las causas de la decisión fue que se temía que el sistema hasta ahora vigente no pudiera suplir con las necesidades del mercado en los próximos cinco años debido al incremento de la cantidad de direcciones de Internet. Al parecer el año pasado sólo un 17 por ciento de lo que originariamente eran 4000 millones de direcciones seguían estando libres.

La nueva regulación podría crear valores totalmente nuevos en la navegación, afirmó el directivo de la Icann, Paul Twomey.

De todas formas, los entendidos suponen que la lucha por las direcciones de Internet que lleven terminaciones clásicas como ".com" no decaerá.

Cambio histórico. Los nombres de dominios de alto nivel, o TLD en sus siglas en inglés, son sufijos de Internet como los ubicuos .com, .net y .org. En la actualidad existen más de 200 TLD, entre los que se incluyen los códigos de país de dos caracteres como el argentino .ar.

"Es una resolución histórica", dijo Peter Dengate Thursh, presidente de la junta de la Icann. "Va a marcar una gran diferencia en cómo se ve y funciona internet", apuntó.

Una empresa podría también cambiar su dominio para reflejar su marca, de modo que Apple.com podría convertirse en Apple.mac, por ejemplo.

Son numerosas las personas que lograron reunir un gran capital comercializando nombres de dominios: registraban los nombres de determinadas marcas y direcciones de fácil comprensión y los vendían posteriormente a buenos precios.

Icann es una organización sin fines de lucro con sede en California que recibió el encargo del Departamento de Comercio de Estados Unidos de administrar este tipo de direcciones.

La organización, cuyo encuentro internacional finalizó hoy en París, es responsable, entre otras cosas, de los nombres de dominios y de las direcciones IP.

Agencias DPA y AFP

Fuente: http://www.lanacion.com.ar/exterior/nota.asp?nota_id=1024977&pid=4651257&toi=5799

6/25/2008


Implementar y administrar cuotas de disco (Disk Quotas) en Linux

Sistemas Linux con gran cantidad de usuarios, como servidores de correo, servidores samba, etc., tarde o temprano tienen el problema de usuarios que almacenan demasiada información en sus directorios de trabajo, pudiendo incluso en casos extremos llenar completamente discos duros haciendo el sistema inservible. Con el uso de cuotas de disco (disk quotas) es posible limitar la cantidad de espacio disponible para cada usuario o de manera global para todos. En este manual de LinuxTotal.com.mx conocerás a fondo como implementar y administrar cuotas de disco para control de los usuarios.

Tipos de cuota

Por Bloques (blocks): Un bloque corresponde a 1 kb y una cuota por bloques correspondería al total de bloques que un usuario puede utilizar en el sistema. Recuerda que los archivos se guardan en bloques de disco. Asi un archivo de 100 bytes, ocupará un un bloque de 1kb en el disco duro.

Por Inodos (inodes): Un inodo o inode en inglés (Index Node) es un número que actua como apuntador para el sistema de archivos de Linux y le indica en que bloques específicos del disco duro se encuentran los datos de un archivo. También el inodo en su referencia guarda información sobre permisos, propietario, atributos, etc. Se podría ver en una analogía simple que un inodo es como un número de serie único para cada archivo del sistema y a través de este número el sistema recupera sus datos (bloques) y sus atributos (permisos, propietario, fechas, etc.).

En el caso de las cutoas, una cuota por inodos indicaría el total de indos a los que el usuario tiene derecho, casi representaría el total de archivos que el usuario puede crear y digo "casi" porque los usuarios podemos crear enlaces simbólicos (ln -s) sobre archivos ya existentes que no aumentan las cantidad de inodos. Pero por simplicidad puedes verlo como un 1 inodo = 1 archivo.


Límites

Tanto las cuotas por bloques o por inodos, tienen límites de uso y son de dos tipos:

HARD: (Duro) Cuando se establece (para bloques o inodos), es el límite absoluto. El usuario no podrá exceder este límite.

SOFT: (Suave) Este límite (para bloques o inodos) que es siempre menor al HARD, puede ser excedido por el usuario, pero será constantemente advertido que el límite de uso para bloques o inodos ya ha sido excedido. Podría verse como un límite de advertencia que le estará indicando al usuario que su límite ya se excedió y tome medidas.

Cuando se usa el límite SOFT, dos situaciones pueden ocurrir. La primera es que NO se tenga establecido un tiempo de gracia, y entonces el usuario podrá seguir usando bloques o inodos hasta llegar al límite HARD que será su límite absoluto de uso.

La segunda situación es que SI se tenga establecido el tiempo de gracia, que puede ser en días, horas, minutos o segundos. En este caso, el usuario podrá seguir usando bloques o inodos hasta que termine el tiempo de gracía o llegue al límite HARD, cualquiera que ocurra primero.

El tiempo de gracias se puede establecer por usuario o globalmente y más adelante veremos como establecerlo.


¿Donde se implementan?

Las cuotas se establecen por filesystem o sistema de archivos, es decir, debes de decidir en donde es más conveniente instalar un sistema de cuotas, pero no hay ningún problema si se instala en todos. Las cuotas pueden establecerse por usuario, por grupos o ambos. En el siguiente ejemplo:

#> mount
/dev/sda1 on /boot type ext3 (rw,noatime)
/dev/sda2 on / type ext3 (rw,noatime)
/dev/sda3 on /home type ext3 (rw,noatime)
none on /proc type proc (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

Lo anterior es un ejemplo típico de un equipo Linux con varios sistemas de archivos (/boot, / y /home). Como se sabe en /home es donde los usuarios tienen sus directorios de trabajo (HOME), asi que solo en este sistema de archivos crearemos cuotas, en los otros dos no tiene caso.


Configuración

Todo debe hacerse como root, y lo primero que haremos es editar el archivo "/etc/fstab" y añadiremos "usrquota" o "grpquota", dependiendo si se desea cuotas por usuario o grupos, o incluso ambas.

#> vi /etc/fstab
/dev/sda2 / ext3 noatime 1 1
/dev/sda1 /boot ext3 noatime 1 2
/dev/sda3 /home ext3 noatime 1 2
....

(Añadimos en la cuarta columna el tipo de cuotas que deseamos)
/dev/sda2 / ext3 noatime 1 1
/dev/sda1 /boot ext3 noatime 1 2
/dev/sda3 /home ext3 noatime,usrquota,grpquota 1 2
...

Algo similar a lo anterior deberá tener tu archivo de configuración, y como ya se indicó solo agregamos el soporte para cuotas en el sistema de archivos que nos interese. Lo anterior por si solo, es obvio que no hace nada, habría que reiniciar el sistema para que se apliquen los cambios pero realmente no es necesario, lo siguiente re-monta el sistema de archivos "/home":

#> mount -o remount /home
#> mount
/dev/sda1 on /boot type ext3 (rw,noatime)
/dev/sda2 on / type ext3 (rw,noatime)
/dev/sda3 on /home type ext3 (rw,noatime,usrquota,grpquota)
none on /proc type proc (rw)

El sistema de archivos "/home" esta listo ahora para soportar cuotas de disco. El siguiente paso es verificar con el comando quotacheck por sistemas de archivos que soporten cuotas. Este comando crea, verifica o repara el control de cuotas en los sistemas que lo soporten, en este caso creara el soporte:

#> quotacheck -augmv
quotacheck: Scanning /dev/sda3 [/home] done
quotacheck: Cannot stat old user quota file: No existe el fichero o el directorio
quotacheck: Cannot stat old group quota file: No existe el fichero o el directorio
quotacheck: Cannot stat old user quota file: No existe el fichero o el directorio
quotacheck: Cannot stat old group quota file: No existe el fichero o el directorio
quotacheck: Checked 2539 directories and 35556 files
quotacheck: Old file not found.
quotacheck: Old file not found.

Los errores que envía es precisamente porque no existía un sistema de cuotas previo, es normal que los envíe. Cuando las cuotas esten en pleno uso, es conveniente ejecutar quotacheck periódicamente para que verifique inconsistencias y se corrijan a tiempo. En cuanto a las opciones estas indican lo siguiente:

  • a - all, es decir verifica todos los sistemas de archivos por cuotas.
  • u - user, verifica por soporte de cuotas para usuarios.
  • g - group, verifica por soporte de cuotas para grupos.
  • m - no-remount, evita que el sistema se remonte como de solo lectura.
  • v - verboso, reporta lo que hace conforme progresa, son los mensajes que salen a la terminal.

Como ves, la opción -a en este caso no era necesario puesto que solo tenemos "/home" con cuotas, asi que el comando anterior también pudiera ser invocado de esta manera:

#> quotacheck -ugmv /home

Pues el sistema esta listo para manipular cuotas de usuario, esto lo podemos comprobar porque en la raíz del sistema de archivos soportado con cuotas deben existir los archivos "aquota.user" y "aquota.group" que son binarios, no trates de modificarlos o manipularlos:

#> cd /home
#> ls -l
total 72
-rw------- 1 root root 8192 2008-05-17 21:38 aquota.group
-rw------- 1 root root 8192 2008-05-17 21:38 aquota.user
drwx--x--x 4 user1 user1 4096 2008-05-12 16:13 user1/
drwx--x--x 4 user2 user2 4096 2008-05-12 16:13 user2/
drwx--x--x 3 user3 user3 4096 2008-05-05 12:01 user3/
drwx--x--x 3 user4 user4 4096 2008-05-05 12:01 user4/

(obsérvese los dos archivos de control de cuotas, para usuarios y grupos)

Si se tuvieran más sistemas de archivos con soporte para cuotas en la raíz de cada uno estarían estos archivos, o solo uno dependiendo lo que se pidió, usuarios, grupos o ambos. Por cierto, en sistemas con kernel 2.2 o anterior se usaba la versión 1 de cuotas y sus archivos de control se nombraban "quota.user" y "quota.group", del kernel 2.4 y posteriores con la versión 2 y 3, se utiliza los mostrados anteriormente.

Ahora bien, lo anterior deja listo el sistema para el soporte de cuotas pero estás siguen sin ser activadas se requiere activar el soporte de cuotas, para lo cual invocamos el comando quotaon:

#> quotaon -ugv /home
/dev/sda3 [/home]: group quotas turned on
/dev/sda3 [/home]: user quotas turned on

Activamos para "/home" cuotas de usuario y grupos. Cuando por alguna razón sea necesario desactivar las cuotas, entonces utiliza la contraparte, que es el comando quotaoff:

#> quotaoff -v /home
/dev/sda3 [/home]: group quotas turned off
/dev/sda3 [/home]: user quotas turned off

Muy bien, hasta aqui ya tienes el sistema de archivos "/home" o el que hayas elegido (o todos) para trabajar con soporte de cuotas para los usuarios y grupos, ahora veremos como aplicar estas cuotas con los usuarios.


Aplicando la cuota a usuarios

Ahara hay que aplicar la cuota por usuario, aunque el sistema de archivos ya soporta cuotas y están habilitadas, por defecto ningún usuario tiene establecidas cuotas. Asi que para iniciar habrá que administrar cada usuario a través del comando edquota, que abrirá el editor de texto que se tenga por defecto y mostrará lo siguiente:

#> edquota -u user1
Disk quotas for user user1 (uid 502):
Filesystem blocks soft hard inodes soft hard
/dev/sda3 56 0 0 14 0 0

Las columnas "blocks" e "inodes" son informativas, es decir nos indican la cantidad de bloques o inodos utilizados actualmente por el usuario, y las que podemos editar son las columnas "soft" y "hard" de cada caso. Como ya se explicó en la primera parte de este artículo, se puede indicar libremente cualquiera de los cuatro valores, es perfectamente posible establecer valores por bloques, por inodos o ambos, solo recuerda que el límite soft debe ser menor al hard. Si se establece solo el hard, no habrá advertencias previas y el usuario ya no podrá guardar archivos cuando se llegue al valor. Si se establece soft y hard, avisará cuando se rebase el límite soft y entrará en juego el periodo de gracia. Si se acaba el tiempo de gracias o se llega al har (lo que sea primero) ya no se podrán crear más archivos hasta que no se eliminen algunos de los que se tengan actualmente.

Para modificar cuotas a nivel grupo, se usa el mismo comando pero con la opción -g (edquota -g ventas).

En el ejemplo previo se modifica la cuota del usuario "user1" en el sistema de archivos "/home" que es el que se ha usado de ejemplo en este artículo de LinuxTotal.com.mx, el comportamiento por default es modificar cuotas para ese usuario en todos los sistemas de archivos que tengan activo el control de cuotas (quotaon). Si se desea control de cuotas para un filesystem en específico entonces se agrega la opción -f:

#> edquota -u user1 -f /home
(solo aplica la cuota en el sistema de archivos indicado)

Verificando el uso de las cuotas

Como usuario administrador 'root' puedes ver el uso de cuotas de cualquier usuario, ya sea individualmente o por medio de un reporte global.

Por usuario o individualmente se usa el comando quota, estando como "root":

#> quota -u user1
Disk quotas for user user1 (uid 502):
Filesystem blocks quota limit grace files quota limit grace
/dev/sda3 56 70 100 14 0 0

Con usuarios que manejan cantidades muy grandes de cuota, es un poco dificil calcular en términos de megas o gigas el espacio usuado y los límites de cuotas:

#> quota -u sergio
Disk quotas for user sergio (uid 500):
Filesystem blocks quota limit grace files quota limit grace
/dev/sda3 42578888 0 50000000 34895 0 0

Usando la opción -s se mejora el informe:

#> quota -s -u sergon
Disk quotas for user sergon (uid 500):
Filesystem blocks quota limit grace files quota limit grace
/dev/sda3 41582M 0 48829M 34905 0 0

Como usuario individual del sistema, puedes observar tus cuotas con el mismo comando quota, sin argumentos.

Ahora bien, si se desea un reporte global de las cuotas de todos los usuarios o por grupos, siendo "root" utiliza el comando repquota:

#> repquota /home
*** Report for user quotas on device /dev/sda3
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 184280 0 0 11 0 0
sergio -- 42579852 0 50000000 34902 0 0
user1 -- 56 70 100 14 0 0
user2 -- 52 0 0 13 0 0
user3 -- 28 0 0 7 0 0
user4 -- 28 0 0 7 0 0

Con repquota es también posible utilizar la opción -s para observar los tamaños en formato legible. Si se usa la opción -a (all) en vez del sistema de archivos "/home", el reporte será para todos los sistemas de archivos en el equipo que soporten cuotas. Asi mismo este reporte por defecto es por usuarios, si se requiere que repquota reporte por grupos, añade entonces la opción -g.


Obsérvese en la segunda línea del reporte el tiempo de gracia (grace time), que es de 7 días tanto para cuotas por bloque como para cuotas por archivos o inodos. Esto aplica para todos los usuarios en global, como se aprecia en el listado que ninguno tiene establecido un tiempo de gracia diferente al global.


Estableciendo el tiempo de gracia

A nivel global, un periodo de gracia para todos, utiliza la opción -t del comando edquota, como en el siguiente ejemplo, recuerda que debes ser "root":

#> edquota -t
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period
/dev/sda3 7days 7days

7 días es el periodo por defecto, si lo cambias a digamos 12 horas, sería "12hours". El tiempo de gracia puede ser distinto para el límite soft por bloques o por inodos.

Por usuario específico se realiza con la opción -T del mismo comando e indicando el usuario:

#> edquota -u user1 -T
Times to enforce softlimit for user user1 (uid 502):
Time units may be: days, hours, minutes, or seconds
Filesystem block grace inode grace
/dev/sda3 unset unset

Lo único que hay que considerar es que los tiempos de gracias por usuario deben ser menores al global. Y que este empieza a correr una vez que se ha llegado al límite soft. Cuando esto suceda, si entras a editar de nuevo el tiempo de gracia del usuario (edquota -u user -T) se reflejara en segundos el tiempo que le queda, pudiéndolo aumentar de nuevo si eres "root". O dejarlo en cero y entonces el global será el que se utilice.


Fijar cuotas de manera global a todos los usuarios

En sistemas Linux con pocos usuarios, establecer las cuotas usuario por usuario no representa ningún problema. Pero si hablamos por ejemplo de una universidad donde pudieran existir miles de cuentas entonces si es un problema establecer cuentas individualmente. Realmente no existe una manera "oficial" de establecer cuotas masivamente, sin embargo, no hay problema, usaremos un pequeño script que te permitira realizarlo.

Establece la cuota que deseas globalmente en un solo usuario:

#> edquota -u user1
Disk quotas for user user1 (uid 502):
Filesystem blocks soft hard inodes soft hard
/dev/sda3 68 300 400 17 0 0
:wq

Veamos el reporte de cuotas con repquota:

[root@segolap ~]# repquota /home
*** Report for user quotas on device /dev/sda3
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
user1 -- 68 300 400 17 0 0
user2 -- 352 0 0 13 0 0
user3 -- 28 0 0 7 0 0
user4 -- 28 0 0 7 0 0

Solo el usuario "user1" tiene cuotas, las columnas de "grace" tendrán valores una vez que se llegue al límite soft o suave. Usaremos entonces la opción -p (protptype) para hacer duplicados a partir del ya establecido.

#> edquota -p user1 user2

Con lo anterior "copias" la información de límites de cuotas del "user1" al "user2", no hay límite de cuantos usuarios puedes colocar como argumentos asi que lo siguiente es válido:

#> edquota -p user1 user2 user3 user4

Práctico para unos cuantos usuarios pero inútil si necesitamos duplicarlo en cientos de usuarios, asi que hagamos un comando compuesto que nos extraiga los nombres de los usuarios, se puede usar por ejemplo gawk para realizar lo anterior:

#> gawk -F: '$3 > 499 {print $1}' /etc/passwd
user1
user2
user3
user4

Usamos el separador ":" de campos (-F), e indicamos como acción que en el campo 3 ($3) busquemos todos los UID mayores a 499 y que los imprima ({print $1}). Ahora solo tenemos que usar este comando junto con edquota -p:

#> edquota -p user1 `gawk -F: '$3 > 499 {print $1}' /etc/passwd`

(importante: nota el uso de acento grave que abarca al comando gawk, esto para que el shell lo ejecute primero y el resultado serán los argumentos, uno o cientos de usuarios cuyo UID es mayor a 499)

Haciendo uso de repquota de nuevo veamos que pasó:

#> repquota /home
*** Report for user quotas on device /dev/sda3
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
user1 -- 68 300 400 17 0 0
user2 -- 352 300 400 7days 13 0 0
user3 -- 28 300 400 7 0 0
user4 -- 28 300 400 7 0 0

Primero, todos los usuarios tienen las mismas cuotas que el "user1" que fue el prototipo para los demás y segundo se observa que el "usuario" que tiene 352 bloques utilizados al pasar el límite suave entro al periodo de gracia automáticamente que el global es de 7 días. A partir del instante que el límite cambió de 0 a 300, comenzó el periodo de gracia. Ahora solo podrá crear más archivos durante 7 días o cuando llegue a 400, lo primero que ocurra, claro, asumiendo que no borre archivos primeros para recuperar espacio.


Avisos de cuotas excedidas (warnquota)

Cuando un usuario llega al límite suave o soft al crear o modificar un documento, algo como lo siguiente aaprecerá:

user2> ls -l > directorio.txt
sda3: warning, user block quota exceeded.

En este instante como el "user2" no ha llegado al límite "hard" ni ha expirado el tiempo de gracia, el sistema permite crear el archivo pero se le notifica con un warning.

Pero si lo que deseamos es notificar inmediatamente y via correo electrónico que un usuario llego a su límite, por ejemplo, un server de correo electrónico, un usuario que ha recibido spam y esta saturando su cuenta, puede ser notificado que su couta esta llegando al límite.

Para lo anterior usaremos el comando warnquota. Este comando simplemente invócalo desde la línea de comandos, sin argumentos, revisará los sistemas de archivos con cuotas activadas (quotaon) y revisará todos los usuarios buscando quien ha excedido el límite soft tanto por bloques como por inodos, y a aquellos que lo hayan excedido les enviará un correo notifícandoles de lo anterior.

Puedes agrgar en cron una línea como la siguiente para que warnquota haga su trabajo cada 12 horas:

#> vi /etc/crontab
...
0 0,12 * * * root /usr/sbin/warnquota
...

warnquota viene con los mensajes en inglés por defecto, el archivo de configuración es "/etc/warnquota.conf", es muy intuitivo y fácil de cambiar, personalízalo con los mensajes a español para que sea más fácil entender a tus usuarios que han excedido sus cuotas.

Copyright 2005-2008 Sergio González Durán
Se concede permiso para copiar, distribuir y/o modificar este documento siempre y cuando se cite al autor y la fuente de linuxtotal.com.mx y según los términos de la GNU Free Documentation License, Versión 1.2 o cualquiera posterior publicada por la Free Software Foundation.

autor: sergio.gonzalez.duran@gmail.com


Fuente: http://www.linuxtotal.com.mx/index.php?cont=info_admon_018


Sobre el Fstab

El fstab es el archivo donde se guardan los diferentes datos sobre el montaje de los dispositivos físicos.
Pese a lo que mucha gente piensa, el fstab no es tan solo de Linux, si nos que se encuentra en diversas plataformas, como la plataforma BSD o la Solaris.

COMPONENTES DEL FSTAB

El fstab se compone de 6 secciones:

# file system mount point type options dump pass

file system: Es el lugar donde se encuentra el dispositivo físico a montar, como por ejemplo
/dev/hda1, /dev/sda, etc.
mount point: Es el punto de montaje donde sera montado el dispositivo físico, este punto de montaje puede ser desde una carpeta del sistema como una carpeta creada por el usuario o el root, es decir, el punto de montaje es aquel que el usuario desee que sea.
type: Es el tipo de archivo con el que sera montado el dispositivo físico, este puede ser muy diverso, como por ejemplo, ext, swap, reiserf, etc.
options: Son las opciones con las que sera montado el dispositivo físico, existen muchas y diversas opciones. Las opciones mas usadas serán vistas mas adelantes en este mismo tutorial.
dump: Esta opcion solo puede poseer el valor 0 o 1, en ella se guardan los errores en tiempo de sistema que ha reportado el sistema de archivos. Al activarlo (1) se hará un backup con las opciones, creando backup por si surge algún tipo de problema, lo normal es tenerlo desactivado (0), ya que rara vez se produce un error.
pass: Esta opción puede poseer el valor 0 o N.N tiene que ser mayor a 0 y activa el orden en que el fsck escaneará las particiones en busca de errores. Si la activamos, el sistema realizara una pasada cada X desmontadas o si el dispositivo a sido desmontado incorrectamente para comprobar su integridad. En caso de estar desactivado (0), el sistema no realizara nunca ninguna pasada para comprobar la integridad del dispositivo físico, por ello es recomendable tenerlo en activado. Ejemplo: en la particion "/" podemos poner un 1 para ser verficado primero, y en "/home" particion un 2 para ser el siguiente.


OPCIONES DEL FSTAB

Las opciones son especificadas en la sección numero 4: Options (al final del tutorial veremos ejemplos sobre lineas del fstab para montar diversos dispositivos como cd-roms o pendrives).
Las opciones mas usadas son las siguientes
defaults: Esta opción es la unión de las opciones rw,suid,dev,exec,auto,nouser y async.
rw: READ-WRITE. Con esto montamos la partición para que sea posible tanto leer como escribir en el dispositivo físico, esta opción es muy usada con dispositivos que permiten la escritura como por ejemplo los pendrive o los disquets, ya que sin esta opción, no podríamos guardar datos en dichos dispositivos.
ro: READ-ONLY. Con esta opcion hacemos que no se pueda escribir en el dispositivo, que tan solo se pueda leer.
noexec: Impide la ejecución de cualquier archivo en el dispositivo en el que esta opción sea activada, esta opción suele ser muy útil cuando en una misma maquina diversos usuarios tienen acceso a un mismo dispositivo y no queremos que estos puedan ejecutar archivos en los dispositivos, con esto ganamos en seguridad, ya que impedimos que los usuarios puedan ejecutar cualquier tipo de archivo “maligno” a través del cual lo que realmente quiere conseguir es escalar privilegios en el sistema, por ejemplo.
nodev: con esto impedimos que puedan usarse nodos de dispositivo en el sistema de archivos, es decir, con esta opción impedimos que se interpreten los dispositivos especiales de bloques y de caracteres presentes en el dispositivo.
dev: Opción contraria a nodev, es decir, al activar esta opción permitimos que puedan usarse nodos de dispositivo en el sistema de archivos, o, lo que es lo mismo, que se interpreten como tal los dispositivos especiales de bloques y de caracteres presentes en el dispositivo.
auto: Con esta opción hacemos que el dispositivo que la contenga sea iniciado SIEMPRE que se inicie el sistema, es decir, cada vez que este sea encendido.
no auto: Esta es la opción contraria a auto, con ella hacemos que el dispositivo no sea montado al iniciarse el sistema, y tan solo sera montado en el momento en el que le vayamos a dar uso, esta opción suele ser usada con dispositivos como las disqueteras, cd-roms, pendrives..., es decir, todos aquellos dispositivos que no es necesario que se monte con el arranque del sistema.
user: Permite a cualquier usuario del sistema montar o desmontar un dispositivo físico sin necesidad de ser root, esta opción es muy útil para dispositivos de uso frecuente, como cd-roms o disquetes.
uid=X: Con esta opción indicamos que tan solo el usuario o el grupo con el uid especificado tiene el control sobre los archivos del dispositivo.
async: Con esto hacemos que las operaciones que realicemos no se hagan de forma asíncrona, es decir, en el mismo momento en que las realizamos, si nos que pueden ser realizada mas adelante.
sync: Es la opción contraria a async, con esta opción conseguimos que todas las modificaciones que hagamos sean “in situ” es decir, realizadas en el mismo momento en que sean realizadas.


EJEMPLOS FSTAB

Ahora ya sabemos de que se compone el fstab así y como las opciones mas comunes que este suele tener vamos a ver un par de ejemplos, estos ejemplos serán el de un cd-rom así y como el de un pendrive.
Antes de nada decir que las secciones son separadas a través del tabulador, según vemos en el encabezamiento del fstab es así
# file system mount point type options dump pass

muy bien, ahora pasemos a los ejemplos:

CD-ROM
el cd-rom sera montado en /media/cdrom0, asi que suponemos que esa carpeta existe, si nos podéis montarlo en cualquier otra o crear esa misma carpeta.

# file system mount point type options dump pass

/dev/hdd /media/cdrom0 iso9660 ro,user,noauto 0 0

aja, veamos como ha sido montado el cd-rom, para empezar el dispositivo físico se encuentra en /dev/hdd y sera montado en /media/cdrom0, el tipo sera iso9660, las opciones serán:
ro = solo lectura
user=cualquier usuario del sistema puede montar/desmontar así como usar este dispositivo
noauto= no sera montado montado con el sistema, es decir, sera montado solo cuando su uso sea necesario.
Después, dump esta desactivado al igual que pass, estas opciones ya han sido explicadas, asi que no volveremos a hacerlo.

PENDRIVE:
Ahora veremos como montar un pendrive, y este sera el ultimo ejemplo que realizaremos, suponemos que tenemos creada la carpeta pendrive en /mnt, esta vez no explicaremos las opciones usadas, simplemente os mostrare como esta montada en mi caso:

# file system mount point type options dump pass

/dev/sda /mnt/pendrive auto rw,user,noauto 0 1

Fuente: http://www.lugsaju.com.ar/2005/12/que-es-el-fstab.html

6/18/2008


Manual Kirchnerista para la comunicación oficial

• Aprópiese del merito del crecimiento: Luego de estar sumidos en el más profundo de los pozos económicos y sociales, es inevitable un efecto rebote. Si dicha recuperación viene acompañada de un viento de cola provisto por la coyuntura internacional, ud. deberá adoptar como propios los meritos circunstanciales. Evite comparaciones con otros países que crecieron a tasas similares sin haber devaluado ni haber caído en la peor crisis de su historia.
• Hágase la victima: interprete cualquier interpelación como un ataque.
• No responda preguntas: quedara en riesgo de no poder justificar lo injustificable.
• Siembre miedo político: más de dos décadas luego de la finalización de la dictadura militar, no omita hacer referencias a las mismas en toda comunicación y plantee que el fantasma y el riesgo de volver a dichas épocas es latente si no se siguen sus medidas. Recuerde mencionar la palabra “golpista” y “desestabilización” cuando hable de sectores opuestos a su ideología.
• El pasado es su mejor aliado: si esta imponiendo nuevas medidas económicas, mencione que se trata de todo lo contrario a lo que sucedía en la década del 90. Si por el contrario, se trata de medidas sociales las que desea aplicar, no omita recordar lo sucedido en el 2001.
• Si no consigue culpables en los años 70, 90 y 2000, acuda al capital extranjero. El mismo ya aprendió que no volverá a invertir en la argentina y no intentará defenderse.
• Colabore en una causa justa de Derechos Humanos: podrá usarlo para justificar todo tipo de aberraciones en otros campos de la materia. Siente a las organizaciones a las que ayudó en la primera fila de sus discursos para obtener credibilidad social.
• Haga uso de las estadísticas oficiales: en caso de no ser convenientes, se puede pedir su revisión interna.
Jamás olvide usar las siguientes palabras en sus discursos y declaraciones: “Redistribución de la riqueza”, “Gobierno popular”, “Defensa de la democracia”, “Renta extraordinaria”.

Si aun no puede justificar sus medidas, sigue sin encontrar culpables, y no quiere asumir su responsabilidad, culpe al crecimiento del cual Ud. se hizo artífice en un primer lugar.

Fuente: http://www.atlas.org.ar/articulos/articulos.asp?Id=11998

6/17/2008


Problemas

Nose que sucede con el servidor de Blogger o quizas sea un problema de los servidores de Speedy o que se yo, lo unico que se es que no puedo visualizar correctamente mi blog...es decir la pagina principal la veo sin modificaciones aunque ingrese nuevas entradas o modifique la plantilla. Espero que se resuelva, mientras tanto estoy utilizando Freebsd, viendo sus ventajas y desventajas frente a Linux. Este blog todavia no esta muerto je.Hasta pronto. Saludos!

6/15/2008


Por qué no es necesario desfragmentar en Linux?

Es una pregunta que sale con bastante frecuencia, ¿porqué no es necesario desgragmentar en Linux?

Aqui va la traducción de este artículo para los lectores que tienen dificultades con el inglés.

En lugar de intentar explicarlo con términos muy técnicos, he optado por un cuadro de ASCII dado que una imagen vale más que mil palabras.

Aquí está el cuadro que utilizaré para explicarlo

a b c d e f g h i j k l m n o p q r s t u v w x y z

a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
e 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
f 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
g 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
h 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
i 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
j 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
k 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
l 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
m 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
n 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
p 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
q 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
r 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
s 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
t 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
u 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
v 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
w 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
y 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
z 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Esto es una representación (muy pequeña) de un disco duro, completamente vacío - por eso a ceros.

El a-z en la parte superior y en el lado izquierdo del cuadro son utilizados para localizar cada byte individual de datos: el izquierdo superior es aa, superior derecho za y el último de la izquierda es az.

Estoy seguro van cogiendo la idea...

Empezaremos con un sistema de ficheros muy sencillo de una clase que seguro están muy familiarizados: uno que necesita defragmentar ocasionalmente.

Desde que los usuarios tanto de Windows como de Linux usan sistemas de ficheros FAT, aunque sea para discos flash USB, es un sistema de ficheros importante, aunque desafortunadamente padece de fragmentación.

Añadiremos un archivo a nuestro sistema de ficheros, y nuestro disco duro se parecerá a esto:

   a b c d e f g h i j k l m n o p q r s t u v w x y z

a T O C h e l l o . t x t a e l e 0 0 0 0 0 0 0 0 0 0
b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 T O C
e H e l l o , _ w o r l d 0 0 0 0 0 0 0 0 0 0 0 0 0 0
f 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

(Las filas vacías g-z se han omitido para más claridad)

Para explicar lo que están viendo: las primeras cuatro filas del disco se reservan para una "tabla de contenidos" o TOC.

Este TOC almacena la localización de cada fichero en el sistema de ficheros.

En el ejemplo anterior, TOC contiene un fichero, denominado "hello.txt", y nos dice que el contenido de este fichero se puede localizar entre ae y le.

Miramos esas posiciones y vemos que el contenido del fichero es "Hello, world".

¿Todo bien hasta aquí?

Añadimos ahora otro fichero:

 a b c d e f g h i j k l m n o p q r s t u v w x y z

a T O C h e l l o . t x t a e l e b y e . t x t m e z
b e 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 T O C
e H e l l o , _ w o r l d G o o d b y e , _ w o r l d
f 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Como se puede ver, el segundo fichero se ha añadido inmediatamente después del primero.

La idea aquí es que si todos los ficheros se guardan juntos, acceder a ellos será más rápido y fácil: la parte lenta del disco duro es la aguja, cuanto menos se tiene que mover, tanto más rápido se podrá leer/escribir.

El problema que esto causa lo podemos ver cuando decidimos editar nuestro primer fichero.

Digamos que queremos añadir algún símbolo de exclamación a nuestro "Hello" para que parezca más entusiasta.

Entonces tenemos un problema: no hay sitio para nuestro símbolo de exclamación en nuestro sistema de ficheros: el fichero "byte.txt" está en medio.

Tenemos solamente dos opciones, ninguna ideal:

  1. Borrar el fichero de su posición original, y añadimos el nuevo y más grande al final del segundo fichero.
  2. Fragmentamos el archivo, de manera que exista en dos sitios pero sin espacios vacíos.

Para ilustrarlo, aqui teneis una aproximación a la primera opción:

   a b c d e f g h i j k l m n o p q r s t u v w x y z

a T O C h e l l o . t x t a f n f b y e . t x t m e z
b e 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 T O C
e 0 0 0 0 0 0 0 0 0 0 0 0 G o o d b y e , _ w o r l d
f H e l l o , _ w o r l d ! ! 0 0 0 0 0 0 0 0 0 0 0 0

Y aquí a la segunda:

a b c d e f g h i j k l m n o p q r s t u v w x y z

a T O C h e l l o . t x t a e l e a f b f b y e . t x
b t m e z e 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 T O C
e H e l l o , _ w o r l d G o o d b y e , _ w o r l d
f ! ! 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Esta es la razón del porqué los sistemas de ficheros FAT necesitan defragmentar regularmente.

Todos los ficheros se sitúan justo a la derecha del anterior, así si algún fichero se agranda, se fragmenta.

Y si un fichero se reduce, deja un espacio.

Pronto el disco duro se convierte en una masa de fragmentos y espacios, y su rendimiento empieza a bajar.

Y luego está Linux. Que tiene una filosofía diferente.

Los sistemas de ficheros de windows son ideales si tienen un único usuario, accediendo a los ficheros en más o menos el orden en que son creados, uno detrás de otro.

Linux, sin embargo, está pensado como un sistema multi-usuario: está garantizado que tendrás más de un usuario intentando acceder a más de un fichero al mismo tiempo.

Así que se usa un enfoque diferente: cuando creamos "hello.txt" en un sistema de ficheros de Linux, se asemeja a lo siguiente:

   a b c d e f g h i j k l m n o p q r s t u v w x y z

a T O C h e l l o . t x t h n s n 0 0 0 0 0 0 0 0 0 0
b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 T O C
e 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
f 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
g 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
h 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
i 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
j 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
k 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
l 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
m 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
n 0 0 0 0 0 0 0 H e l l o , _ w o r l d 0 0 0 0 0 0 0
o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
p 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
q 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
r 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
s 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
t 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
u 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
v 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
w 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
y 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
z 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Y cuando añadimos el otro fichero:

a b c d e f g h i j k l m n o p q r s t u v w x y z

a T O C h e l l o . t x t h n s n b y e . t x t d u q
b u 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 T O C
e 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
f 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
g 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
h 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
i 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
j 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
k 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
l 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
m 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
n 0 0 0 0 0 0 0 H e l l o , _ w o r l d 0 0 0 0 0 0 0
o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
p 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
q 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
r 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
s 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
t 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
u 0 0 0 G o o d b y e , _ w o r l d 0 0 0 0 0 0 0 0 0
v 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
w 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
y 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
z 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Lo inteliente de este enfoque es que la aguja del disco está en la mitad, y la mayoría de ficheros, por término medio, están bastante cerca: así es como funcionan los promedios después de todo.

Cuando añadimos nuestros símbolos de exclamación a este sistema de ficheros, observad cuantos problemas causa:

   a b c d e f g h i j k l m n o p q r s t u v w x y z

a T O C h e l l o . t x t h n u n b y e . t x t d u q
b u 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 T O C
e 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
f 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
g 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
h 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
i 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
j 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
k 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
l 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
m 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
n 0 0 0 0 0 0 0 H e l l o , _ w o r l d ! ! 0 0 0 0 0
o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
p 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
q 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
r 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
s 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
t 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
u 0 0 0 G o o d b y e , _ w o r l d 0 0 0 0 0 0 0 0 0
v 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
w 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
y 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
z 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Correcto: absolutamente ningún problema.

Windows intenta poner todos los ficheros lo más cerca del comienzo del disco, lo que provoca que constantemente se fragmente los ficheros al modificarlos y no hay espacio libre disponible.

Linux esparce ficheros por todo el disco con lo que hay cantidad de espacio libre si el fichero cambia de tamaño.

También reordena ficheros al momento, dado que tiene cantidad de espacio vacío para barajar.

Defragmentar un sistema de ficheros de Windows es un proceso más intensivo y no muy práctico de ejecutar durante su uso habitual.

De esta forma la fragmentación sólo se convierte en un problema en Linux cuando un disco está tan lleno que no queda ningún espacio para insertar un fichero grande sin tener que partirlo.

Mientras el disco está lleno menos del 80 %, es bastante improbable que ocurra.

También vale la pena saber que cuando un sistema operativo nos indica que un disco está completamente defragmentado, a pesar de la naturaleza de la geometría del disco duro, la fragmentación puede seguir presente: un disco duro típico actualmente tiene múltiples discos en su interior.

Pongamos por ejemplo que nuestro disco duro está actualmente en dos platos, el primero de aa a zm y el segundo de an a zz:

   a b c d e f g h i j k l m n o p q r s t u v w x y z

a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
e 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
f 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
g 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
h 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
i 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
j 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
k 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
l 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
m 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

El siguiente fichero sería considerado no-fragmentado, porque va de una
fila m a la fila n, pero se ignora el hecho de que la aguja tendrá
quemoverse desde el final de un plato al principio del otro para poder
leer el fichero:

a b c d e f g h i j k l m n o p q r s t u v w x y z

a T O C h e l l o . t x t r m e n 0 0 0 0 0 0 0 0 0 0
b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
e 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
f 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
g 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
h 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
i 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
j 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
k 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
l 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
m 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 H e l l o , _ w o

a b c d e f g h i j k l m n o p q r s t u v w x y z

n r l d ! ! 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
p 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
q 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
r 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
s 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
t 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
u 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
v 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
w 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
y 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
z 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Espero esto haya ayudado a entender porqué no viene ningún programa de defragmentación en una instalación de Linux.

Fuente: http://itaca.nireblog.com/post/2006/08/19/por-que-no-es-necesario-desfragmentar-en-linux

6/09/2008


Come back....

Muchos tenemos una vida, pero el tiempo es uno solo y desde el comienzo de nuestros tiempos lo controlamos a través de algo que denominados ¨relog¨...lo hubo y habrá de todas las formas, pero qué es el tiempo??.
Me gusta tener un blog pero también tengo que disfrutar la vida, y desconectarse un buen tiempo de la rutina diaria es buena...nose para usted, pero para mí si. Siempre tuve miedo, miedo de no llegar a tiempo a qué? No lo sé, una sensación rara de alcanzar lo imposible, de querer saber más...algo practicamente imposible.
Hay muchas frases que perduran en mi mente y quizás ayude a mas de uno:
*Este mundo no es para los tímidos.
*Si tienes ganas de matarte y lo quieres hacer, es porque no sos lo suficientemente fuerte para soportar un golpe mas duro en el futuro.
*Cosecharas lo que siembres.
*No le hagas a los demás, lo que no quieras que te hagan a ti mismo.
Bueno he regresado, se que más de uno leerá esto ja y también se que mas de uno lo pensará...Saludos!