sábado, 22 de junio de 2013

Instalar y compartir un escáner en red con xsane

En un post anterior escribí sobre la instalación de la impresora Epson CX-3900 en Debian Squeeze. Esa impresora en particular es una AIO y esa publicación solamente detallaba cómo instalar la funcionalidad de impresión.

Como complemento, se puede instalar también el escáner y compartirlo en red.

PRIMER PASO: Instalar el paquete xsane tanto en el servidor como en los equipos desde los que se desee acceder al escáner:

SEGUNDO PASO: Configurar el servidor para aceptar conexiones. Editar el archivo /etc/default/saned:
# Set to yes to start saned                                                     
RUN=yes
TERCER PASO: Especificar las direcciones IP que podrán utilizar el escáner (en /etc/sane.d/saned.conf):
192.168.1.0/24
CUARTO PASO: En el cliente, indicar la IP del servidor al cual está conectado el escáner (en /etc/sane.d/net.conf):
192.168.1.10
Adaptado de: https://help.ubuntu.com/community/ScanningHowTo

jueves, 20 de junio de 2013

12 razones por las cuales los mejores Administradores de Sistemas Linux son unos vagos

Esta publicación no es de mi autoría. Es una traducción del artículo original publicado en el Google+ de Mitesh Shah. ¡Que lo disfruten!

El trabajo llevado a cabo por los administradores de sistemas no es visible a otros grupos de IT ni a los usuarios finales. La mayoría de estas personas miran a los sysadmins y se preguntan la razón por la que nunca parecen tener nada para hacer.

Si ustedes llegan a ver a algún sysadmin que está siempre corriendo por todos lados, tratando de apagar incendios, y enfrentando problemas de producción constantemente, se puede llegar a pensar que está haciendo su trabajo - lo cual en realidad no es así.

Por otra parte, si ven a un sysadmin que pareciera no estar haciendo nada y con una actitud relajada, pueden estar seguros de que sí está haciendo su trabajo.

Las siguientes son 12 razones por las que un sysadmin vago es el mejor que existe.

1) ¿Quién es el jefe? La razón principal por la que el sysadmin vago es el mejor que existe es debido a su actitud. Él mira a las máquinas de una manera un tanto diferente de lo que lo hacen otros departamentos de IT. Hay una diferencia entre los desarrolladores y los sysadmins. Los desarrolladores piensan que su función principal consiste en servir a los equipos desarrollando código (no hay nada malo con eso, ya que parece que disfrutan al hacerlo). Por otro lado, los syadmins piensan al revés - su modo de ver las cosas es que las máquinas deben estar a su servicio, y todo lo que tienen que hacer es "alimentarlas", "mantenerlas felices", y dejar que ellas se encarguen de hacer el trabajo pesado, mientras ellos pueden relajarse y ser vagos. El primer paso hacia convertirse en un sysadmin vago es un pequeño cambio de actitud, y hacerle saber a los equipos quién es el jefe.

2) Escribe scripts para trabajos repetitivos. Ser vago significa ser inteligente. Un sysadmin inteligente domina todos los lenguajes de scripting (bash, awk, sed, etc.). Cada vez que se ve forzado a realizar cualquier tarea, y si existe aun la mínima posibilidad de que en el futuro sea necesaria nuevamente, escribe un script para hacer el trabajo; de esta manera, cuando se requiera otra vez más adelante, no hay que pensar - solamente volver a ejecutar el script.

3) Hace copias de respaldo (backup) de todo. Ser vago significa hacer backups. Un sysadmin vago sabe que no hace falta mucho esfuerzo para crear un proceso de backup, y crea scripts para hacer copias de respaldo para todas las aplicaciones y sistemas críticos. Cuando el espacio en disco no es un incoveniente, agenda el backup para todas las aplicaciones (incluso para aquellas que no son críticas). De esta manera, cuando algo sale mal, no se le mueve un pelo, porque simplemente tiene que hacer una restauración del backup, y luego puede volver a hacer lo que sea que estaba haciendo.

4) Confecciona un plan de recuperación ante desastres. A los sysadmins no les gusta andar corriendo por todos lados cuando las cosas salen mal. Cuando todo está yendo bien, se toman un tiempo para crear un plan de contingencia para seguirlo cuando sea necesario y restaurar todo a su correcto funcionamiento rápidamente.

5) Configura sistemas con un alto grado de redundancia. Los sysadmins odian recibir llamadas en medio de la noche cuando se produce algún fallo menor de hardware. Por ese motivo, se aseguran de que todos los componentes sean altamente redundantes (esto incluye tanto el hardware como el software). Por ejemplo, configuran dos placas de red, dos fuentes de energía, dos discos duales, etc. En pocas palabras, tienen "dos" de todo. De esta manera, cuando un componente falla, el sistema continúa funcionando y el sysadmin vago puede ocuparse del asunto tranquilamente de manera personal al otro día.

6) Reserva lugar para un crecimiento no esperado. El sysadmin vago nunca permite que su sistema corra a plena capacidad, y siempre reserva lugar o recursos para manejar un crecimiento no esperado inicialmente. Se asegura que el sistema tenga suficientes recursos de CPU, RAM, y espacio en disco disponibles. Cuando la unidad de negocio decide volcar toneladas de datos de un día para el otro, no tiene que hacerse mayor problema sobre la forma en que manejar ese crecimiento no anticipado.

7) Es proactivo. Ser vago no significa que uno simplemente se está rascando siempre. En realidad, significa ser proactivo. Los sysadmins vagos odian tener que actuar de repente ante una situación, y por esta razón siempre están anticipando inconvenientes o crecimiento. Cuando tienen un tiempo libre, siempre están ocupados en proyectos de manera proactiva de tal manera que les ayuden a evitar futuros inconvenientes o crecimiento imprevistos.

8) Ama los atajos de teclado. Los sysadmins vagos conocen todos los atajos de teclado para sus aplicaciones favoritas. Si en su trabajo diario tiene que pasar un tiempo considerable trabajando con una aplicación, lo primero que va a hacer es aprender a dominar los atajos de teclado para la misma.

9) Domina la línea de comandos. Todos los sysadmins vagos son maestros en la línea de comandos. Si alguna vez ven a un sysadmin haciendo algo desde una interfaz gráfica de usuario (GUI) cuando lo mismo se puede lograr desde la línea de comandos, pueden estar seguros de que se trata de un sysadmin que no es vago. Hay dos razones por las que los sysadmin vagos aman la línea de comandos: la primera es que puede hacer todo rápidamente desde ahí, y la segunda es que de esa manera se siente el jefe de la situación, en vez de que lo sea el sistema. Cuando se usa la línea de comandos, uno está en control de la situación ya que sabe exactamente lo que se desea hacer; cuando usa una GUI, se está a las buenas del diagrama de flujo de la misma.

10) Aprende de sus errores. Los sysadmins vagos odian cometer el mismo error dos veces y tener que lidiar con inconvenientes repetitivos. Cuando sucede un imprevisto, trabaja para solucionarlo, analiza la razón por la que se produjo, e inmediatamente organiza todo lo necesario para que no vuelva a suceder.

11) Aprenden tecnologías nuevas. No hay nada malo en aprender una nueva tecnología para conseguir un mejor trabajo, o para mantenerse al día. Pero a los syadmins vagos no les atrae hacer las cosas por estos motivos, sino que lo hacen para tener el control de todos los sistemas en todo momento. Por este motivo, cuando surge una nueva tecnología, se toma el tiempo de estudiarla, y eso le da las herramientas para mantener ocupado al sistema, mientras él puede continuar relajándonse. Aprende nuevas tecnologías por una razón egoísta y vaga.

12) Documenta absolutamente todo. No todos los sysadmins vagos hacen esto - solamente los mejores. La razón es que no les gusta ser molestados cuando están de vacaciones. Entonces, ¿qué es lo que hace? Documenta todo, para que cuando no se encuentra presente, otros sysadmins juniors puedan ocuparse de las tareas de rutina y mantener todo funcionando mientras él disfruta sus vacaciones. La otra razón por la que los buenos sysadmins documentan todo es porque tienden a olvidar las cosas - para no tener que analizar o investigar la misma cuestión dos veces, razón por la cual utilizan su documentación para entender y recordar lo que hicieron en una ocasión anterior.

martes, 4 de junio de 2013

Physical Address Extension (PAE) o Extensión de Dirección Física

En informática, la Extensión de Dirección Física (PAE por sus siglas en inglés, Physical Address Extension) es una característica que permite a CPUs de 32 bits con la arquitectura x86 acceder a un espacio de direcciones físicas (incluyendo memoria RAM y memory-mapped devices, o registros de los dispositivos como si se trataran de direcciones de memoria convencionales) mayor que 4 GB.

Soporte por parte del Sistema Operativo

Microsoft Windows: implementa PAE si se arranca con la opción adecuada, pero las ediciones de escritorio actuales de 32 bits restringen el espacio de direcciones físicas dentro del rango de los 4GB aun en modo PAE. De acuerdo a Geoff Chappell, esto se debe a la política de licencias de Microsoft y el Microsoft Technical Fellow Mark Russinovich menciona la inestabilidad de algunos drivers por encima de ese rango. Existen parches no oficiales que permiten pasar por alto esta limitación impuesta por Microsoft, pero no se garantiza la estabilidad del sistema.

Linux: el kernel Linux incluye soporte completo para PAE comenzando con la versión 2.3.23 (al día de hoy, 4 de junio de 2013, la versión actual es la 3.9.4), permitiendo que equipos de 32 bits accedan a un espacio de direcciones físicas de hasta 64 GB. Un kernel con soporte para PAE requiere que el procesador posea la misma característica. Ya en 2012, algunas distribuciones populares de Linux dejaron de distribuir kernels sin soporte para PAE (por ejemplo, Red Hat Enterprise Linux / CentOS comenzando por la versión 6.0, Ubuntu y sus derivados desde la versión 12.10). Fedora y Debian todavía distribuyen kernels con y sin soporte para PAE.

(Traducido de Wikipedia)

Para verificar si el microprocesador soporta PAE:
grep --color=always -i PAE /proc/cpuinfo

Crear imagen iso de una unidad flash y extraer sus contenidos

Window$ no ofrece soporte de manera nativa para crear imágenes iso ni para extraer los contenidos de una generada previamente. Hay muchos programas que ofrecen más o menos esta funcionalidad, pero como dije, ninguno viene instalado junto con el sistema operativo. Si no se cuenta con una conexión a Internet o con el ejecutable de uno de esos programas, no hay manera de realizar esta tarea.
GNU/Linux, por otra parte, permite realizar ambas tareas de manera muy fácil desde la línea de comandos:
1) Para crear la imagen iso con los contenidos de la unidad /dev/sdb, en el directorio actual:
dd if=/dev/sdb of=usb-imagen.iso
2) Para extraer los contenidos:
  • Crear el directorio /mnt/iso que se utilizará para montar la imagen iso:
mkdir /mnt/iso
mount -o loop usb-imagen.iso /mnt/iso
(La opción -o junto con el argumento loop permite montar un archivo (usb-imagen.iso en este caso) como si fuera un dispositivo de bloques).
  • Ir al punto de montaje del pseudo-dispositivo y copiar sus contenidos a otro directorio:
cd /mnt/iso
cp -r * /tmp
Nota: Si el comando mount devuelve un mensaje diciendo que se debe especificar el tipo de sistema de archivos para llevar a cabo el montaje, utilizar la opción -t seguida del argumento iso9660.

martes, 7 de mayo de 2013

Actualizando GNU/Linux Debian de 6.0.x Squeeze a 7.0.0 Wheezy

INTRODUCCIÓN

Como es costumbre, las versiones de Debian siempre llevan el nombre de un personaje de las películas Toy Story, y el equipo de desarrollo de Debian anunció la semana pasada que la versión 7.0 (llamada Wheezy) entraba en estado estable a partir del día domingo 5 de mayo de 2013, y se publicaron las notas de la versión junto con la guía de actualización. Dicen las "malas lenguas" que por ahí es conveniente hacer una reinstalación en vez de una actualización, pero siendo que mi servidor es de pruebas, y que voy a tratar de seguir al pie de la letra las instrucciones, me voy a animar a actualizar ;).

[Imagen tomada de aquí]

Los primeros tres capítulos de la guía se refieren, respectivamente a: 1) Introducción, 2) Qué hay de nuevo en Wheezy, y 3) Novedades del sistema de instalación. Es interesante ver que Wheezy incluye alrededor de 12800 (sí, doce mil ochocientos!) nuevos paquetes, haciendo un total de 37493 paquetes en total disponibles en los DVDs de instalación y desde los repositorios. Otro detalle importante es ver nuevas arquitecturas soportadas.

Habiendo dicho esto, paso a repasar el capítulo 4, el cual detalla las instrucciones para actualizar desde Debian 6.0.x Squeeze.

EL BACKUP

Como solamente necesito hacer un backup de mi home, de /etc/squid, /etc/postfix, /etc/cups, y de /var/www :
tar -cpvzf BKP.tgz /home/gacanepa /etc/squid /etc/cups /etc/postfix /var/www

REVISAR LAS ACCIONES PENDIENTES EN EL GESTOR DE PAQUETES

