Sincronizzare due cartelle, Linux, Win e smbfs
Iniziamo subito col dire che su un vecchio pc (Windows) ho circa 6 giga di mp3 suddivisi e organizzati in cartelle Genere –>Artista –>Album –>Traccia.mp3 in maniera molto ordinata e carina. Sul pc nuovo (Linux) ho continuato a seguire lo stesso schema per comodità, visto che mi ero abituato, con l’intento un domani poi di ricopiare tutta la musica su un unico pc.
Malauguratamente in una situazione di emergenza ho dovuto copiare alcuni album da un pc all’altro, cosicchè non ho potuto più usare il semplice copia incolla, dal momento che in caso di cartelle con lo stesso nome, sia windows sia linux chiedono se skippare o sovrascrivere tutta la cartella, ma con nessuno dei due si può scegliere di copiare solo i file che su un lato mancano.
L’alternativa è senz’altro utilizzare uno di quei programmini per ’sincronizzare due cartelle’, ma la situazione si complica.
Molti programmi, per controllare se due file sono uguali, calcolano un qualche hash, dal md5 al crc32, in ogni caso una operazione che richiede la disponibilità dei file sullo stesso pc facendo quindi una copia preventiva del tutto inutile (come ad esempio, uno su tutti Komparator).
L’unico sistema quindi è quello di bypassare il controllo CRC, ed eseguire il controllo sul solo nome del file. Altro problema: utilizzando il filesystem samba i nomi con gli accenti e tutte le lettere accentate, per un arcano motivo, diventano codificati in maniera ultrastrana. Ho provato impostando il locale it_IT@euro, impostando il codepage ed il charset. Nessun verso per leggere correttamente i nomi dei file con caratteri speciali o semplici accenti.
Cercando documentazione su smbfs, leggo che è ormai obsoleto (dal 1996
) , ed è necessario usare il nuovo protocollo cifs (Common Internet File System). I due filesystem lavorano in maniera molto simile, il nome della condivisione resta lo stesso, con l’unica differenza che non è più possibile usare il nome dell’host windows, ma è necessario specificare l’indirizzo ip.
Aggiunto nel fstab la classica riga
//IndirizzoIpWin/Condivision /Mount/Point cifs umask=000,guest 0 0 la cartella viene montata correttamente et voilà, le lettere accentate sono al loro posto.
Non mi resta che lanciare rsync con la sintassi seguente
rsync -r -v --progress --ignore-existing --size-only -u /Mount/Point/ /Path/to/my/Mp3/Collection/ e gustarsi lo spettacolo della creazione dell’indice, l’aggiornamento in tempo reale della velocità di trasferimento e del numero totale dei file da copiare.
Nessuna paura nel caso di disconnessioni improvvise della wifi: rsync è fatto appositamente per sincronizzare le cartelle, e per questo può essere lanciato più e più volte e non effettuerà mai copie ridondanti o operazioni inutili. Applausi per rsync, cifs e ovviamente linux.
November 11th, 2007 at 2:01 pm
complimenti per il suggerimento, era proprio quello che cercavo! io vorrei sincronizzare una serie di cartelle, schedulando con cron, in modo da backuppare i dati dal mio pc al nas nell’altra stanza.
Sto leggendo il man di rsync, ma ancora non ho trovato il modo di fare in modo che se tolgo una cartella dal pc me la toglie anche dal nas, senza che invece me la ripristini Nas=>pc.Hai qualche suggerimento?
Ah, un’ultima cosa: c’è la possibilità di escludere una sottocartella? Ad esempio “–exclude /documenti/imaggini”.
così potrei far sincronizzare le cartelle con molti file in notti diverse
January 2nd, 2008 at 2:15 pm
A ME PIACCIONO LE IMAGGINI DI ANIMALI