GNU/Linux >> Linux Esercitazione >  >> Linux

Come sincronizzare file/cartelle da una data specifica in avanti?

Soluzione 1:

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

Soluzione 2:

Vorresti fare un find poi sync

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

Soluzione 3:

Supponendo che tu voglia sincronizzare alcune cartelle da un server a una cartella locale, ma vuoi sempre sincronizzare solo i file che sono stati creati dall'ultima sincronizzazione. Quindi il seguente comando potrebbe essere utile. Inserendo questo, ad esempio, il tuo .bashrc definisce un alias che sincronizza tutti i file appena creati. I file possono essere eliminati localmente e non verranno sincronizzati nuovamente quando si chiama nuovamente il comando di sincronizzazione. Solo i file che sono stati creati dopo l'ultima sincronizzazione sul server verranno copiati nella cartella locale.

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"

Soluzione 4:

Modifica della risposta di Thomas che si sincronizza in base alla data di modifica di un file in uno script, per essere più leggibile dall'uomo e sincronizzare anche le cartelle nidificate.

#!/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

Per init si dovrebbe probabilmente creare un last_sync file in remoto, a cui torna utile il seguente comando

touch -d "2 hours ago" last_sync

che crea un file chiamato last_sync con una data di creazione di 2 ore fa.


Linux
  1. Come comprimere/decomprimere file/cartelle su Centos?

  2. Come si eliminano i file più vecchi di una data specifica in Linux?

  3. Linux unisci cartelle:rsync?

  4. Come posso forzare autorizzazioni specifiche per nuovi file/cartelle sul file server Linux?

  5. File specifici di Linux (mv o cp) da un elenco di file di testo?

Come escludere file e directory con Rsync

Come trasferire file con Rsync su SSH

Come organizzare automaticamente tipi simili di file in cartelle specifiche

Come utilizzare Rsync per copiare/sincronizzare file tra server

Sincronizza due cartelle locali in bash

Come impedire a un processo di scrivere file