-
LINUX > rsync en guise de RAID-1
rsync -a source/ destination/
-apour la récursivité et préserver pratiquement tout./pour ne pas créer un nouveau dossier nommé source.Ainsi, les deux commandes suivantes ne sont pas équivalentes :
rsync source destination/ rsync source/ destination/
La première commande va créer un dossier source dans le dossier destination en ajoutant un niveau dans l’arborescence.
La deuxième commande copie le contenu du dossier source dans le dossier destination.
Autrement dit, les deux commandes suivantes sont, elles, équivalentes :
rsync source destination/ rsync source/ destination/source/
EXEMPLE
copie à l’identique le dossier <source> vers le dossier <destination> :
rsync -av --delete-after /home/source user@ip_du_serveur:/dossier/destination/
--delete-afterà la fin du transfert, supprime les fichiers dans le dossier de destination ne se trouvant pas dans le dossier source.-vverbeux-nla commande liste ce qu’elle va faire sans l’exécuter:rsync -avzn --delete-after /chemin/source toto@192.168.0.3:/chemin/dest/
Exclure des fichiers
Pour ne pas sauvegarder le dossier_1 et le dossier_2 :
rsync --exclude="dossier_1" --exclude="dossier_2" source/ destination/
———
rsync -t *.c /src/
transfère tous les fichiers *.c du répertoire courant vers le répertoire src
rsync -av /src/bar /dest/tmp
Les fichiers sont transférés en mode «archive», ce qui assure la préservation des liens symboliques, périphériques, attributs, permissions, propriétés, etc lors du transfert.
rsync -av /src/bar/ /dest/tmp
LISTE DES OPTIONS
-vverbeux-qsilencieux-cutilise la somme de contrôle, pas la date ni la taille-amode archivage; identique à-rlptgoD(pas-H)-rvisite récursive des répertoires-Rutilise des noms de chemins relatifs--no-relativedésactive--relative--no-implied-dirsne transmet pas les répertoires implicites de-R-b,--backupeffectue des sauvegardes (cf.--suffixet--backup-dir)--backup-dir=RÉPeffectue des sauvegardes dans le répertoire RÉP--suffix=SUFFIXEsuffixe de sauvegarde («~» par défaut sauf si--backup-dir)-u,--updatesaute les fichiers plus récents chez le destinataire--inplacemise à jour de fichiers sur place-d,--dirsne transfert pas les répertoires récursivement-l,--linkscopie les liens symboliques comme liens symboliques-L,--copy-linkstransforme les liens symboliques par les fichiers référencés--copy-unsafe-linksne transforme que les liens «non-sûrs»--safe-linksignore les liens extérieurs à l’arborescence-H,--hard-linkspréserve les liens matériels-K,--keep-dirlinkstraite les liens de répertoire comme des répertoires-p,--permspréserve les permissions-o,--ownerpréserve le propriétaire (root uniquement)-g,--grouppréserve le groupe-D,--devicespréserve les périphériques (root uniquement)-tpréserve les dates-O,--omit-dir-timesomet les répertoires lors de la préservation de date-S,--sparsetraite les fichiers à trous efficacement-n,--dry-runmontre ce qui aurait été transféré-W,--whole-filecopie les fichiers entiers (jamais l’algorithme rsync)--no-whole-filetoujours utiliser l’algorithme rsync incrémental-x,--one-file-systemne traverse pas les limites du système de fichiers-B,--block-size=TAILLEforce la taille de bloc de la somme de contrôle-e,--rsh=COMMANDEspécifie un shell distant--rsync-path=PROGRAMMEspécifie le nom de l’exécutable rsync chez le récepteur--existingmet à jour uniquement les fichiers qui existent déjà--ignore-existingignore les fichiers qui existent déjà--remove-sent-filesles fichiers envoyés sont supprimés de chez l’émetteur--delsynonyme pour--delete-during--deleteefface les fichiers qui n’existent pas chez l’émetteur--delete-beforeefface avant le transfert (par défaut)--delete-duringefface au cours du transfert, pas avant--delete-afterefface après transfert, pas avant--delete-excludedefface également les fichiers exclus côté réception--ignore-errorsefface même s’il y a eu des erreurs E/S--forceforce la suppression de répertoires même non-vides--max-delete=NUMn’efface pas plus de NUM fichiers--max-size=TAILLEne transfert le fichiers plus gros que TAILLE--partialconserve les fichiers partiellement transférés--partial-dir=RÉPplace les fichiers partiellement transférés dans RÉP--delay-updatesne remplace les fichiers mis à jour qu’à la fin--numeric-idsne remplace pas les uid/gid par des noms d’utilisateur/groupe--timeout=DURÉEfixe la durée d’attente E/S en secondes-I,--ignore-timesne saute pas les fichiers similaires par la taille et la date--size-onlysaute les fichiers qui sont similaires par la date--modify-window=NUMcompare les dates avec une précision moins fine-T,--temp-dir=RÉPcrée des fichiers temporaires dans le répertoire RÉP-y,--fuzzyse base sur des fichiers similaires si le fichier manque--compare-dest=RÉPcompare les fichiers transmis également à RÉP--copy-dest=RÉP…et inclut les fichiers non modifiés--link-dest=RÉPcrée un lien matériel vers les fichiers de RÉP si non modifiés-z,--compresstransfert en compressant les données-C,--cvs-excludeignore automatiquement des fichiers, comme le ferait CVS-f, --filter=RÈGLEajoute une règle de filtrage de fichier--exclude=MOTIFexclut les fichiers correspondant au MOTIF--exclude-from=FICHIERlit des motifs d’exclusion depuis FICHIER--include=MOTIFn’exclut pas les fichiers correspondant au MOTIF--include-from=FICHIERlit des motifs d’inclusion depuis FICHIER--files-from=FICHIERlit des fichiers à transférer depuis FICHIER-0,--from0tous les fichiers des *-from/filtres sont séparés par 0--address=ADRESSEse lie à l’adresse pour la connexion sortante vers le démon--port=PORTspécifie un autre numéro de port rsyncd--blocking-ioutilise des E/S bloquantes pour le shell distant--no-blocking-iodésactive les E/S bloquantes--statsaffiche quelques statistiques de transfert de fichiers--progressmontre l’avancement pendant le transfert-Péquivalent à--partial --progress-i,--itemize-changesaffiche un résumé des changements pour chaque mise à jour--log-format=FORMATaffiche les noms fichiers selon le format spécifié--password-file=FICHIERlit le mot de passe depuis FICHIER--list-onlyliste les fichiers au lieu de les copier--bwlimit=KBPSlimite la bande passante E/S, En ko par seconde--write-batch=FICHIERenregistre les modifications dans FICHIER--only-write-batch=FICHIERcomme --write-batch sans mettre à jour la destination--read-batch=FICHIERexécute le fichier de modification FICHIERSynchroniser deux répertoires en local
rsync -vr /chemin/source/ /chemin/destination
-vverbeux-rrécursivePréserver le timestamp
rsync -azv /src/ /dest/
Synchroniser un seul fichier
rsync -v /source/fichier /dest/
Ne pas écraser les fichiers modifiés en Destination
In a typical sync situation, if a file is modified at the destination, we might not want to overwrite the file with the old file from the source.
-udo exactly that. In the following example, the file called Basenames is already modified at the destination. So, it will not be overwritten with rsync -u.rsync -avzu /var/lib/rpm /root/temp
Synchroniser uniquement l’arborescence (et pas les fichiers)
rsync -v -d /var/lib/ .
Afficher la progression durant le transfert
rsync -avz --progress /chemin/ /root/temp/
effacer les fichiers Dest si pas présents dans Source
Si un fichier présent dans le dossier de destination n’est plus présent dans le dossier de Source, on le supprime grâce à
--delete:rsync -avz --delete /chemin/ .
mettre uniquement à jour les fichiers déjà existants
rsync -avz --existing /var/lib/rpm/ .
View the Changes Between Source and Destination
In the output it displays some 9 letters in front of the file name or directory name indicating the changes.
rsync -avzi /var/lib/rpm/ /root/temp/
inclure ou exclure des fichiers
ex: inclure tous les fichiers ou dossiers commençant par P et exclure tous les autres.
Attention, le chemin des excludes est relatif au chemin de Source.
rsync -avz --include 'P*' --exclude '*' /source/ /dest/
Do Not Transfer Large Files
max-size=100Kfichiers inférieur ou égal à 100K (Mpour megaoctet -Gpour gigaoctet)$ rsync -avz --max-size='100K' toto@192.168.0.10:/var/lib/rpm/ /root/temp/