Archivo etiqueta PCL

Montando sistemas de archivos en Linux

62/365 (Stuff Goes Here)

Si buscamos para qué se usan los sistemas de archivos encontraremos en Wikipedia que básicamente “…estructuran la información guardada en una unidad de almacenamiento (normalmente un disco duro) de una computadora, que luego será representada ya sea textual o gráficamente utilizando un gestor de archivos”. Dicho de otro modo, los sistemas de archivos organizan de forma lógica los datos que se almacenan en diferentes sectores o áreas de un dispositivo para que estos sean vistos por el usuario como archivos o carpetas. En general existen muchos sistemas de archivos debido a que algunos , por ejemplo, extienden las características antes mencionadas incorporando funciones de recuperación en caso de fallos, otros están diseñados para medios específicos como un CD-ROM, y otros pueden publicar vía red archivos y carpetas.

Veamos ahora los sistemas de archivos en Linux…

Leer el resto de la entrada »


,

No hay Comentarios

anacron, el complemento de cron

reloj

Para programar tareas como la rotación de las bitácoras o la actualización de los repositorios del sistema se utiliza el demonio cron. Estas tareas comúnmente son planificadas para ejecutarse en la madrugada o en otro período de poco uso del sistema. Pero si el PC está apagado en el momento en que la tarea fue programada, entonces esta no será ejecutada por cron.

Anacron es una aplicación que ejecuta tareas programadas al igual que cron pero asumiendo que el sistema no está encendido todo el día. La finalidad de anacron es controlar la ejecución de tareas críticas que no pueden pasarse por alto, las cuales cron no correrá una vez que se haya encendido el sistema ya que su tiempo de ejecución expiró.

En ese sentido, anacron es un complemento de cron para sistemas que no están encendidos las 24 horas del día (como laptops y PCs de escritorio) o para garantizar la ejecución de tareas críticas, incluso si el sistema tiene una interrupción temporal.

Funcionamiento de anacron

Cuando anacron se ejecuta lee un lista de tareas definidas en el archivo /etc/anacrontab. Cada entrada en este archivo especifica un período en días, un retardo en minutos, un identificador de tarea único y un comando a ejecutar. Analicemos el archivo /etc/anacrontab que viene en el sistema:

Tiempo en días Retardo Identificador Comando
1 5 cron.daily run-parts /etc/cron.daily
7 10 cron.weekly run-parts /etc/cron.weekly
@monthly 15 cron.monthly run-parts /etc/cron.monthly

Tomemos como ejemplo la segunda línea. Esta indica que la próxima vez que se corra anacron se revisará si han pasado 7 días desde la última ejecución, consultado la fecha en el archivo /var/spool/anacron/cron.weekly. De ser así se volverán a correr los scripts del directorio /etc/cron.weekly una vez que hayan pasado 10 minutos después de la ejecución de anacron.

Como comenté previamente, el identificador de tarea debe ser único. Esto es porque anacron creará un archivo en el directorio /var/spool/anacron para cada una de las tareas con su identificador. Allí se guardará la fecha de la última ejecución de la tarea por parte de anacron, de forma que se pueda comparar con el primer campo (el de tiempo en días). Vamos a comprobar esto:

moody:~# ls /var/spool/anacron/
cron.daily  cron.monthly  cron.weekly

Efectivamente, anacron creó un archivo por cada identificador de tarea especificado en el /etc/anacrontab. Ahora veamos el contenido de uno de ellos:

moody:~# cat /var/spool/anacron/cron.weekly
20090323

Esto indica que el día 23/03/2009 se ejecutaron los scripts del directorio /etc/cron.weekly, que es el comando programado en la segunda línea del archivo /etc/anacrontab de nuestro ejemplo.

¿Cuándo se ejecuta anacron?

A diferencia de cron, anacron no es un demonio, es decir, no está corriendo todo el tiempo. De hecho solo corre a través de scripts de inicio del sistema o a través de tareas programadas de cron.

¿Sustituye anacron a cron?

No. Con anacron no se pueden programar tareas en intervalos menores a días, mientras que con cron se pueden planificar tareas a ser ejecutadas en horas o minutos. Por otro lado, anacron no ejecuta tareas en tiempo específicos como cron hace.

Referencias

,

No hay Comentarios

apt vs aptitude

Debina logo 2D

Tanto apt (apt-get, apt-cache) como aptitude son comandos para la administración de paquetes desde la consola de texto en Debian y distribuciones derivadas como Ubuntu.  De hecho, ambos consultan los repositorios según el archivo /etc/apt/sources.list y usan los paquetes obtenidos desde dichos repositorios. Pero aún mucha gente sigue usando apt-get para instalar los paquetes siendo aptitude la mejor opción.  Inclusive, si buscamos en tutoriales o manuales en Internet podremos fijarnos que la mayoría de ellos hacen mención casi exclusivamente a apt-get y no a aptitude.

Quizás esto último se deba a que apt-get fue primero y la gente se acostumbró a usarlo. Por ejemplo, el otro día hablando con un amigo le comento que se cambie a aptitude ya que es mejor que apt-get, y la respuesta que me dio fue algo como: “mmm…yo no tengo problemas con apt. Además, si apt-get aún sirve para qué usar aptitude?”. Bien, veamos el por qué :

Las dependencias

La respuesta es que aptitude tiene mejor resolución de dependencias de paquetes que apt-get.  De hecho al momento de instalar un paquete que genera conflictos, aptitude sugiere soluciones a esos conflictos, mientras que apt-get no. Por otro lado,  apt-get no remueve las dependencias de paquetes no utilizados mientras que aptitude si.  En el siguiente ejemplo instalaremos y desinstalaremos el paquete junior-games-card con apt-get y luego con aptitude para demostrarlo:

