lunes, septiembre 11, 2006

Cygwin + Ncftput + find: Backups para Vagos (actualización)

Actualización 2: comentarios necesarios sobre en versiones nuevas de proftpd

Encontré una forma un poco primitiva para hacer backups de maquinas windozas sobre un servidorcito Linux. Por suerte es bastante artesanal y no dependo de cosas raras como el Micro$oft Backup, Nero Backup y otros cachivaches imprevisibles y/o sospechosas que me exigen desperdiciar otro server con Windort.

Backupeando

En el Linux
  • adduser por cada usuario
  • apt-get install proftpd
  • En /etc/proftpd.conf activar las siguientes lineas:
#(comentar)
DelayEngine off
#(comentar)


AllowStoreRestart on



En las estaciones:
  • Instalar el ncftpput de las herramientas "Unix" para Windows (Cygwin). Estas herramientas deberían ser muy tenidas en cuenta para los que se ahogan sin una consola cerca. Hay desde mutt, tar, ssh, de todo.
  • En el autoexec.bat (Win9x) o en Propiedades del Sistema / Variables de Entorno (Win200x/XP) agrego la línea c:\\cygwin\\bin al PATH.
  • Win9x tiene que reiniciar, ojo.
  • Bajo w2000/XP el acceso a la carpeta c:\\cygwin debe ser permitida a *Todos* los usuarios (Propiedades / Seguridad)
  • En el Programador de Tareas, agrego la línea:
ncftput -v -R -u ElUsuario -p Pasguor -m -z ip-del-server /home/ElUsuario/Backup "C:\Documents and Settings\ElUsuario\Mis Documentos" "C:\Documents and Settings\\ElUsuario\Escritorio"
  • Esta linda línea recolecta aquellos archivos que se han agregado o que han cambiado localmente, y copia o actualiza en el /home del Linux, comprimiendo por el camino y creando los directorios a medida que hace falta. Se le puede agregar todos los directorios que quieran al final. Es realmente muy rápida y por algúna razón no ocupa casi nada del ancho de banda de la red: las LTSP, a 10Mbits apenas si se enteran que un río de archivos va subiendo por el troncal hacia el segundo piso.
  • Para ejecutivos paranoicos con su información:
    • Dejar un acceso directo a algún bat que contenga la línea precedente, en la carpeta Inicio de CADA usuario, a fin que se ejecute el backup en cada inicio de sesión.
    • Cuando tengo que restaurar archivos, abro cualquier ventana de los Windows y le mando "ftp://ElUsuario@ip-del-server" donde paso a retirar el backup actualizado. Puedo usar tambien Samba pero tampoco quiero darles mucha libertad a los usuarios que curioseen por el server.

Cuidando la granja

No es que los usuarios sean muy despiertos, pero si miran dentro del Programador de Tareas se van a encontrar un pasword para loguearse por mi SSH. Todavía no dominan ni el Firefox, pero for if the flys, instalo un viejo amigo:
  • apt-get install falselogin
  • Gracias a algunos comentarios de la lista agrego a /etc/shells la línea /usr/bin/falselogin
  • En el /etc/password cambio el shell final de modo que llame a falselogin en cada vuelta, quedaría algo parecido a
passwd:ElUsuario:x:1059:1059:,,,:/home/ElUsuario:/usr/bin/falselogin

Si el usuario intentara loguearse obtendría

Welcome at gazpacho (Debian 3.1 Linux 2.6.10-5-386)
No mail.
Sorry sommelier but our server does not accept shell logins.
So long and thanks for all the fish.


Y si un usuario le quiere borrar vía FTP los archivos a un compañero? Siempre tienen la facultad de sorprenderme, de modo que llevo históricos semanales.

Sacando la basura
Ahora bien: semanalmente hago un backup del /home en DVD/R. Algún día me compraré n una cinta, pero hasta entre tanto, tengo que cuidar la cantidad de DVDs.

Me encuentro con que los usuarios guardan mp3, pequeñas peliculas, fotos, e incluso yo mismo me olvido instaladores sobre los escritorios, isos, temporales y demás cosas.

Puedo filtrar desde el Squid lo que entra desde Internet, pero siempre algo se cuela de las camaritas de los los celulares, los llaveros USB, las fotos que llegan por correo, y demás. No quiero backupear todo ese garbage.

Despues de navegar bastante encontré como opción

find /home -iname *.mp3 -exec rm {}

Cuando estoy por ejecutarlo se me ocurre leer el larguísimo man de find y encuentro que la versión 4.22 de findutils ahora trae la opción -delete. Hace lo mismo pero es mas fácil de recordar.

De modo que fabrico un archivo en /usr/bin/SacarLaBasura que contiene
find /home -iname *.pif -delete
find /home -iname *.lnk -delete
find /home -iname *.gif -delete
find /home -iname *.jpg -delete
find /home -iname *.bmp -delete
find /home -iname *.wav -delete
find /home -iname *.mp3 -delete
find /home -iname *.avi -delete
find /home -iname *.mpg -delete
find /home -iname *.mpeg -delete
find /home -iname *.tmp -delete
find /home -iname *.exe -delete
find /home -iname *.com -delete
find /home -iname *.tif -delete
find /home -iname *.dll -delete
find /home -iname *.met -delete
find /home -iname *.met.BAK -delete
find /home -iname *.log -delete
find /home -name Messenger* -delete
find /home -iname cygwin.rar -delete

Para correrlo antes del backup, o cuando estoy en modalidad BOFH, lo dejo ejecutable con
chmod a+x /usr/bin/SacarLaBasura

Despierta, Homero
Escribo un instructivo según el cual cada usuario debe mantener encendida su PC a ciertas horas, si no quiere que el ratoncito le coma el gruyere.

A fín de semana SacoLaBasura y empujo el DVD en la grabadora. Me queda ver si puedo hacerlo un poco mas seguro usando rsync, pero todavía no capto bien lo de los certificados entre los Win9x y el Linux. Alguien lo ha probado?

1 comentario:

pancutan dijo...

El ncftpput puede dejarse programado como un bat en el programador de tareas, cuidando las proopiedades para que corra con los permisos del usuario NT AUTHORITY\SYSTEM. La idea es asegurarse que no emerja la pantalla de MSDOS mientras esta trabajando.