Este (mini)artículo no es mas que una actualización del artículo anterior: [HowTo] Sistema de vigilancia casero basado en Linux usando una webcam

videovigilancia .

En las pruebas que he ido haciendo hasta el momento, después de 15 días de funcionamiento sostenido:

~ # uptime
  
22:59:32 up 15 days,  7:47,  1 user,  load average: 0.31, 0.39, 0.36

Se porta como si recién hubiera arrancado:

~ # free -m
             total       used       free     shared    buffers     cached
Mem:           228        206         21          0         73         90
-/+ buffers/cache:         42        185
Swap:          517          2        515

Hoy cumple exactamente 31 días de grabación de corrido, en estos 31 días, como únicamente graba –y toma instantáneas– a 640×480 si detecta movimiento, me ha generado un total de 154579 archivos entre fotografías y videos, 7Gb de información:

~ # du -sh /home/dvr/video/
7.3G    /home/dvr/video/

Así que con un disco de 80Gb que tiene supera ampliamente mis estimaciones iniciales, tengo para grabar sin tener que borrar nada apróximadamente 10 meses de corrido, mejor que cualquier DVR comprada con disco de 320Gb.

Para ser gratis y casero, nada mal ¿Eh?

1 – Como saber cuanto ocupa una carpeta en Linux.

¿Cuantas veces necesitaste conocer cuanto espacio ocupa un directorio en particular? Desde la consola al ejecutar «du» por «Disk Ussage«:

~ # du /home/dvr/video/movie/

Te devuelve el tamaño en bloques del directorio en cuestión:

48004   /home/dvr/video/movie/

Como al sistema de archivos lo formateé en su momento con un tamaño de bloque de 1024 bytes –Por defecto se usan 4096 bytes si no se especifica un valor diferente para el parámetro en el argumento de la utilidad que formatea-, la cuenta es facil: 48004 bloques de 1024 bytes cada uno suman 49156096 bytes.

Como no podía ser de otra forma, para no tener que andar haciendo cálculos estrambóticos, se le puede pasar a la utilidad como argumento «-h» por «Human Readable»  para que devuelva el resultado en formato entendible por humanos:

~ # du /home/dvr/video/movie/ -h
47M     /home/dvr/video/movie/

Como el comando es recursivo, puede que te interese además agregarle la opción «-s» por «silent» para que cuando tenga que navegar muchos subdirectorios para sacar la cuenta no te llene la pantalla de texto. La otra muy util que tiene de entre tantas opciones disponibles es la posibilidad de producir un «gran total» con la opción «-c«, por ejemplo:

~ # du /home/dvr/video/movie/ -csh
47M     /home/dvr/video/movie/
47M     total

2 – Conocer el espacio utilizado/disponible por partición

Con la salida en modo «bloques» para el comando «df» por «Disk Free«:

~ # df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda3              9297812   1988296   6837208  23% /
/dev/sdb1               397475    295084     75886  80% /usr/portage
/dev/sdb2             78628740   6382688  72246052   9% /home

O en modo «Human Readable» pasándole el argumento «-h«:

~ # df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             8.9G  1.9G  6.6G  23% /
/dev/sdb1             389M  289M   75M  80% /usr/portage
/dev/sdb2              75G  6.1G   69G   9% /home

3 – Gráficos en la consola

Por ultimo la frutillita del postre, el que uso todo el tiempo, powered by python, «pydf«:

pydf en funcionamiento, mas gráfico imposible (para ser en consola).

pydf en funcionamiento, mas gráfico imposible (para ser en consola).

Cada quien sabrá como lo instala con el gestor de paquetes de su distribución de cabecera, en Gentoo es tan simple como ejecutar:


~ # emerge pydf

Como seguramente habrá mas aplicaciones que no conozco, ¿Conocen ustedes algo mejorcito que pydf?

Prefacio:

