GNU/Linux >> Znalost Linux >  >> Linux

Jak synchronizovat soubory / složky od určitého data dopředu?

Řešení 1:

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

Řešení 2:

Chtěli byste udělat find pak sync

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

Řešení 3:

Za předpokladu, že chcete synchronizovat nějakou složku ze serveru do místní složky, ale vždy chcete synchronizovat pouze soubory, které byly vytvořeny od poslední synchronizace. Pak může být užitečný následující příkaz. Když to vložíte, např. váš .bashrc definuje alias, který synchronizuje všechny nově vytvořené soubory. Soubory lze lokálně smazat a nebudou znovu synchronizovány při opětovném volání příkazu synchronizace. Do místní složky budou zkopírovány pouze soubory, které byly vytvořeny po poslední synchronizaci na serveru.

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"

Řešení 4:

Úprava odpovědi od Thomase, která se synchronizuje na základě data úpravy souboru do skriptu, aby byla lépe čitelná pro lidi a synchronizovala také vnořené složky.

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

Pro init byste pravděpodobně měli vytvořit last_sync soubor na dálku, ke kterému se hodí následující příkaz

touch -d "2 hours ago" last_sync

který vytvoří soubor s názvem last_sync s datem vytvoření před 2 hodinami.


Linux
  1. Jak selektivně umlčet Rsync?

  2. linuxové sloučení složek:rsync?

  3. Jak vynutím konkrétní oprávnění pro nové soubory/složky na souborovém serveru Linux?

  1. Jak používat Rsync k synchronizaci nových nebo změněných/upravených souborů v Linuxu

  2. Jak vyloučit konkrétní adresáře z kopírování v Linuxu

  3. Jak rekurzivně odebrat oprávnění ke spouštění ze souborů, aniž byste se dotkli složek?

  1. Jak obnovit jednotlivé soubory nebo složky ze zálohy Plesk

  2. Naučte se kopírovat soubory a složky z/na jiný server

  3. Jak zip/rozbalit soubory/složky na Centos?