Categorias: Linux

Oct182008

Programación de Tareas

A veces puede resultar útil poder programar el sistema para que realice tareas a una hora determinada. En esta receta veremos dos maneras de hacerlo.

at

La utilidad at nos permite ejecutar tareas a una determinada hora. Si no la tenéis en el sistema, basta con instalar el paquete at de la manera estándar.

Por ejemplo, vamos a programar que aparezca el eye-of-gnome a las 12:05. Para ello, ejecutamos en un terminal el comando at, indicando a continuación la hora a la que debe comenzar la tarea. Como veréis, aparece un prompt en el que indicaremos las tareas que queremos que se ejecuten, una por línea. Para salir del prompt, hay que pulsar Ctrl+D. Aparecerá un mensaje confirmando la hora y el número de la tarea (job).


$ at 12:05
warning: commands will be executed using /bin/sh
at> eog
at>
job 2 at Fri Oct 17 12:05:00 2008

A menudo, lo que queremos es ejecutar varias tareas, pero en un orden secuencial, no todas a la vez (vamos, lo que viene siendo un script). Suponiendo que queramos ejecutar mistareas.sh, haremos lo siguiente:


$ at -f miscript.sh 13:45
warning: commands will be executed using /bin/sh
job 4 at Fri Oct 17 13:45:00 2008

También se podría poner miscript.sh como una tarea en el modo interactivo del prompt, siempre y cuando tenga los permisos adecuados de ejecución.

Cabe destacar que con at, las tareas quedan programadas para una sola vez, y se borran después de ejecutarse. Es decir, al día siguiente no volverán a ejecutarse.

Si queremos borrar una tarea que tenemos programada, debemos conocer primero su número (el que sale al programarla). Para borrarla, utilizamos atrm. Si no conocemos el número de la tarea o lo hemos olvidado, podemos consultar las tareas programadas con la opción -l:


$ at -l
4 Fri Oct 17 13:45:00 2008 a nacho
$ atrm 4
$ at -l
$

cron

Cron es una herramienta que permite la ejecución de tareas periódicamente en varios intervalos: horario, diario, semanal y mensual. Su utilización es más sencilla que la de at: Basta con guardar el script que queramos ejecutar (éste no tiene modo interactivo) en el directorio correspondiente a cuándo queremos que se ejecute.:

  • Cada hora: /etc/cron.hourly/
  • Cada día: /etc/cron.daily/
  • Cada semana: /etc/cron.weekly/
  • Cada mes: /etc/cron.monthly/

Esta simplificación de uso es específica de Debian (y derivados quizá). Aunque la funcionalidad es posible conseguirla en otras distribuciones, no es tan sencillo (y puede que los directorios mencionados no existan).

Para saber exactamente cuándo se van a ejecutar las tareas, echamos un vistazo al fichero /etc/crontab. Éste es el mío:

# m h dom mon dow user  command
 17 *  *   *   *  root    cd / && run-parts --report /etc/cron.hourly
 25 6  *   *   *  root    test -x /usr/sbin/anacron || ( cd / && run-parts
--report /etc/cron.daily )
 47 6  *   *   7  root    test -x /usr/sbin/anacron || ( cd / && run-parts
 --report /etc/cron.weekly )
 52 6  1   *   *  root    test -x /usr/sbin/anacron || ( cd / && run-parts
--report /etc/cron.monthly )

Las columnas indican lo siguiente:

  • m = minute (minuto)
  • h = hour (hora)
  • dom = day of month (día del mes)
  • mon = month (mes)
  • dow = day of week (día de la semana)

Por lo tanto, mi crontab indica que:
- Las tareas “horarias” se ejecutarán en el minuto 17 de cada hora.
- Las tareas diarias se ejecutarán a las 6:25
- Las tareas semanales se ejecutarán el séptimo día de la semana, a las 6:47 (0 y 7 indican Domingo, 1 es Lunes, etc…)
- Las tareas mensuales se ejecutarán el día 1 de cada mes, a las 6:52

Fuente

Oct132008

GNU IceCat El Navegador Libre

GNU IceCat, antes conocido como GNU IceWeasel, es un navegador web distribuido por el Proyecto GNU. IceCat, que está hecho completamente de software libre, es un fork de Mozilla Firefox. Es compatible con el sistema operativo GNU/Linux.

El proyecto GNU pretende con IceCat a proporcionar una versión del navegador Mozilla Firefox que se conserva en la sincronización con el desarrollo de fases previas de Firefox, mientras se quitan lo software gráficos y plug-in que son clasificados como no-libres.

Características

La principal ventaja de GNU IceCat es que es enteramente de software libre.

Las diferencias con el lanzamiento oficial de Firefox:

  • Contiene sólo el software libre
    • La sustitución de la gráficos propietarios con gráficos libres
    • La eliminación de la propiedad de “talkback” crash sistema de información (debido a su no-libre “sólo la distribución de binarios” la concesión de licencias)
    • El uso de un buscador de plug-ins libres
  • Características de seguridad
    • URLs de redirección para sitios peligrosos.
    • Rechazo de cookies potencialmente peligrosas.

Instalando IceCat en Ubuntu/Debian

  1. $ cd home/TU USUARIO/Escritorio
  2. $ wget ftp://ftp.gnu.org/gnu/gnuzilla/3.0.3-g1/icecat-3.0.3-g1-i386.tar.bz2
  3. $ tar jvxf icecat-3.0.3-g1-i386.tar.bz2
  4. $ sudo su / su
  5. Contraseña
  6. # mv icecat-3.0.3-g1 /opt
  7. # cd ..
  8. # cd /opt
  9. # cd icecat-3.0.3-g1
  10. # ./icecat

Agregar soporte para Flash a IceCAT

  1. sudo apt-get installl gnash
  2. $ sudo su / su
  3. Contraseña:
  4. # ln -s /usr/lib/gnash/libgnashplugin.so /opt/icecat-3.0.3-g1/plugins
  5. # exit
  6. $ /opt/icecat-3.0.3-g1/icecat &

Con esto tenemos nuestro iceCAT funcionando ala Perfeccion

Agregando Icono al panel

  1. Clic Derecho sobre el panel
  2. Añadir al Panel
  3. Lanzador de aplicación personalizado
  4. Agregamos la Siguiente configuración:

Tipo: Aplicación
Nombre: Gnu IceCAT
Comando: /opt/icecat-3.0.3-g1/icecat &
Comentario: iceCAT Gnu browser
Imagen: a elegir

Fuente

Oct122008

¿Qué puedes hacer por Lenny?

Todos esperábamos con ansias la liberación de debian lenny el mes de septiembre, sin embargo no fue así, la razón: Demasiados bugs críticos.

Les dejo el enlace del mensaje en debian-devel-announce. En este mail, además de que explican el por qué de este retraso, hacen un listado de como pueden colaborar usuarios, developers, y cualquiera para que esta versión de debian sea liberada.

Fuente

Oct112008

¿Conocías… DOSBox?

Por desgracia los usuarios de GNU/linux aún tenemos que recurrir a un Windows para hacer ciertas tareas. En ocasiones estamos forzados a programar un determinado lenguaje en Windows, ya que el compilador usado puede hacer que el resultado difiera, o incluso el código fuente.

Por otro lado y especialmente para los que tengan alguna cana que otra que peinar, ¿No has deseado alguna vez jugar a un juego de hace varios años, de esos que iban en DOS? Pues para todo esto en el fondo no hace falta reiniciar, ni virtualizar una máquina Windows, tenemos DOSBox.

Desde hace unas semanas, un compañero y yo estamos haciendo el juego de las parejas en ensamblador. Ambos usamos Ubuntu y nos daba rabia tener que ir a Windows sólo para poder ejecutar MASM, el compilador que usamos para ensamblador. Es cierto que hay compiladores de este (y otros lenguajes) en GNU/Linux, pero en ocasiones la sintaxis puede ser distinta e incluso el resultado.

Estuvimos buscando una solución y dimos con DOSBox. Es una aplicación que genera una ventana de DOS donde podemos montar una unidad virtual de un directorio determinado. Pero antes de entrar en detalles de uso, instalémoslo, y como todo lo que encontráis en esta sección, está en vuestro aptitude/apt-get:

