Sincronizza solo i nuovi file


1

Ho una grande raccolta di foto. Voglio solo sincronizzare le ultime (nel mio caso in questo momento 1 anno) con un laptop.

Ho provato syncovery e Goodsync senza vedere alcun modificatore che selezionasse solo i file nuovi / recenti. Ho email in sospeso con syncovery perché qualcuno ha pensato che fosse possibile ma non ho visto un'opzione.

Un altro lettore ha suggerito il comando Robocopy. Leggendo i modificatori non sono riuscito a trovare il modo esatto di filtrare solo i nuovi file E rimuovere tutti i vecchi file dalla directory di destinazione. (Se lo copio, vorrei rimuoverlo dopo 1 anno. Continuando a copiare i nuovi file).

Grazie per tutto l'aiuto

Risposte:


1

Vorrei riassumere ciò che penso che tu voglia (per chiarezza):

  • Volete copiare, da una directory di foto, solo i file più recenti, non più vecchi di 365 giorni su un laptop.
  • Su quel laptop vuoi eliminare i file (da quella directory) più vecchi di 365 giorni.

Con robocopyte puoi farlo in un paio di righe. (Non penso che ci sia un modo per farlo in un "one-liner".)

@echo off

:: set your directories
set photo_collection=\\server\data\photos
set laptop_photos=\\laptop\data\photos

:: this is a temporary delete directory where robocopy move older files.
set robo_delete=%temp%\~robodel

:: this will move photos older than 365 to a "delete"-directory
:: /CREATE files are NOT actually copied but created as 0-files, this is faster
robocopy "%laptop_photos%" "%robo_delete%" /e /MOVE /CREATE /MINAGE:365

:: this temporary directory is deleted
rmdir "%robo_delete%" /s /q

:: this will copy only newer photos, never older than 365 days, to the laptop
robocopy "%photo_collection%" "%laptop_photos%" /MIR /MAXAGE:365

Appunti:

  • Le ::righe sono solo commenti e possono essere rimosse.

  • Ho usato \\\server\datae \\laptop\dataper mostrare che è possibile utilizzare percorsi UNC. Puoi, ovviamente, semplicemente usare C:\source_of_photose D:\laptop_directoryo qualcosa del genere.

  • La directory del laptop è sempre un backup di file (foto) più recenti di 365 giorni . Se le cose vanno male hai sempre gli originali \\server\data\photos. Non eliminare alcuna foto dalla directory originale perché poi saranno persi per sempre.

  • I file più vecchi vengono temporaneamente spostati in %temp%\~robodel. Con il /CREATEloro non vengono effettivamente spostati, ma viene creato un file 0 per esso. Questo è molto più veloce.


Grazie per l'aiuto! Ci proverò e tornerò da te
davefromcamp

1

Ho provato quanto segue e funziona, ma per favore fai i backup prima di provarlo. L'ho fatto.

Perché vuoi che questo elimini sempre i vecchi file sulla destinazione, è un po 'complicato ottenere i risultati desiderati, ma sicuramente fattibile.

Scarica un software chiamato Syncback , il migliore secondo me.

Dovrai creare 2 profili di specchi.

Profilo n. 1 - Profilo principale:

1 - Crea a new profile

2 - Scegli Mirror

3 - Scegli Source and destination

4 - Fare clic su Expertsul lato sinistro dello schermo

5 - Naviga verso Compare Options / Date & Time

6 - Impostato su: ignora i file che sono have NOTstati modificati within the last 365giorni.

Oppure, cambia di conseguenza in base alle tue necessità.

inserisci qui la descrizione dell'immagine

Questo è tutto per questo profilo

Profile # 2 - Cleanse Profile

Questo è un profilo fittizio creato solo per eliminare vecchi file dalla destinazione.

1 - Crea a new profile

2 - Scegli mirror

3 - sourceScegli una cartella che sarà sempre vuota. Puoi creare una cartella ovunque nel tuo disco, assicurati solo che non venga mai toccata e che sia sempre vuota.

4 - La destinationcartella sarà la stessa del profilo principale

5 - Fare clic su Expertsul lato sinistro dello schermo

6 - Naviga verso Compare Options / Date & Time

7 - Impostato su: ignora i file che hanno have beenmodificato i within the last 365giorni.

Oppure, cambia di conseguenza in base alle tue necessità.

Nota, il 1stprofilo non è stato , il 2ndprofilo è stato .

È possibile utilizzare il software per eseguire entrambi i profili come gruppo, eseguirli entrambi manualmente o pianificarli entrambi. Assicurati che il profilo n. 1 venga eseguito per primo e che ci sia tempo sufficiente per copiare tutto.

È tutto.

Sembra complicato ma è molto semplice. Questo è ora che ho capito come farlo.

Godere.

inserisci qui la descrizione dell'immagine


Ciò non eliminerà i file nella destinazione più vecchia di 365 giorni. O c'è un'opzione aggiuntiva per quello? If I copy it over I would want to have it removed after 1 year.
Rik,

Non ti sto seguendo, vuoi copiare prima tutto, quindi copiare solo quelli nuovi o vuoi solo copiare quelli nuovi? Ad ogni modo, nell'immagine sopra, fai clic su Decisione - File e ti darà la possibilità di cosa fare se un file esiste a sinistra o no a destra e viceversa, se un file è più vecchio ma uguale. C'è anche l'opzione delle versioni. Devi solo configurarlo nel modo desiderato, ma può sicuramente fare il lavoro per quello che ti serve.
riseagainst

Un altro pensiero è che puoi creare una cartella solo per provare le tue regole. Crea una copia di backup locale della cartella delle foto e prova le regole. Quando si copia un file, la "data di creazione" cambia, ma non la "data di modifica". In questo modo puoi provare senza paura.
riseagainst

A quanto ho capito (riassunto nella mia risposta) è che vuole un backup della directory di foto sul suo laptop con solo file più recenti di un anno . Pertanto, la funzione di copia deve copiare nuovi file (più recenti di un anno) ma anche eliminare tutti i file più vecchi di un anno sul laptop. I file più vecchi di un anno dovrebbero rimanere sull'originale.
Rik,

In tal caso, che era anche la mia comprensione iniziale, la risposta originale avrebbe funzionato. Ciò si sta sincronizzando solo sui file più recenti di 365 giorni.
reseagainst

0

Puoi provare rsync con il flag --ignore-esistente . Forniamo una versione di Windows chiamata cwRsync . È disponibile un'edizione gratuita.


Ciò non eliminerà i file nella destinazione più vecchia di 365 giorni. O c'è un'opzione aggiuntiva per quello? If I copy it over I would want to have it removed after 1 year.
Rik,

No. Rsync è uno strumento di sincronizzazione unidirezionale. L'eliminazione di file più vecchi di un anno è una sorta di attività di manutenzione. Tuttavia, abbiamo scritto un plugin Nagios chiamato check_winfile che può aiutare - check_winfile - directory target - filtro "age lt -1 year" - l'eliminazione farà il lavoro. È possibile creare prima un file batch che esegue rsync e quindi check_winfile per la manutenzione.
itefix
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.