[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Iceweasel + sqlite + NFS



Al 20/02/11 21:33, En/na Lluís Gras ha escrit:
Bones família

Fa temps que volia escriure aquest correu i ara acabo de trobar uns minuts per fer-ho.

Diria que a mitjans del 2010, reconec que no m'he mirat el changelog de l'iceweasel, la penya de les idees lluminoses de Firefox va decidir emprar sqlite per gestionar les adreces d'interès i que se jo què més que abans es gestionava amb els benvolguts i estimats fitxers de text pla, el cas és que des de llavors he hagut d'alliçonar al personal de l'escola perquè s'acostumin a emprar d'altres navegadors, patxejar el Moodle perquè l'htmlarea no era amic ni amb Chrome ni amb Epiphany, i d'altres feines endebades, a banda la tasca ingent i gairebé impossible fer entendre als usuaris el motiu de perquè si fan anar l'Iceweasel ofeguen al servidor. Pensava que amb el temps, mainstream s'adonaria del maldecap que suposa i que donarien alguna alternativa, ara mateix està a punt de sortir la versió 4 i veig que la cosa continua igual, així que he decidit migrar els perfils dels usuaris a algun lloc del disc local físic i enllaçar-los a la posició que els correspon amb ànim d'alliberar als discs durs del servidor de la càrrega de milers d'operacions, la idea és fer alguna cosa com:

debian:~# cat /usr/local/bin/iceprofile
#!/bin/sh

desti="/media/sda7"

usuari=$(id -un)

file /home/$usuari/.mozilla | grep link &> /dev/null

if [ $? == 0 ]; then

#El perfil ja s'ha traslladat al disc dur local

exit 0

else

#Trasllat del perfil al disc dur local

mv /home/$usuari/.mozilla $desti/.mozilla_$usuari

ln -s $desti/.mozilla_$usuari /home/$usuari/.mozilla

fi

I forçar que l'usuari ho executi durant l'arrencada, hores d'ara i gairebé des de que va "desaparèixer" KDE 3.5.10, hem estat anant de floreta en floreta, LXDE, Xfce4 i finalment la cosa ha quedat amb Gnome ( si m'ho diuen fa uns anys m'hagués posat a riure ).

I la pregunta? ... doncs si algú de vosaltres s'ha trobat el mateix desgavell i com ho ha resol.



Hola Lluís, entenc que els perfils dels usuaris estan a un recurs NFS i que us interessa que els perfils estiguin en el servidor per a facilitar les tasques de manteniment i de copia de seguretat.

Jo em vaig trobar un tema similiar pero era en un sistema amb MSWindows. Tot i ser un altre S.O. la problemàtica és la mateixa. Jo més que moure amunt i avall de la xarxa el perfil el que faria es fer servir rsync. rsync té la particularitat que en els arxius grans no copia l'arxiu sencer sinó que intenta copiar només la part del mateix que ha canviat minimitzant al màxim el tràfic a la xarxa. SI a més fas servir el dimoni rsync al servidor (molt recomanable) podràs fer servir un paràmetre que n'activa la compressió estalviant encara més espai. Uns scripts similars als que et poso més avall (pero en format de lots de windows) és el que es va fer servir per a que els usuaris tinguessin els seus perfils a través d'Internet i els portàtils obrissin el perfil independentment d'on estiguessin.

La idea és que en el log-in es bloqui el perfil en el servidor y que despres es copii al local. Després activem el perfil local. En el logout desactivem el perfil local copiem al servidor i activem al servidor. L'script sería per a tot el perfil complet, pero es podria aplicar només a una carpeta.

Et faig una descripció de l'script en pseudo-codi:

Script per a login:

# Comprovem si ja tenim el perfil
Si existeix /servidor/perfils/$usuari.lock aleshores
  Si no existeix /home/usuari aleshores
      missatge "El perfil està bloquejat. Consulti l'administrador"
      surt error
  fiSi
fiSi

# Bloquejam el perfil.
Si no existeix /servidor/perfils/$usuari.lock aleshores
  mou /servidor/perfils/$usuari mv /servidor/perfils/$usuari.lock
fiSi

# Actualitzem el perfil local.
rsync /servidor/perfils/$usuari.lock /home/$usuari.lock

# Desbloquejem el perfil local.
mou /home/$usuari.lock /home/usuari


Script per al logoff:

# Bloquejem el perfil local.
mou /home/$usuari /home/usuari.lock

# Actualitzem el perfil remot.
rsync /home/$usuari.lock /servidor/perfils/$usuari.lock

# Alliberem el perfil remot.
mou /servidor/perfils/$usuari.lock mv /servidor/perfils/$usuari


Faltaría afegir-hi control d'errors i etc.. pero bàsicament la idea és la indicada. En cas de que l'usuari no tanqui correctament seguirà tenint el perfil en el seu ordenador, i fins que no tanqui correctament sessió (o l'administrador desbloquegi manualment el seu perfil) no podra iniciar sessió en cap d'altre ordenador. Al ser el canvi de nom la primera operació s'evita que es pugi donar la casualitat d'un inici de sessio des de 2 ordenadors alhora (ja que s'haurien de donar en la mateixa collonesima (1 = collonessima és una part ínfima d'un segon)). Funciona tal i com ho fan de forma esquemàtica les transaccions de les bases de dades.


Reply to: