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.