Tal y como dice el títlulo, esta entrada que iré dividiendo en varias entregas para hacerla lo menos monótona de leer posible intentará explicar desde de la base como funciona un servidor de correo electrónico, su implementación en linux y por que es tan complicado de hacer para el usuario de a pié.

Todo lo que mas abajo transcribo se basa pura y exclusivamente en mi experiencia personal. Mi servidor de correo funciona en Gentoo, mi distribución favorita. Todos los comandos salvo quizás por el gestor de paquetes, trataré de hacerlos lo mas genérico posibles para que sean aplicables a cualquier versión de Linux.

Esta guía usará a tal efecto el par Postfix / Dovecot para transporte, postfixadmin para administración del servidor y MySQL como medio de almacenamiento del correo electrónico entrante y saliente.

Para toda la sección de configuración me basaré principalmente en la exelente guía de la Wiki de Gentoo.

Continúa leyendo

Viene de la época en que el manual de Gentoo ofrecía como alternativa la posibilidad de que un amigo mas experimentado «te ayude» durante la instalación del sistema operativo, con todos los perjucios que eso conlleva mas adelante a la hora del mantenimiento periódico…

Screen es una herramienta poderosísima a la que no termino nunca de encontrarle nuevos usos. Entre tantas cosas que permite hacer, se puede usar para compartir una sesión en la consola de comandos con N cantidad de personas, donde todos pueden leer los comandos que los demás tipean y la salida por consola que estos comandos devuelven y todos pueden escribir en la misma consola de comandos. Es como una orgía, pero en Bash.

Por hacer una comparación, sería como una especie de VNC o Terminal Server pero para el modo texto de linux, en tiempo real y multiusuario.

Muy útil para mostrarle a algún colega/cliente/amigo como se hace tal o cual cosa en linux mientras se mantiene a la par una conversación por video conferencia, teléfono, chat, etc.

Nunca he asistido a uno de esos FLISOL pero esto se me ocurre que sería una buena alternativa también.

*COF*puedeservirparachatearyparacontrolarunabotnet*COF*

Teniendo Screen instalado, el funcionamiento es bastante sencillo, por ejemplo:

  • Una pc remota de nombre pcremota
  • Un usuario remoto identificado como usuarioremoto
  • Un usuario local identificado como usuariolocal
  • Usuariolocal necesita compartir una sesión de consola con usuarioremoto en pccremota.

Como se pone en funcionamiento:

Usuariolocal se conecta a pcremota identificádose a si mismo como usuarioremoto:

~ $ ssh usuarioremoto@pcremota

Usuariolocal inicia screen en pcremota:

~ $ screen -S sesioncompartida

Usuarlocal inicia el modo multiusuario de screen presionando las teclas [CTRL] + [a] y luego tipeando:

:multiuser on

Usuarioremoto se conecta a la sesión compartida:

~ $ screen -x usuarioremoto/

Y eso es todo. Durante toda la sesión ambos pueden leer y escribir sobre la misma consola.

Al ejecutar screen -S sesióncompartida se está especificando un nombre para la  sesión en cuestión. Si cualquiera de los usuarios conectados se desconectara, podría recuperar todo en donde lo dejó usando:

~ $ screen -r sesioncompartida

¿Y si son usuarios distintos?

Si se trata de usuarios distintos, por poner un ejemplo, donde usuariolocal se autentica contra pcremota como root y usuarioremoto se va a conectar a la sesión de root, entonces el ejecutable de screen necesita tener habilitado el bit SUID:

~ $ chmod u+s /usr/bin/screen

Por otro lado, luego de habilitado el modo multiusuario de la sesión screen que inició root, este tendría que darle permiso a usuarioremoto para que se conecte a su sesión. Como todos los comandos en scren, presionando primero [CTRL] + [a] y tipeando:

:acladd usuarioremoto

Y  así sucesivamente N cantidad de veces, una por cada usuario que se va a conectar a la sesión screen con credenciales diferentes a las del usuario que inició el proceso.