angel3071
Usuario (México)

Compartiendo archivos en red de manera eficiente A la hora de compartir arrchivos sobre una red, podemos encontrar en el mundo Linux bastantes alternativas, cada una con sus pros y sus contras, algunas se enfocan a la seguridad de la transeferencia mientras que otros presindiendo de esto apuestan a la velocidad, uno de los "paradigmas" (digamoslo asi) que mas me ha gustado a mi es el de los sitemas de archivos en red, esto no es nada nuevo pero para los que son nuevos aqui dejo una pequeña descripcion de lo que son segun la wikipedia: wikipedia dijo:Los sistemas de archivos o ficheros (en inglés:filesystem), 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. La mayoría de los sistemas operativos manejan su propio sistema de archivos Sistemas de archivos de red Un sistema de archivos de red es el que accede a sus archivos a través de una red. Dentro de esta clasificación encontramos dos tipos de sistemas de archivos: los sistemas de archivos distribuidos (no proporcionan E/S en paralelo) y los sistemas de archivos paralelos (proporcionan una E/S de datos en paralelo). Siendo asi entonces entendemos a los Sistemas de Archivos en red como puntos de sistemas remotos que "montamos" en nuetra maquina para poder acceder a ellos (lectura y/o escritura) como si se tratase de "carpetas" locales en nuestra maquina cosa que resulta muy comoda, veremos ahora dos de estos protocolos y como utilizarlos-configurarlos. NFS (network file system) NFS es el mas popular de los protocolos para este cometido, se ha convertido en un estandar a la hora de hablar de sistemas de archivos en red, su instalacion y configuracion es sumamente facil, y nos permite montar un sistema remoto verdaderamente estable y seguro, vayamos con la instalacion Para instalarlo, en ArchLinux que es la distribucion que yo utilizo la instalacion, tanto para el servidor como para el cliente, se limita a solo dos paquetes: # pacman -S ntfs-utils rpcbind Para ubuntu (y todas las demas en realidad) lo unico que pudiera diferir es el nombre de los paquetes, instalar lo es mas que buscarlos con el gestor de paquetes que utilizen e instalarlos, hasta aqui sin chiste, lo mas interesante es la configuracion: Una vez instalados los paquetes empezamos con la configuracion del "servidor" (la carpeta o carpetas a las que ustedes quieren poder acceder remotamente desde el "cliente" ) para esto haremos uso del archivo exports donde se definen los ficheros que queremos exportar al mundo , para esto abrimos el archivo: # vim /etc/exports y la sintaxis de las lineas que agregaremos al archivo (una por cada fichero a exportar) es de la siguiente manera: /Que/Exportar a_quien(opciones,para,quien,exportamos) de esta manera podemos definir a quien exportar y con que opciones este accedera a dicha carpeta, yo en casa utilizo algo asi, para exportar a todos los equipos en la red local con permisos de lectura y escritura: /home/nfsServer 192.168.1.0/24(rw) la opciones disponibles en este punto las pueden consultar en el manual de exports ($man exports), pero para mi rw va sobrada Si despues de iniciado el servidor necesitan agregar mas cambios a este fichero deben actualizarlos con el siguiente comando: # exportfs -r Un punto a destacar en esta etapa es que la carpeta que comparten debe ser propiedad del usuario nobody y estar fuera del home de algun usuario (de otro modo tendrian que cambiar los permisos a dicho home, cosa que no es muy elegante) para mi ejemplo, crear la carpeta y darle los permisos nesesarios hariamos algo como esto: # mkdir /home/nfsServer && chown -R nobody.nobody /home/nfsServer && chmod a+w /home/nfsServer/ y bueno ahora si levantar el servidor: # rc.d start rpcbind # rc.d start nfs-common # rc.d start nfs-server en Arch, o usando el equivalente de su distribucion para levantar servicios Esto para configurar el Servidor, del lado del cliente, para montar tales ficheros, lo unico que hay que hacer es algo como esto usando mount: # rc.d start rpcbind #iniciamos los servicios necesarios # rc.d start nfs-common # mount -t nfs ipServidor:/carpeta/exportada /punto/donde/montar para mi ejemplo utilizo (del lado de los clientes) algo asi: # mount -t nfs 192.168.1.102:/home/nfsServer /home/angel/Public y con esto ya pueden accesar a la carpeta como si se tratase de un fichero local, subir y descargar archivos se convierte en copiar desde y hacia el punto de montaje si desean que la carpeta se monte automaticamente al inicio, basta con agregar una linea al /etc/fstab del tipo: server:/files /files nfs defaults 0 0 agregando respectivamente los servicios necesarios (igualmente en el cliente o el servidor) al arreglo de daemons en /etc/rc.conf (para arch por ejemplo) para que se inicien al encendido del equipo Como ven puede parecer algo larga la configuracion pero, si lo que se necesita es trabajar con archivos en varias maquinas simultaneamente este servidor les ahorrara varios dolores de cabeza. SSH y todo mas facil Aqui es donde entra SSH a hacer las cosas aun mas faciles, para los que conocen ssh saben que es una forma segura de controlar maquinas remotamente, pero sus posibilidades no terminan ahi, ahora veremos como utilizarlo para obtener un sistema de archivos en red justo como NFS Para esto lo unico que se necesita es: del lado del server un Servidor ssh instalado y configurado, la mejor opcion es OpenSsh pero pueden utilizar cual sea, la instalacion y configuracion la omito, por que si usan linux lo mas seguro es que ya la tengan Del lado del cliente lo unico extra a instalar es sshfs que lo que hace es justamente proporcionarnos la capacidad de establecer un sistema de archivos en red por medio de el protocolo ssh, lo instalamos entonces: # pacman -S sshfs # o su similar segun su distro y ahora la magia lo montamos cualquier carpeta del servidor con un comando de este tipo: # sshfs usuarioServer@hostServer:/carpeta/en/elServer /puntoDeMontaje/local Otra vez, el ejemplo que uso yo es algo asi: $ sshfs [email protected]:/home/angel/ ~/Public Esta vez montar la carpeta no requiere permisos de root y los permisos que tendran sobre la carpeta montada son los mismos que tenga el usuario del server que estan utilizando sobre ella, por lo que no hay que configurar nada mas en este punto, la velocidad de transferencia ronda entre los 7-10 MB/s, aparte con ssh las transferencias de archivos estan cifradas, por lo que la seguridad esta por demas garantizada Casi nunca posteo nada, pero no habia visto algo posteado acerca de SSHFS, asi que a alguien le puede llegar a servir, a mi hasta el momento se me ha hecho la mejor forma de trabajar con archivos en red, espero que les sirva. Si alguien tiene alguna duda adelante, con gusto respondo Saludos pd: Que fea que es esta nueva version de Taringa eh, parece un blog mas y no lo que es
Saludos, seguro que habrán escuchado acerca de lo que es el shell scripting, si no, para ponerlo en palabras simples es una "técnica" que nos permite "programar" tareas en nuestro shell (principalmente sobre bash), tareas sobre todo, aunque no unicamente, de auto-mantenimiento del sistema, las posibilidades que da el shell-scripting son enormes y van desde lograr que un servidor te informe en tu correo sobre su estado actual hasta boludeces como un gestor musical , como sea no es necesario que sepan programar para iniciarse en el shell-scripting, aunque si es muy recomendable, aun así encontrarán en esta técnica una sintaxis muy clara e intuitiva que les facilitará la tarea de aprender.En la escuela donde voy, he tenido la obligación oportunidad de dar algunos cursos acerca de esto y el libro que siempre me ha facilitado las cosas es este: Tiene ejemplos muy buenos y explicados, está en ingles pero bueno como casi toda la literatura del giro.Se los dejo en pdf: DESCARGAR Espero le sirva a alguien, y bueno si alguien tiene alguna duda acerca del tema y me quiere preguntar adelante que si puedo les echo una mano