<div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">&nbsp; &nbsp; A. in fase di login copi dal server sul PC<br>
 &nbsp; &nbsp; B. modifichi i file in locale fino a quando lavori<br>
 &nbsp; &nbsp; C. in fase di logoff salvi dal PC al server e buona notte<br>
<br>
In questo caso, e cioè quando tutto funziona la cosa è una favola.<br>
Puoi fare il backup del server ed avere la possibilità di ripristino di<br>
un file corrotto.<br>
<br>
Ma a questo puto iniziano le visioni pessimistiche<br>
mentre sei in B va giù la rete... devi spegnere ma non puoi salvare.<br>
allora il logon successivo in fase A sovrascrivi tutte le modifiche<br>
fatte mentre eri in fase B precedentemente.<br>
Questo si potrebbe ovviare, ma cosa succederebbe se la rete va giù<br>
mentre stai facendo la fase C, e quindi hai alcuni file salvati e altri<br>
non salvati?<br>
Io ti consiglio di fare uno schema di tutto il flusso che vuoi<br>
implementare, e poi andare a focalizzare tutti i possibili punti di<br>
failure. A questo punto cominci a creare lo script e a mettere tutte le<br>
IF per i controlli del caso. E poi ... ne parliamo<br>
<br>
La cosa è comunque interessante.. possiamo continuare a parlarne e<br>
vedere di arrivare ad una soluzione interessante e a prova di errori.<br>
<div><div></div><div class="Wj3C7c"><br>
--<br>
Ciao<br>
 &nbsp; &nbsp; &nbsp; &nbsp;Pirla</div></div></blockquote><div><br>Ho un pò di esperienza su come funzionano i roaming profile sotto windows, quindi penso di avere un bello schema su come far funzionare il tutto, ma mi mancano dei dettagli su cosa fa effettivamente rsync. In particolare: rsync durante una sincronizzazione inizia a scrivere effettivamente il file da sincronizzare (cosa che mi risulta antipatica in quanto se si interrompe il collegamento mi ritrovo un file danneggiato) o se usa un metodo più sicuro ad es. preparando un file temporaneo che poi, a fine trasmissione va a sotituire quello da aggiornare. Capire questo mi è fondamentale per decidere se tenere due copie di ogni profilo sulla macchina locale o meno:<br>
<br>caso 1: rsync scrive effettivamente sul file (rischio danneggiamento in caso di mancanza di rete):<br>Fase login:<br>1 se il server col profilo remoto non è disponibile uso il profilo locale e creo un file che indica l&#39;errore<br>
2 se il server col profilo remoto ha una verione del profilo remoto incompleta (*) uso il profilo locale ed avverto l&#39;utente di contattare l&#39;admin e creo un file che indica l&#39;errore<br>3.1 sincronizzo un profilo locale temporaneo con il profilo locale (profilo temporaneo = profilo locale)<br>
3.2 sincronizzo il profilo temporaneo con quello remoto (profilo temporaneo = profilo remoto)<br>3.3 se il punto 3.2 non va a buon fine uso il profilo locale<br>3.4 se il punto 3.2 va a buon fine sincronizzo il profilo locale col temporaneo (profilo locale = profilo temporaneo)<br>
Fase logout:<br>
1 se il server col profilo remoto non è disponibile faccio il logout effettivo<br>
2 creo un file di lock sul server remoto (magari col nome della macchina di cui sto tentando la sincronizzazione)<br>
3 se esite il file di errore faccio rsync senza l&#39;opzione di
cancellazione (meglio che l&#39;utente si ritrovi i file cancellati al
prossimo login che perdere un file) e cancello il file di errore<br>

3 altrimenti sincronizzo il profilor remoto con quello locale (profilo remoto = profilo locale)<br>

4 se il punto 3 è andato a buon fine cancello il file di lock e faccio il logout effettivo<br>

5 se il punto 3 non è andato a buon fine faccio il logout effettivo<br>

<br>caso 2: rsync scrive sul file solo se ha finito la ricezione dal server<br>Fase login:<br>1 se il server col profilo remoto non è disponibile uso il profilo locale e creo un file che indica l&#39;errore<br>2
se il server col profilo remoto ha una verione del profilo remoto
incompleta (*) uso il profilo locale ed avverto l&#39;utente di contattare
l&#39;admin e creo un file che indica l&#39;errore<br>3.1 sincronizzo il profilo locale con quello remoto (profilo locale = profilo remoto)<br>3.2 se il punto 3.2 non va a buon fine: avverto l&#39;utente di contattare l&#39;admin<br>
Fase logout:<br>1 se il server col profilo remoto non è disponibile faccio il logout effettivo<br>2 creo un file di lock sul server remoto (magari col nome della macchina di cui sto tentando la sincronizzazione)<br>3 se esite il file di errore faccio rsync senza l&#39;opzione di cancellazione (meglio che l&#39;utente si ritrovi i file cancellati al prossimo login che perdere un file) e cancello il file di errore<br>

3 altrimenti sincronizzo il profilor remoto con quello locale (profilo remoto = profilo locale)<br>
4 se il punto 3 è andato a buon fine cancello il file di lock e faccio il logout effettivo<br>
5 se il punto 3 non è andato a buon fine faccio il logout effettivo<br>
<br>(*) il controllo viene fatto verificando la presenza del file di lock che sta ad indicare che: qualche altra macchina sta facendo il logout dallo stesso profilo o che l&#39;ultimo logout non è stato completato e quindi il profilo remoto non è consistente<br>
</div></div><br>Volendo si aggiunge un cron sul server che va a controllare se esitono file di lock nei profili ed avverte l&#39;admin (ma potrebbero esserci falsi positivi)<br><br>Credo che sia abbastanza completo tranne la situazione in cui lo stesso utente faccia un login da una seconda macchina mentre è ancora loggato nella prima (ma anche microzozz se ne sbatte di questo caso)<br>
Che ne dite?<br>