GNU/Linux >> Tutoriels Linux >  >> Linux

Comment synchroniser des fichiers/dossiers à partir d'une date spécifique ?

Solution 1 :

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

Solution 2 :

Vous voudriez faire un find puis sync

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

Solution 3 :

En supposant que vous souhaitiez synchroniser un dossier d'un serveur vers un dossier local, mais que vous souhaitiez toujours synchroniser uniquement les fichiers créés depuis la dernière synchronisation. Alors la commande suivante peut être utile. En mettant cela, par exemple, votre .bashrc définit un alias qui synchronise tous les fichiers nouvellement créés. Les fichiers peuvent être supprimés localement et ne seront plus synchronisés lors du nouvel appel de la commande de synchronisation. Seuls les fichiers créés après la dernière synchronisation sur le serveur seront copiés dans le dossier local.

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"

Solution 4 :

Modification de la réponse de Thomas qui se synchronise en fonction de la date de modification d'un fichier vers un script, pour être plus lisible par l'homme et synchroniser également les dossiers imbriqués.

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

Pour init, il faudrait probablement créer un last_sync fichier à distance, auquel la commande suivante est pratique

touch -d "2 hours ago" last_sync

qui crée un fichier nommé last_sync avec une date de création d'il y a 2 heures.


Linux
  1. Comment utiliser Rsync pour synchroniser des fichiers nouveaux ou modifiés/modifiés sous Linux

  2. Comment restaurer des fichiers ou des dossiers individuels à partir de Plesk Backup

  3. Comment compresser/décompresser des fichiers/dossiers sur Centos ?

  4. Comment copier des répertoires de manière récursive à l'aide de rsync tout en excluant des fichiers spécifiques

  5. dossiers de fusion Linux :rsync ?

Comment exclure des fichiers et des répertoires avec Rsync

Comment transférer des fichiers avec Rsync sur SSH

Comment organiser automatiquement des types de fichiers similaires dans des dossiers spécifiques

Comment utiliser Rsync pour copier/synchroniser des fichiers entre des serveurs

Synchroniser deux dossiers locaux dans bash

Comment empêcher un processus d'écrire des fichiers