$ sudo aptitude install dosbox

Ya descargado e instalado abrámoslo: Alt+F2, escribimos dentro dosbox y le damos al Enter. Ahora veréis la ventana que os comentaba y con el prompt típico de DOS en la unidad virtual Z.

Imaginemos que tenemos un directorio en nuestro sistema de ficheros de Linux que contiene el código fuente de nuestro programa, junto con su compilador, etc. En mi caso está en /home/ceec/ec. Para crear una unidad virtual en DOSBox y poder acceder a esa carpeta, haremos lo siguiente dontro de nuestra ventana:

Z:\> mount c /home/ceec/ec

Y para acceder, pues como si fuera MS-DOS. El único problema que vuestro teclado estará en inglés y además de no tener ‘ñ’ algunas teclas importantes estarán cambiadas. Por ejemplo y la más fundamental, los dos puntos ‘:’ se consiguen mediante Shift+Ñ. Es una pega menor dentro de lo que cabe.

Z:\> c:
C:\> dir

Si os supone un inconveniente, podéis solucionarlo bajando este programa. Descomprimid el archivo “keyb.exe” a la carpeta que vais a montar (si ya lo habéis hecho es probable que tengáis que salir y volver a hacerlo), o una dentro de esta de tal forma que podáis llegar a él a través del comando “cd”. Una vez montada la unidad y situados donde está el archivo teclead:

C:\> keyb sp

Ya tendréis el teclado en español. Gracias a TempWin por el aporte de esta solución.

Ya vemos el contenido de la carpeta que queríamos en la unidad montada. Supongo que sabéis las órdenes básicas de MS-DOS.

Básicamente DOSBox nos vale para casi cualquier programa/juego/compilador de MS-DOS. Los programadores os podéis encontrar alguna pega, pero en general es difícil. Además los juegos que probéis con DOSBox podréis disfrutarlos con sus sonidos.

Finalmente os dejo con una captura de mi escritorio con cuatro DOSBox funcionando a la vez: Uno que muestra la compilación con MASM de un fuente de ensamblador, otro que muestra el compilador TurboC (instalado desde el propio DOSBox), otro con el famoso Prince of Persia y otro con el inigualable Doom:

Fuente

Oct22008

VLC media player actualizado

Al escribir estas letras todavía no hay anuncio oficial de la versión 0.9.3. Lo que sí sabemos es que ya podemos descargar esta nueva versión desde su ftp (.tar.bz2).

Recordemos que vlc es un reproductor multimedia gpl y multiplataforma con soporte para muchos formatos: avi, mpg, ogg, mp3, etc.

Fuente

Sep272008

BlueProximity – Bloquea y Desbloquea con tu Celular

BlueProximity, Software que permite a nuestro sistema tener mas seguridad y funciona como un detector de presencia, usando la tecnología bluetooth.

En simples palabras funciona

El programa detecta la presencia de un dispositivo bluetooth a su alcance y el cual debe de estar emparejado al alejarse del equipo corre un comando el cual puede ser bloquear y activar el salvapantallas y al volver a acercarse al equipo este mismo puede desactivarlo y volver a trabajar normalmente. Cabe mencionar que puedes ejecutar cualquier comando shell, cuando te alejas o acercas..

Instalando Blueproximity

Hay 2 maneras

  1. Bajando el codigo Fuente   -   blueproximity-1.2.5.tar.gz
  2. Descargando el paquete .deb   -   blueproximity_1.2.5-0ubuntu1_all.deb

Para Instalar sin problemas tenemos que agregar el siguiente soporte de python

$ sudo apt-get install python-glade2 python-configobj python-bluez

Configurando blueproximity

Recuerden que antes de todo deben de tener emparejado su celular con su equipo.

Fuente

Sep222008

Awesome WM

Awesome es un manejador de ventanas altamente configurable, ligero y muy peculiar. Utiliza layouts para manejar y organizar las ventanas en el espacio de la pantalla, tiene una status bar, espacios de trabajo entre otras cosas. Una de las cosas que más me llamó la atención es que carece de un menú, se utiliza el teclado para manejar este escritorio, el mouse en este escritorio no es importante, sin embargo lo utilizaremos cuando estemos navegando o editando imagenes con el gimp o alguna otra cosa que requiera el uso del mouse.

Si quieren probarlo le dejo unos key bindings:

  • Mod4 + F2 : Para ejecutar una aplicación
  • Mod4 + Return : Para abrir una terminal
  • Mod4 + 0-9 : Para moverse entre los espacios de trabajo
  • Mod4 + Shift + q : Para salir de awesome

Con estos cuatro es suficiente para que comienzen, podrían empezar por abrir una terminal y escribir man awesome para conocer más de este manejador de ventanas.

Les dejo el screenshot, recuerdo haber visto un video de este escritorio y después de poner la X puse awesome para probar mientras terminaba de armar mi debian, se ha convertido en mi segundo WM favorito después de fluxbox y antes de xfce :P

Fuente

Sep162008

¿Conocías… SSHFS?

racias a esta aplicación podréis tener una carpeta en un PC remoto y trabajar con/en ella como si fuera local, con transparencia total y la seguridad que ofrece SSH al estar usándose por debajo.

Como siempre en esta sección está al alcance de tu aptitude/apt-get:

$ sudo aptitude install sshfs

SSHFS necesita el módulo “fuse” para poder funcionar, por lo que tendréis que ejecutarlo siempre. Para que no lo tengáis que hacer a mano y lo cargue el sistema automáticamente (y para comprobar si ya lo cargáis o no), abrid el fichero /etc/modules y comprobad si está:

$ sudo gedit /etc/modules

Si está, no tenéis que hacer nada más, cerrad gedit. Los que no lo tengáis simplemente agregad “fuse” al final del fichero por ejemplo, guardáis y cerráis gedit.

Los que lo hayáis metido ahora tenéis dos opciones para cargar fuse, reiniciar y que se cargue automáticamente mediante el archivo modules o cargarlo manualmente hasta que reiniciéis. Supongo que preferís la segunda opción:

$ sudo modprobe fuse

Hecho esto el último requerimiento que necesitamos es tener el servidor SSH funcionando.

En cuanto a configuración tan sólo tenéis que agregar vuestra cuenta al grupo que tiene acceso a fuse:

$ sudo usermod -G fuse -a tu_cuenta

Os aconsejo que ahora reiniciéis el entorno gráfico (Ctrl+Alt+Backspace) para tener la certeza de que se aplique vuestra adicción al agregado grupo, en caso contrario es muy probable que os dé un error de permisos si seguís adelante.

En el fondo ya está todo. Tenéis todo listo para montar la carpeta remota en vuestra carpeta local. Vamos a probarlo. Cread una carpeta donde queráis. Para que os sirva de ejemplo voy a crear la carpeta “pepino” en “/home/ceec/”. Tan sólo teneíes que cambiar “ceec” por vuestra cuenta en los siguientes pasos.

$ mkdir /home/ceec/pepino

La carpeta “pepino” va a ser el punto de montaje de la carpeta remota. Es decir, cuando acceda a “pepino” voy a acceder a la carpeta del otro ordenador. En principio para montarla tan sólo tenéis que hacer esto:

$ sshfs ceec@192.168.1.4:/home/ceec /home/ceec/pepino/

Los que ya sabéis cómo funciona SSH no os habréis sorprendido, los que no tranquilos, es fácil de entender:

  • sshfs es el comando que va a realizar el montaje remoto
  • ceec es la cuenta a la que tenéis acceso en el equipo remoto. En mi caso es el portátil y se llama también ceec, como en el equipo de sobremesa.
  • 192.168.1.4 es la ip del portátil en la red local. Puede usarse perfectamente una IP pública (la de internet) para acceder desde el trabajo a casa por ejemplo.
  • /home/ceec es la carpeta del ordenador remoto que quiero montar en…
  • /home/ceec/pepino/ que es la carpeta del equipo que tengo delante.

Supongo que ya lo habéis entendido bien. Pero hay un pequeño problema. Si no habéis sido previsores funcionará sin problema ya que SSH y por consiguiente SSHFS usan el puerto 22 por defecto. Si no habéis seguido el manual de SSH donde os recomendaba entre otras cosas que cambiarais el puerto os habrá funcionado. Los que sí me hicieran caso, no les habrá funcionado porque el puerto que usáis en SSH no es el 22.

Para indicarle a SSHFS qué puerto hay que usar es igual que en SSH, es decir:

$ sshfs -p 8448 ceec@192.168.1.4:/home/ceec /home/ceec/pepino/

Siendo 8448 el puerto del ordenador remoto. Ahora no debería daros ningún problema. Id a la carpeta que hayáis montado (en el ejemplo /home/ceec/pepino/), entrad y veréis que aparecerán todo lo que tuviérais en la carpeta que le hayáis indicado del equipo remoto (en el ejemplo /home/ceec).

A partir de este momento, todo lo que borréis, añadáis, modifiquéis… de esa carpeta, lo haréis también de la carpeta del otro ordenador.

Tan sólo queda un detalle por enseñaros. Una vez montada la carpeta… ¿cómo se desmonta?

$ fusermount -u /home/ceec/pepino

Listo. Es un buen método para tener algo de vuestro ordenador siempre accesible, o bien para trabajar directamente sobre tus archivos remotos, o bien para compartir lo que queráis a modo de FTP casero o algo parecido. Hay otras alternativas como SFTP y SAMBA, pero hay un punto a favor muy bueno para usar SSHFS, su facilidad de instalación, configuración, uso y, sobre todo, su seguridad ya que toda la información que viaje de un equipo al otro estará encriptada.

Sep112008

¿Conocías… netspeed?

Seguro que muchos de vosotros (por no decir todos xD) usáis algún p2p que otro y os gusta echar un vistazo de vez en cuando para ver cómo de bien o de mal está descargando. O bien sois de los que simplemente les gusta tener siempre presente el tráfico de red. Os propongo usar netspeed.

netspeed es un applet para el panel de GNOME que os mostrará la velocidad de subida y bajada de vuestra conexión, es decir, os monitorizará la conexión. Así se muestra en el panel:

No tiene excesivas opciones de configuración, pero teniendo en cuenta que su función es simplemente mostrarnos las velocidades de la red, no necesita mucho más. Estas son:

Para instalarlo, pues como siempre:

$ sudo aptitude install netspeed

Y para agregarlo al panel, hacéis botón derecho sobre él, seleccionad “Añadir al panel…“, iros a la penúltima sección, “Sistema y hardware“, y aparecerá como “Monitor de la red“. Ojo, no lo confundáis con “Monitor de red“, que es otro distinto.

Personalmente prefiero netspeed o cualquier applet de este tipo antes que un widget de escritorio o algo similar porque lo tengo siempre visible (ya que el panel también lo es) y creo que es elegantemente simple a la vez que simplemente elegante ;)

Fuente

Sep102008

¿Conocías… Htop?

Hay muchos usuarios linxueros que viven la consola, bien por que les gusta o bien porque es evidente que en muchas ocasiones es más efectiva para ciertas cosas.

Hoy os traigo una aplicación muy recomendable para estos usuarios y que en ciertos casos puede ser de súmamente práctica, Htop.

¿Qué es htop?

htop es una pequeña aplicación que nos muestra los procesos y nos permite gestionarlos. También nos enseña el estado de la memoria, la swap y el consumo de CPU. El análogo gráfico es el “Monitor de sistema“.

Para consola, el comando que se suele usar para ver los procesos era ps, como vimos en el manual de comandos. Sin embargo este comando sólo muestra los procesos, lo que implicaba usar otros comandos adicionales para gestionarlos.

Puede que alguno conozca “top“, que con casi toda probabilidad ya lo teneís instalado. htop es una versión mejorada del anterior:

  • Puedes hacer scroll vertical y horizontal
  • Soporte para colores
  • Carga más rápido
  • Para matar un proceso no necesitas introducir el número de éste, tan sólo situarte sobre él y matarlo
  • Tampoco lo necesitas para establecer la prioridad del proceso
  • Tiene soporte para ratón

La diferencia merece la pena

Instalar htop

Pues como siempre, en consola:

$ sudo aptitude install htop

Gráficamente buscad “htop” en el gestor de paquetes Synaptic.

Ejecutar htop

Podéis ejecutarlo a través de “Aplicaciones > Herramientas del sistema > Htop“, o desde consola:

$ htop

Os aparecerá algo parecido a esto:

Como véis es bastante intuitivo para tratarse de una aplicación en modo texto. En la zona superior izquierda tenemos el consumo de CPU (en la captura aparecen dos ya que mi procesador es de doble núcleo), la memoria RAM y la memoria SWAP.

En la zona izquierda nos indica los procesos totales, cuántos se están ejecutando, la media de carga, y el tiempo que lleva el sistema en pie.

Finalmente en la zona inferior tenemos la lista de procesos con toda la información referida a estos, su PID (identificador de proceso), consumo de memoria y cpu, usuario, el comando, etc. Como os comenté antes podéis hacer scroll bajando con las flechas. Del mismo modo podéis seleccionar el proceso deseado, o bien con el ratón.

Funciones de htop

Abajo del todo veis una barra con un menú de opciones accesibles mediante las teclas de función que se muestran a la izquierda de la opción en cuestión, aunque también son accesibles mediante click del ratón:

  • F1 – Help: La ayuda del programa. Os muestra entre otras cosas las teclas de acceso para las distintas funciones. También accesible mediante la tecla ‘h‘ (minúscula).
  • F2 – Setup: Entráis en la configuración. Podéis cambiar lo que queréis que os muestre, de qué forma, con qué colores, configurar las columnas… También accesible mediante la tecla ‘S‘ (mayúscula).
  • F3 – Search: Nos permite buscar un proceso por su nombre (comando). También accesible mediante la tecla ‘/‘.
  • F4 – Invert: htop nos muestra los procesos ordenados por una de sus columnas. En la captura anterior se ve que están ordenados por consumo de CPU (se ve de otro color). Esta opción permite ordenarlos de forma inversa, si inicialmente se muestra de mayor a menor consumo, al ejecutar esta opción lo haría de menor a mayor consumo. También accesible mediante la tecla ‘I‘ (mayúscula).
  • F5 – Tree: Muestra los procesos en forma de árbol. Los procesos son independientes pero muchos están relacionados, unos se crean a partir de otros y a la vez pueden generar otros procesos hijos. Con esta opción podemos ver dichas relaciones en la columna “Command“. También accesible mediante la tecla ‘t‘ (minúscula).
  • F6 – SortBy: Como dije antes, los procesos están ordenados según una columna. Con esta opción podéis definir cómo ordenarlos, si por consumo de CPU,memoria, usuario, PID, etc… También accesible mediante la tecla ‘>‘.
  • F7 – Nice -: Los procesos tienen una prioridad en su lucha por recibir la atención de la CPU. Con esta opción decrementamos dicha prioridad del proceso seleccionado. También accesible mediante las teclas ‘-‘ y ‘]‘.
  • F8 – Nice +: Lo mismo que la anterior pero incrementa la prioridad. También accesible mediante las teclas ‘+‘ y ‘[‘.
  • F9 – Kill: Mata el proceso seleccionado. También accesible mediante la tecla ‘k‘.
  • F10 – Quit: Se sale de htop. También accesible mediante la tecla ‘q‘.

Hay bastantes más opciones. Por ejemplo podemos hacer que sólo muestre los procesos de un usuario específico (tecla ‘u‘), o que nos muestre los procesos ordenados por el tiempo que llevan funcionando (tecla ‘T‘). Podéis ver estas opciones en el manual de htop:

$ man htop

¿Realmente es práctico?

Pues para bastante o para nada según tu caso particular. Hay personas a quienes les gusta de vez en cuando comprobar si hay algún proceso que tiene un comportamiento dañino (uso excesivo de memoria o CPU por ejemplo). El monitor del sistema para muchos está un tanto escondido, y si tienes una consola abierta, a mano o una del estilo tilda o YaKuake, puede ojearlo fácil y rápidamente.

También es muy práctico en máquinas servidoras que están montadas sin que estén ejecutando un servidor gráfico. Y del mismo modo viene muy muy bien para hacerlo remotamente mediante SSH, en un servidor remoto, o en nuestro propio equipo si estamos fuera de casa.

Fuente