Según el apartado 4.2.1:
En algunos casos, utilizar apt-get para instalar paquetes en lugar de aptitude puede hacer que aptitude considere que un paquete no está siendo utilizado (marcado como «unused») y lo marcará para su eliminación... Por ello, es necesario que revise si existe alguna acción pendiente en el gestor de paquetes aptitude. El procedimiento de actualización puede verse afectado negativamente si algún paquete está marcado para eliminarse o actualizarse... Para realizar esta revisión debería ejecutar el interfaz de usuario en “modo visual” de aptitude y pulsar g (“Go”). Si se muestra cualquier acción, debería revisarla y o bien arreglarlas o llevar a cabo las acciones que se le sugieran. Se le presentará el mensaje “No hay ningún paquete planificado para instalar, eliminar o actualizar” si no hay ninguna acción pendiente.
Ejecuté
aptitude safe-upgrade
para actualizar los paquetes que tengan disponibles nuevas versiones, sin desinstalar ningún paquete a menos que no se esté usando. Entonces aptitude sí entrega el resultado deseado:


PREPARAR LAS FUENTES PARA APT
El método recomendado para actualizar desde versiones anteriores de Debian es usar la herramienta de gestión de paquetes apt-get. En versiones anteriores, se recomendaba la orden aptitude para este propósito, pero las versiones más recientes de apt-get ofrecen la misma funcionalidad y se ha demostrado que proporcionan los resultados deseables para una actualización de forma más consistente.Asegúrese de que las entradas con las fuentes de APT (en el archivo /etc/apt/sources.list) hacen referencia a la distribución “wheezy” o a estable (“stable”). No debería haber ninguna entrada que haga referencia a “squeeze”.
El contenido de mi archivo /etc/apt/sources.list:


GRABAR LA SESIÓN DE ACTUALIZACIÓN
script -t 2>~/upgrade-wheezystep.time -a ~/upgrade-wheezystep.script

ACTUALIZAR LA LISTA DE PAQUETES
apt-get update

ACTUALIZACIÓN MÍNIMA DEL SISTEMA

Se actualizan los paquetes que se puedan actualizar en el sistema sin que sea necesario eliminar ni instalar ningún otro paquete:
apt-get upgrade

ACTUALIZAR EL SISTEMA
Se realizará una actualización completa del sistema, esto es, se instalarán las versiones más recientes de los paquetes y se resolverán todos los posibles cambios de dependencias entre los paquetes de diferentes versiones. Si fuera necesario, se instalarán nuevos paquetes (normalmente, nuevas versiones de las bibliotecas o paquetes que han cambiado de nombre), y se eliminarán los paquetes obsoletos conflictivos.
apt-get dist-upgrade

Por suerte no hubo ningún problema durante la actualización. Al terminar se puede constatar la nueva versión de Debian y del kernel:
root@debian:~# cat /etc/issue
Debian GNU/Linux 7.0 \n \l
root@debian:~# uname -r
3.2.0-4-686-pae

Lo único que tuve que arreglar fue quitar la referencia al módulo php5-suhosin -el cual ha sido eliminado en Wheezy- de PHP5 para que el servidor web Apache arrancara correctamente:
dpkg --purge php5-suhosin

miércoles, 1 de mayo de 2013

Volviendo a instalar la impresora multifunción Epson Stylus CX3900 en Debian Squeeze

1) Instalé los paquetes cups y cups-pdf:
aptitude install cups cups-pdf
2) Para poder acceder a la interfaz web de CUPS es necesario configurar el servicio para que escuche en la interfaz de red y dar los permisos necesarios (conviene primero hacer una copia de seguridad del archivo original):
root@debian:~# cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.original
root@debian:~# vi /etc/cups/cupsd.conf
Listen 192.168.0.10:631
# Restrict access to the server
<Location />
Order allow,deny
Allow 192.168.0.0/24
</Location>
# Restrict access to the admin pages...
<Location /admin>
Order allow,deny
Allow 192.168.0.0/24
</Location> 
# Default authentication type, when authentication is required...
DefaultAuthType Basic
3) Tipear en el navegador: <IPdelServidor>:631, en mi caso 192.168.0.10:631:


4) Ir a la pestaña "Administration" y hacer clic en el botón "Add printer":


5) Comienza a buscar impresoras conectadas:


6) Detectó la Epson Stylus CX3900 (elegir la opción correspondiente para indicar que esa es la que se desea instalar):


7) Indicar el nombre deseado para la impresora y si se desea compartirla, así como su ubicación:


8) Si el driver de la impresora no está incluido en CUPS, elegir "Select Another Make/Manufacturer":


9) Mientras tanto, habrá que bajar el driver (archivo .deb) desde la página de soporte de EPSON: http://download.ebz.epson.net/dsc/search/01/search/?OSC=LX:


10) Instalo el paquete recién bajado:
dpkg -i epson-inkjet-printer-escpr_1.2.2-1lsb3.2_i386.deb
11) Me avisa que tiene dependencias no resueltas:
dpkg: dependency problems prevent configuration of epson-inkjet-printer-escpr:
 epson-inkjet-printer-escpr depends on lsb (>= 3.2).
12) ¿Qué es lsb?
aptitude show lsb
Package: lsb                             
State: not installed
Version: 4.0-0ubuntu26.1
Priority: extra
Section: misc
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: all
Uncompressed Size: 45.1 k
Depends: lsb-core, lsb-graphics, lsb-cxx, lsb-desktop, lsb-printing
Suggests: lsb-multimedia, lsb-languages
Description: Linux Standard Base 4.0 support package
 The Linux Standard Base (http://www.linuxbase.org/) is a standard core system that third-party applications written for Linux can depend upon. 

 This package provides an implementation of all modules of version 4.0 of the Linux Standard Base for Debian on the Intel x86, Intel ia64 (Itanium), IBM S390, and PowerPC 32-bit architectures with the Linux kernel. Future revisions of the specification and this package may support the LSB on additional architectures and kernels. 

 The intent of this package is to provide a best current practice way of installing and running LSB packages on Debian GNU/Linux. Its presence does not imply that Debian fully complies with the Linux Standard Base, and should not be construed as a statement that Debian is LSB-compliant.
Homepage: http://www.linux-foundation.org/en/LSB
13) Entonces instalamos lsb:
aptitude install lsb
14) Para luego retomar la instalación del driver de la impresora. Entonces el server "no se queja" de nada y el driver se instala sin problemas. Retomo la instalación de la impresora desde la interfaz web:


15) Tiro 3 impresiones de prueba:


16) Los trabajos de impresión resultantes quedan "registrados" en /var/spool/cups:


17) Y luego de borrar el contenido del directorio mencionado anteriormente, el registro de los trabajos de impresión en la interfaz web desaparece:

18) Para poder conocer el porcentaje de tinta restante en los cartuchos hay que presionar -estando la impresora apagada- por al menos 3 segundos los botones de encendido y de carga de tinta. La impresora se encenderá e imprimirá una hoja con datos parecidos a los siguientes:
C:030%    Y:030%    M:030%    Bk:100%
(cartuchos Cyan, Yellow, Magenta, y Black, respectivamente)

martes, 2 de abril de 2013

Cuando no se puede escribir a un dispositivo de bloques particionado con NTFS...

Intentando hacer un backup de mi /home, esta mañana me encontré con que no podía escribir a mi disco rígido portátil. Este último estaba formateado como NTFS, tal como muchos dispositivos extraíbles hoy en día.
Cuando esto sucede, se puede montar el dispositivo y ver sus contenidos, pero no escribir en el mismo, salvo que... se tenga el paquete ntfs-3g instalado:
 gacanepa@Gabriel-PC:~$ aptitude show ntfs-3g  
 Package: ntfs-3g               
 State: not installed  
 Version: 1:2010.3.6-1  
 Priority: optional  
 Section: otherosfs  
 Maintainer: Adam Cécile (Le_Vert) <gandalf@le-vert.net>  
 Uncompressed Size: 209 k  
 Depends: libc6 (>= 2.3), libntfs-3g75  
 Description: read-write NTFS driver for FUSE  
  The ntfs-3g driver is an open source, GPL licensed, third generation Linux NTFS  
  driver which was implemented by the Linux-NTFS project. It provides full  
  read-write access to NTFS, excluding access to encrypted files, writing  
  compressed files, changing file ownership, access right.   
  Technically it's based on and a major improvement to the third generation Linux  
  NTFS driver, ntfsmount. The improvements includes functionality, quality and  
  performance enhancements.   
  ntfs-3g is based on FUSE (userspace filesystem framework for Linux), thus you  
  will have to prepare fuse kernel module to be able to use it.   
  Fuse is available in any recent kernel. No need to prepare a kernel module if  
  you are already running Debian Etch kernel or newer.  
 Homepage: http://www.ntfs-3g.org/  
De otra manera, el dispositivo es montado con el módulo NTFS del kernel, que no brinda permisos de escritura.
Después de instalar dicho paquete, pude proceder a hacer el backup necesario en mi disco portátil.