apt

Empezamos a instalar con apt-get:

arthur:~# apt-get install junior-games-card
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following extra packages will be installed:
ace-of-penguins blt cdd-common junior-config junior-tasks pysol python-tk python2.4
python2.4-minimal tcl8.4 tk8.4
Suggested packages:
blt-demo cdd-doc pysol-cardsets python-tk-dbg tix python2.4-doc python-profiler
binfmt-support tclreadline
The following NEW packages will be installed:
ace-of-penguins blt cdd-common junior-config junior-games-card junior-tasks pysol python-tk
python2.4 python2.4-minimal tcl8.4 tk8.4

0 upgraded, 12 newly installed, 0 to remove and 23 not upgraded.
Need to get 9363kB of archives.
After this operation, 30.9MB of additional disk space will be used.
Do you want to continue [Y/n]?

Ahora vamos a desinstalar:

arthur:~# apt-get remove junior-games-card
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following packages were automatically installed and are no longer required:
pysol python2.4-minimal python2.4 junior-tasks blt python-tk junior-config tcl8.4 tk8.4
ace-of-penguins cdd-common
Use ‘apt-get autoremove’ to remove them.

The following packages will be REMOVED:
junior-games-card

0 upgraded, 0 newly installed, 1 to remove and 23 not upgraded.
After this operation, 61.4kB disk space will be freed.
Do you want to continue [Y/n]

Malo, malo…solo desinstala junior-games-card y no sus dependencias (cosa que debería hacer porque ningún otro paquete las están utilizando).  Coloqué en rojo el mensaje de advertencia de apt-get  que indica que si se quiere eliminar las dependencias hay que usar la opción ‘autoremove’, la cual estoy casi que seguro que nadie usa o conoce de su existencia.

aptitude

Ahora el turno de aptitude:

arthur:~# aptitude install junior-games-card
Reading package lists… Done
Building dependency tree
Reading state information… Done
Reading extended state information
Initializing package states… Done
Reading task descriptions… Done
The following NEW packages will be installed:
ace-of-penguins{a} blt{a} cdd-common{a} junior-config{a} junior-games-card junior-tasks{a}
pysol{a} python-tk{a} python2.4{a} python2.4-minimal{a} tcl8.4{a} tk8.4{a}

0 packages upgraded, 12 newly installed, 0 to remove and 23 not upgraded.
Need to get 9363kB of archives. After unpacking 30.9MB will be used.
Do you want to continue? [Y/n/?]

Ahora vamos a desinstalar:

arthur:~# aptitude remove junior-games-card
Reading package lists… Done
Building dependency tree
Reading state information… Done
Reading extended state information
Initializing package states… Done
Reading task descriptions… Done
The following packages will be REMOVED:
ace-of-penguins{u} blt{u} cdd-common{u} junior-config{u} junior-games-card junior-tasks{u}
pysol{u} python-tk{u} python2.4{u} python2.4-minimal{u} tcl8.4{u} tk8.4{u}
0 packages upgraded, 0 newly installed, 12 to remove and 23 not upgraded.

Need to get 0B of archives. After unpacking 30.9MB will be freed.
Do you want to continue? [Y/n/?]

Queda en evidencia cual es más eficiente: aptitude.

Usando apt vs. aptitude

Pero no solamente tenemos el problema de las dependencias. Resulta que usar apt es más “complejo” que usar aptitude, ya que hay que recordar las combinaciones de órdenes y opciones, mientras que con aptitude solo hay que recordar las opciones. Veamos esto:

apt

Orden Opción Nombre de paquete Descripción
apt-get update Obtiene la lista de paquetes desde el repositorio
apt-get install junior-games-card Instala el paquete junior-games-card
apt-cache search junior-games-card Busca el paquete junior-games-card
apt-get upgrade junior-games-card Actualiza el paquete junior-games-card
apt-cache show junior-games-card Muestra la descripción del paquete junior-games-card
apt-get remove junior-games-card Desinstala el paquete junior-games-card , pero deja sus archivos de configuración
apt-get remove –purge junior-games-card Desinstala el paquete  junior-games-card junto con sus archivos de configuración

aptitude

Orden Opción Nombre de paquete Descripción
aptitude update Obtiene la lista de paquetes desde el repositorio
install junior-games-card Instala el paquete junior-games-card
search junior-games-card Busca el paquete junior-games-card
upgrade junior-games-card Actualiza el paquete junior-games-card
show junior-games-card Muestra la descripción del paquete junior-games-card
remove junior-games-card Desinstala el paquetejunior-games-card , pero deja sus archivos de configuración
purge junior-games-card Desinstala el paquete  junior-games-card junto con sus archivos de configuración

Aquí vemos que aptitude es más fácil de aprender y usar !

¿Quieres más?

Aun no estás convencido de que aptitude es lo mejor que puedes usar, mira de lo que te pierdes si no utilizas aptitude :

  • Ofrece acceso a todas las versiones de los paquetes
  • Lleva un registro de las acciones que ejecuta en la bitácora /var/log/aptitude
  • Muestra la salida de las búsquedas de paquetes más ordenada y útil que apt-cache  (además que solo busca en los nombre de paquetes)
  • Puede instalar de forma automática paquetes recomendados (ver opción -r en el manual)
  • Puede instalar tareas predefinidas (ver man tasksel)

Referencias:

,

6 Comentarios