GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann ich Dateien/Ordner ab einem bestimmten Datum synchronisieren?

Lösung 1:

rsync --progress --files-from=<(find /src_path -mtime -3 -type f -exec basename {} \;) /src_path/ /dst_path

Lösung 2:

Sie möchten einen find machen dann sync

find /path -file -mtime +3 -exec rsync {} destination \;

Lösung 3:

Angenommen, Sie möchten einen Ordner von einem Server mit einem lokalen Ordner synchronisieren, möchten aber immer nur die Dateien synchronisieren, die seit der letzten Synchronisierung erstellt wurden. Dann könnte der folgende Befehl nützlich sein. Wenn Sie dies einfügen, definiert z. B. Ihre .bashrc einen Alias, der alle neu erstellten Dateien synchronisiert. Die Dateien können lokal gelöscht werden und werden bei erneutem Aufruf des Sync-Befehls nicht erneut synchronisiert. Nur Dateien, die nach der letzten Synchronisierung auf dem Server erstellt wurden, werden in den lokalen Ordner kopiert.

TARGET=/local/target/folder/
SOURCE=/server/folder/
alias sync-since-last="touch $TARGET/last_sync && rsync -ahv --update --files-from=<(ssh [email protected] 'find $SOURCE/source/ -type f -newer $SOURCE/last_sync -exec basename {} \;') [email protected]:$SOURCE/source/ $TARGET && rsync -ahv $TARGET/last_sync [email protected]:$SOURCE"

Lösung 4:

Ändern der Antwort von Thomas, die basierend auf dem Änderungsdatum einer Datei mit einem Skript synchronisiert wird, um besser lesbar zu sein und auch verschachtelte Ordner zu synchronisieren.

#!/bin/bash

TARGET=/PATH/TO/TARGET
[email protected]
SOURCE=/ABSOLUTE/SOURCE/PATH/ON/HOST

touch $TARGET/last_sync

rsync \
    -ahrv \
    --update \
    --files-from=<(ssh $HOST "find $SOURCE -type f -newer $SOURCE/last_sync -exec realpath --relative-to=$SOURCE '{}' \;") \
    $HOST:$SOURCE \
    $TARGET

rsync -ahv $TARGET/last_sync $HOST:$SOURCE

Für init sollte man wohl einen last_sync erstellen Datei aus der Ferne, für die sich der folgende Befehl als nützlich erweist

touch -d "2 hours ago" last_sync

wodurch eine Datei namens last_sync erstellt wird mit einem Erstellungsdatum von vor 2 Stunden.


Linux
  1. So schließen Sie bestimmte Verzeichnisse vom Kopieren in Linux aus

  2. Wie kann man Rsync selektiv stumm schalten?

  3. Erfahren Sie, wie Sie Dateien und Ordner von/auf einen anderen Server kopieren

  4. Wie man Verzeichnisse rekursiv mit rsync kopiert und dabei bestimmte Dateien ausschließt

  5. Linux-Ordner zusammenführen:rsync?

So schließen Sie Dateien und Verzeichnisse mit Rsync aus

So übertragen Sie Dateien mit Rsync über SSH

So organisieren Sie automatisch ähnliche Dateitypen in bestimmten Ordnern

So verwenden Sie Rsync zum Kopieren/Synchronisieren von Dateien zwischen Servern

So verhindern Sie, dass ein Prozess Dateien schreibt

Linux (mv oder cp) spezifische Dateien aus einer Textliste von Dateien?