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: