Geek IT: come mantenere i file con lo stesso nome in sincronizzazione

Sommario:

Geek IT: come mantenere i file con lo stesso nome in sincronizzazione
Geek IT: come mantenere i file con lo stesso nome in sincronizzazione

Video: Geek IT: come mantenere i file con lo stesso nome in sincronizzazione

Video: Geek IT: come mantenere i file con lo stesso nome in sincronizzazione
Video: Outlook 2010 Jump to a Date - YouTube 2024, Aprile
Anonim
Probabilmente hai sentito parlare di servizi, come Dropbox, che vengono utilizzati per mantenere i file sincronizzati su più macchine. Tuttavia, cosa succede se si desidera eseguire questa operazione su una singola macchina? Cioè, mantenere i file che hanno lo stesso nome di file sincronizzati attraverso la macchina in modo tale che quando uno dei file cambia, vengono tutti aggiornati.
Probabilmente hai sentito parlare di servizi, come Dropbox, che vengono utilizzati per mantenere i file sincronizzati su più macchine. Tuttavia, cosa succede se si desidera eseguire questa operazione su una singola macchina? Cioè, mantenere i file che hanno lo stesso nome di file sincronizzati attraverso la macchina in modo tale che quando uno dei file cambia, vengono tutti aggiornati.

Questa funzionalità può essere molto utile, specialmente per gli sviluppatori o gli amministratori di sistema in cui talvolta è richiesta la duplicazione dei file.

Come funziona

Supponiamo che tu sia uno sviluppatore web che, nel corso del tempo, ha messo insieme una bella raccolta di funzioni Javascript che usi in tutti i siti che conservi. Quando aggiungi o migliora questo file Javascript (chiamiamolo "library.js"), viene aggiornata solo la copia corrente che stai modificando. Ciò significherebbe, ad esempio, se si apportano correzioni o miglioramenti di bug, si dovrebbe andare manualmente ad applicarlo anche a ciascuna cartella del codice sorgente degli altri siti.

Il nostro strumento tenta di risolvere il problema di dover andare manualmente ad applicare il file aggiornato a ciascuna cartella di origine. Cosa fa:

  1. Cerca tutti i file con un nome specificato (library.js) all'interno di una cartella radice specificata (% UserProfile% Documents Web Sites).
  2. Per tutti i file denominati library.js, individua quello che è stato modificato più di recente e prende nota del valore hash del file.
  3. Tutti gli altri file denominati library.js (che non sono la copia aggiornata più recente) hanno quindi il loro valore hash del file confrontato con il più recente (determinato nel passaggio precedente).
  4. Se i valori dell'hash del file sono diversi, la rispettiva copia di library.js viene sostituita con la copia aggiornata più recentemente.

Poiché stiamo utilizzando i valori hash per confrontare i file, siamo certi che qualsiasi file sostituito è effettivamente diverso dalla copia più recente. Ad esempio, se si eseguisse il processo e fossero state eseguite 5 sostituzioni di file, l'esecuzione del processo subito dopo non avrebbe apportato alcuna sostituzione poiché i valori dell'hash del file ora sono identici.

Aggiorna allo strumento di copia più recente

Lo strumento Aggiorna allo strumento Copia più recente è una versione modificata di uno script batch con lo stesso nome (entrambi sono disponibili per il download utilizzando i collegamenti nella parte inferiore dell'articolo) che è stato convertito in un file EXE per includere il Nirsoft richiesto Utility HashMyFiles. Lo strumento deve essere eseguito dalla riga di comando con determinati parametri specificati. Se si dovesse semplicemente eseguire il file EXE facendo doppio clic, verrà visualizzato un messaggio che lo indica.

Per utilizzare l'aggiornamento alla più recente copia, è possibile visualizzare i parametri eseguendo "UpdateToNewestCopy /?" Che mostra la seguente finestra di dialogo:

Gli unici parametri obbligatori sono SourceFolder (ad esempio% UserProfile% Documents Web Sites) e FileName (library.js). Tuttavia, è possibile modificare la funzionalità aggiungendo ulteriori opzioni come descritto sopra.
Gli unici parametri obbligatori sono SourceFolder (ad esempio% UserProfile% Documents Web Sites) e FileName (library.js). Tuttavia, è possibile modificare la funzionalità aggiungendo ulteriori opzioni come descritto sopra.

Esempi

Il seguente comando troverà tutti i file denominati "Common.vb" nella cartella "C: users jfaulkner documents Code Files", eseguendo la sostituzione ma facendo un backup della copia corrente prima di sovrascrivere (questo output è ciò che ha prodotto il file immagine in alto per questo articolo):

UpdateToNewestCopy “C:usersjfaulknerdocumentsCode Files” Common.vb /B

Il seguente comando esegue la stessa azione di ricerca di cui sopra, tuttavia riporta solo i file che verrebbero sostituiti e in realtà non esegue alcuna operazione sui file:

UpdateToNewestCopy “C:usersjfaulknerdocumentsCode Files” Common.vb /V

Supponiamo che esista un file denominato "C: Config FilesToSearch.txt" con i seguenti contenuti:

library.js Common.vb

Il seguente comando cercherebbe la cartella dei miei documenti dell'utente corrente e riferirebbe su eventuali aggiornamenti a "library.js" e "Common.vb", ma in realtà non eseguirà alcuna operazione di aggiornamento:

UpdateToNewestCopy “%UserProfile%Documents” “C:ConfigFilesToSearch.txt” /L /V

Automatizzare il processo

Questo processo è un candidato ideale per l'automazione. Creando un'attività programmata (niente di speciale richiesto) con le impostazioni specificate e facendola funzionare ogni giorno / ogni 15 minuti (a seconda delle esigenze), puoi mantenere i file sincronizzati in vero set-it-and-forget-it moda.

Scaricare

Aggiorna alla più recente copia - formato eseguibile modificato

Aggiorna alla copia più recente - file batch di origine (più orientato alla riga di comando)

Consigliato: