rsync - manpage fr
La curiosité n’est pas un vilain défaut mais une qualité fondamentale.
Traducton via google translate, non vérifiée, et la mise en page pas terminée
rsync(1) Commandes utilisateur rsync(1)
NOM
rsync - un outil de copie de fichiers rapide, polyvalent, à distance (et local)
SYNOPSIS
Locale:
rsync [OPTION...] SRC... [DEST]
Accès via shell distant :
Tirer:
rsync [OPTION...] [USER@]HÔTE : SRC... [DEST]
Pousser:
rsync [OPTION...] SRC... [USER@]HÔTE : DEST
Accès via le démon rsync :
Tirer:
rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
Pousser:
rsync [OPTION...] SRC... [USER@]HÔTE :: DEST
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST)
Les utilisations avec un seul argument SRC et aucun argument DEST répertorieront les fichiers source au lieu de les copier.
La version en ligne de cette page de manuel (qui inclut des liens croisés entre les sujets) est disponible sur https://down‐ load.samba.org/pub/rsync/rsync.1.
DESCRIPTION
Rsync est un outil de copie de fichiers rapide et extraordinairement polyvalent. Il peut copier localement, vers/depuis un autre hôte sur n'importe quel ordinateur distant.
shell, ou vers/depuis un démon rsync distant. Il offre un grand nombre d'options qui contrôlent tous les aspects de son comportement et permettent une spécification très flexible de l'ensemble des fichiers à copier. Il est célèbre pour son algorithme de transfert delta, qui réduit la quantité de données envoyées sur le réseau en envoyant uniquement les différences entre les fichiers source et les fichiers existants fichiers dans la destination. Rsync est largement utilisé pour les sauvegardes et la mise en miroir et comme commande de copie améliorée pour un usage quotidien.
Rsync trouve les fichiers qui doivent être transférés à l'aide d'un algorithme de « vérification rapide » (par défaut) qui recherche les fichiers qui ont été transférés. modifié en taille ou en heure de dernière modification. Toute modification des autres attributs conservés (comme demandé par les options) est effectuée directement sur le fichier de destination lorsque la vérification rapide indique que les données du fichier n'ont pas besoin d'être mises à jour.
Certaines des fonctionnalités supplémentaires de rsync sont :
- prise en charge de la copie de liens, d'appareils, de propriétaires, de groupes et d'autorisations
- options d'exclusion et d'exclusion de similaires à GNU tar
- Mode d'exclusion CVS pour ignorer les mêmes fichiers que CVS ignorerait
- peut utiliser n'importe quel shell distant transparent, y compris ssh ou rsh
- ne nécessite pas de privilèges de super-utilisateur
- pipeline des transferts de fichiers pour minimiser les coûts de latence
- prise en charge des démons rsync anonymes ou authentifiés (idéal pour la mise en miroir)
GÉNÉRAL
Rsync copie les fichiers soit vers ou depuis un hôte distant, soit localement sur l'hôte actuel (il ne prend pas en charge la copie de fichiers depuis un hôte distant) entre deux hôtes distants).
Il existe deux manières différentes pour rsync de contacter un système distant : en utilisant un programme shell distant comme moyen de transport (tel que ssh ou rsh) ou en contactant un démon rsync directement via TCP. Le transport shell distant est utilisé chaque fois que la source ou la destination
Le chemin de destination contient un seul séparateur deux-points (:) après une spécification d'hôte. Contacter un démon rsync se produit directement lorsque le chemin source ou de destination contient un double séparateur deux-points (::) après une spécification d'hôte,
OU lorsqu'un rsync://
L'URL est spécifiée (voir également la section USING RSYNC-DAEMON FEATURES VIA A REMOTE-SHELL CONNECTION pour une exception à cette règle.
dernière règle).
Comme cas particulier, si un seul argument source est spécifié sans destination, les fichiers sont répertoriés dans un format de sortie similaire.
lar à "ls -l".
Comme prévu, si ni le chemin source ni le chemin de destination ne spécifient un hôte distant, la copie se produit localement (voir aussi le --list-only option).
Rsync fait référence au côté local en tant que client et au côté distant en tant que serveur. Ne confondez pas le serveur avec un démon rsync.
Un démon est toujours un serveur, mais un serveur peut être soit un démon, soit un processus généré par un shell distant.
INSTALLATION
Voir le fichier README.md pour les instructions d'installation.
Une fois installé, vous pouvez utiliser rsync sur n'importe quelle machine à laquelle vous pouvez accéder via un shell distant (ainsi que certaines auxquelles vous pouvez accéder)
en utilisant le protocole en mode démon rsync). Pour les transferts à distance, un rsync moderne utilise ssh pour ses communications, mais il peut
ont été configurés pour utiliser un shell distant différent par défaut, tel que rsh ou remsh.
Vous pouvez également spécifier n'importe quel shell distant de votre choix, soit en utilisant l'option de ligne de commande -e, soit en définissant l'option RSYNC_RSH.
variable de environnement.
Notez que rsync doit être installé sur les machines source et de destination.
USAGE
Vous utilisez rsync de la même manière que vous utilisez rcp. Vous devez spécifier une source et une destination, dont l'une peut être distante.
La meilleure façon d'expliquer la syntaxe est peut-être de donner quelques exemples :
rsync -t *.c foo:src/
Cela transférerait tous les fichiers correspondant au modèle *.c du répertoire actuel vers le répertoire src sur la machine foo.
Si l'un des fichiers existe déjà sur le système distant, le protocole de mise à jour à distance rsync est utilisé pour mettre à jour le fichier en
envoyer uniquement les différences dans les données. Notez que l'expansion des caractères génériques sur la ligne de commande (*.c) dans une liste de
les fichiers sont gérés par le shell avant d'exécuter rsync et non par rsync lui-même (exactement comme tous les autres logiciels de style Posix).
grammes).
rsync -avz foo:src/bar /data/tmp
Cela transférerait de manière récursive tous les fichiers du répertoire src/bar sur la machine foo vers le répertoire /data/tmp/bar sur
la machine locale. Les fichiers sont transférés en mode archive, ce qui garantit que les liens symboliques, appareils, attributs, per‐
les missions, propriétés, etc. sont conservées dans le transfert. De plus, la compression sera utilisée pour réduire la taille des données
parties du transfert.
rsync -avz foo:src/bar/ /data/tmp
Une barre oblique finale sur la source modifie ce comportement pour éviter de créer un niveau de répertoire supplémentaire à la destination.
Vous pouvez considérer un / final sur une source comme signifiant « copier le contenu de ce répertoire » par opposition à « copier le répertoire
par nom", mais dans les deux cas, les attributs du répertoire conteneur sont transférés vers le répertoire conteneur sur le
destination. En d'autres termes, chacune des commandes suivantes copie les fichiers de la même manière, y compris leur paramètre de
les attributs de /dest/foo :
rsync -av /src/foo /dest
rsync -av /src/foo/ /dest/foo
Notez également que les références d'hôte et de module ne nécessitent pas de barre oblique finale pour copier le contenu du répertoire par défaut. Pour
Par exemple, les deux copient le contenu du répertoire distant dans "/dest" :
rsync -av hôte : /dest
rsync -av hôte :: module /dest
Vous pouvez également utiliser rsync en mode local uniquement, où la source et la destination n'ont pas de ':' dans le nom. Dans ce cas
elle se comporte comme une commande de copie améliorée.
Enfin, vous pouvez lister tous les modules (listables) disponibles à partir d'un démon rsync particulier en laissant de côté le nom du module :
rsync somehost.mydomain.com ::
COPIE SOUS UN NOM DIFFÉRENT
Lorsque vous souhaitez copier un répertoire sous un nom différent, utilisez une barre oblique finale sur le répertoire source pour mettre le contenu de
le répertoire dans n'importe quel répertoire de destination de votre choix :
rsync -ai foo/ bar/
Rsync a également la possibilité de personnaliser le nom d'un fichier de destination lors de la copie d'un seul élément. Les règles pour cela sont les suivantes :
- La liste de transfert doit être constituée d'un seul élément (soit un fichier, soit un répertoire vide)
- e dernier élément du chemin de destination ne doit pas exister en tant que répertoire
- Le chemin de destination ne doit pas avoir été spécifié avec une barre oblique finale
Dans ces circonstances, rsync définira le nom de l'élément unique de la destination sur le dernier élément de la destination.
chemin. Gardez à l'esprit qu'il est préférable d'utiliser uniquement cet idiome lors de la copie d'un fichier et d'utiliser l'idiome de barre oblique finale ci-dessus lorsque
copier un répertoire.
L'exemple suivant copie le fichier foo.c sous bar.c dans le répertoire de sauvegarde (en supposant que bar.c n'est pas un répertoire) :
rsync -ai src/foo.c save/bar.c
La règle de copie d'un seul élément peut accidentellement vous mordre si vous copiez sans le savoir un seul élément et spécifiez un répertoire de destination.
cela n'existe pas (sans utiliser une barre oblique finale). Par exemple, si src/*.c correspond à un fichier et que save/dir n'existe pas,
cela vous confondra en nommant le fichier de destination save/dir :
rsync -ai src/*.c enregistrer/rép
Pour éviter un tel accident, assurez-vous que le répertoire de destination existe ou spécifiez le chemin de destination avec une fin
sabrer:
rsync -ai src/*.c save/dir/
ORDRE DE TRANSFERT TRIÉ
Rsync trie toujours les noms de fichiers spécifiés dans sa liste de transfert interne. Ceci gère la fusion des constentes de répertoires portant le même nom, facilite la suppression des noms de fichiers en double. Cela peut cependant dérouter quelqu'un lorsque
les fichiers sont transférés dans un ordre différent de celui indiqué sur la ligne de commande.
Si vous avez besoin qu'un fichier particulier soit transféré avant un autre, séparez les fichiers en différents appels rsync ou
pensez à utiliser --delay-updates (ce qui n'affecte pas l'ordre de transfert trié, mais effectue la phase finale de mise à jour des fichiers
se produisent beaucoup plus rapidement).
SÉCURITÉ MULTI-HÔTES
Rsync prend des mesures pour garantir que les demandes de fichiers partagées lors d'un transfert sont protégées contre diverses failles de sécurité.
poursuit. La plupart des problèmes potentiels surviennent du côté de la réception, où rsync prend des mesures pour garantir que la liste des fichiers
transféré reste dans les limites de ce qui a été demandé.
À cette fin, rsync 3.1.2 et versions ultérieures ont été abandonnées lorsqu'une liste de fichiers contient un chemin absolu ou relatif qui tente d'exécuter un chemin d'accès absolu ou relatif.
cape par le haut du transfert. De plus, à partir de la version 3.2.5, rsync effectue deux contrôles de sécurité supplémentaires de la liste des fichiers.
pour (1) s'assurer qu'aucun argument source supplémentaire n'a été ajouté au transfert autre que ceux demandés par le client et (2)
assurez-vous que la liste de fichiers obéit aux règles d'exclusion qui ont été envoyées à l'expéditeur.
Pour ceux qui n'ont pas encore de client rsync 3.2.5 (ou ceux qui veulent être très prudents), il est plus sûr de faire une copie dans
un répertoire de destination dédié pour les fichiers distants lorsque vous ne faites pas confiance à l'hôte distant. Par exemple, au lieu de faire
une copie rsync dans votre répertoire personnel :
rsync -aiv hôte1:rép1 ~
Dédiez un répertoire "host1-files" au contenu distant :
rsync -aiv host1:dir1 ~/host1-files
Voir l'option --trust-sender pour plus de détails.
ATTENTION : il n'est pas particulièrement sûr d'utiliser rsync pour copier des fichiers d'un système de fichiers préservant la casse vers un système ignorant la casse.
système de fichiers. Si vous devez effectuer une telle copie, vous devez soit désactiver les liens symboliques via --no-links, soit activer la suppression de
liens symboliques via --munge-links (et assurez-vous d'utiliser la bonne option locale ou distante). Cela empêchera rsync de faire du po‐
des choses potentiellement dangereuses si le nom d'un lien symbolique chevauche un fichier ou un répertoire. Toutefois, cela ne garantit pas que vous obtenez un
copie complète de tous les fichiers (car cela peut ne pas être possible lorsque les noms se chevauchent). Une solution potentiellement meilleure consiste à lister
tous les fichiers source et créez une liste sécurisée de noms de fichiers que vous transmettez à l'option --files-from. Tous les fichiers en conflit
le nom devrait être copié dans différents répertoires de destination en utilisant plusieurs copies.
Bien qu'une copie d'un système de fichiers ignorant la casse vers un système de fichiers ignorant la casse puisse fonctionner assez bien, si aucun --delete-during ou L'option --delete-before est active, rsync peut potentiellement mettre à jour un fichier existant du côté récepteur sans s'en apercevoir les majuscules/minuscules du nom de fichier doivent être modifiées pour correspondre à l'expéditeur.
UTILISATION AVANCÉE
La syntaxe pour demander plusieurs fichiers à un hôte distant est effectuée en spécifiant des arguments d'hôte distant supplémentaires dans le même
style comme premier, ou avec le nom d'hôte omis. Par exemple, tout cela fonctionne :
rsync -aiv hôte:fichier1 :fichier2 hôte:fichier{3,4} /dest/
rsync -aiv host::modname/file{1,2} host::modname/extra /dest/
rsync -aiv host::modname/first ::extra-file{1,2} /dest/
Notez qu'une connexion démon ne prend en charge l'accès qu'à un module par commande de copie, donc si le début d'un chemin de suivi
ne commence pas par le nom de mod du premier chemin, il est supposé être un chemin dans le module (comme extra-file1 & extra-file2 qui sont récupérés ci-dessus).
Les très anciennes versions de rsync (2.6.9 et antérieures) ne permettaient de spécifier qu'un seul argument source distant, donc certaines personnes l'ont fait à la place s'appuyait sur le shell distant effectuant une division de l'espace pour diviser un argument en plusieurs chemins. Un tel comportement peu intuitif est n'est plus pris en charge par défaut (bien que vous puissiez le demander, comme décrit ci-dessous).
Depuis la version 3.2.4, les noms de fichiers sont transmis à un shell distant de manière à conserver les caractères que vous lui donnez. Ainsi, si
vous demandez un fichier avec des espaces dans le nom, c'est ce que recherche le rsync distant :
rsync -aiv host : 'un simple fichier.pdf' /dest/
Si vous utilisez des scripts qui ont été écrits pour appliquer manuellement des guillemets supplémentaires aux arguments rsync distants (ou pour exiger des arguments distants fractionnement), vous pouvez demander à rsync de laisser votre script gérer l'échappement supplémentaire. Cela se fait soit en ajoutant le --old-args option pour l'exécution de rsync dans le script (qui nécessite un nouveau rsync) ou exportation de RSYNC_OLD_ARGS=1 et RSYNC_PROTECT_ARGS=0 (qui fonctionne avec les anciennes ou les nouvelles versions de rsync).
CONNEXION À UN DÉMON RSYNC
Il est également possible d'utiliser rsync sans shell distant comme transport. Dans ce cas, vous vous connecterez directement à un réseau. mote rsync, utilisant généralement le port TCP 873. (Cela nécessite évidemment que le démon soit exécuté sur le système distant, donc reportez-vous à la section DÉMARRAGE D'UN DÉMON RSYNC POUR ACCEPTER LES CONNEXIONS ci-dessous pour plus d'informations à ce sujet.)
Utiliser rsync de cette manière revient à l'utiliser avec un shell distant, sauf que :
- Utilisez soit la syntaxe à deux points, soit la syntaxe d'URL rsync:// au lieu de la syntaxe à deux points (shell distant).
- Le premier élément du "chemin" est en fait un nom de module.
- Des arguments de source distante supplémentaires peuvent utiliser une syntaxe abrégée qui omet le nom d'hôte et/ou le nom du module, comme indiqué.
juré en UTILISATION AVANCÉE. - Le démon distant peut imprimer un "message du jour" lorsque vous vous connectez.
- Si vous spécifiez uniquement l'hôte (sans module ni chemin), une liste des modules accessibles sur le démon est affichée.
- Si vous spécifiez un chemin source distant mais aucune destination, une liste des fichiers correspondants sur le démon distant est publiée.
mettre. - L'option --rsh (-e) doit être omise pour éviter de changer le style de connexion de l'utilisation d'une connexion socket à USING.
RSYNC-DAEMON FONCTIONNE VIA UNE CONNEXION À DISTANCE.
Un exemple qui copie tous les fichiers d'un module distant nommé "src" :
rsync -av hôte ::src /dest
Certains modules du démon distant peuvent nécessiter une authentification. Si tel est le cas, vous recevrez une invite de mot de passe lorsque vous vous connecterez. Vous pouvez éviter l'invite de mot de passe en définissant la variable d'environnement RSYNC_PASSWORD sur le mot de passe que vous souhaitez utiliser ou en utilisant en utilisant l'option --password-file. Cela peut être utile lors de la création de scripts rsync.
AVERTISSEMENT : sur certains systèmes, les variables d'environnement sont visibles par tous les utilisateurs. Sur ces systèmes, il est recommandé d'utiliser --password-file réparé.
Vous pouvez établir la connexion via un proxy Web en définissant la variable d'environnement RSYNC_PROXY sur une paire nom d'hôte:port
pointant vers votre proxy Web. Notez que la configuration de votre proxy Web doit prendre en charge les connexions proxy au port 873.
Vous pouvez également établir une connexion démon en utilisant un programme comme proxy en définissant la variable d'environnement RSYNC_CONNECT_PROG
aux commandes que vous souhaitez exécuter au lieu d’établir une connexion socket directe. La chaîne peut contenir l'échappement "%H" pour
représente le nom d'hôte spécifié dans la commande rsync (utilisez donc "%%" si vous avez besoin d'un seul "%" dans votre chaîne). Par exemple:
export RSYNC_CONNECT_PROG='ssh proxyhost nc %H 873'
rsync -av targethost1 :: module/src/ /dest/
rsync -av rsync://targethost2/module/src/ /dest/
La commande spécifiée ci-dessus utilise ssh pour exécuter nc (netcat) sur un hôte proxy, qui transmet toutes les données au port 873 (le programme rsync). mon) sur l'hôte cible (%H).
Notez également que si la variable d'environnement RSYNC_SHELL est définie, ce programme sera utilisé pour exécuter le com‐ mand au lieu d'utiliser le shell par défaut de l'appel system().
UTILISATION DES FONCTIONNALITÉS RSYNC-DAEMON VIA UNE CONNEXION À DISTANCE
Il est parfois utile d'utiliser diverses fonctionnalités d'un démon rsync (telles que les modules nommés) sans réellement autoriser de nouvelles fonctionnalités. connexions socket dans un système (autres que ce qui est déjà requis pour permettre l’accès au shell distant). Rsync prend en charge la connexion se connecter à un hôte à l'aide d'un shell distant, puis générer un serveur "démon" à usage unique qui s'attend à lire son fichier de configuration dans le répertoire personnel de l'utilisateur distant. Cela peut être utile si vous souhaitez chiffrer les données d'un transfert de type démon, mais comme le le démon est redémarré par l'utilisateur distant, vous ne pourrez peut-être pas utiliser des fonctionnalités telles que le chroot ou modifier l'uid utilisé par le démon. (Pour une autre façon de chiffrer un transfert de démon, envisagez d'utiliser ssh pour tunneliser un port local vers une machine distante et configurez un démon rsync normal sur cet hôte distant pour autoriser uniquement les connexions à partir de "localhost".)Du point de vue de l'utilisateur, un transfert de démon via une connexion shell distante utilise presque la même syntaxe de ligne de commande qu'un
transfert normal du démon rsync, à la seule exception étant que vous devez définir explicitement le programme shell distant sur le
ligne de commande avec l'option --rsh=COMMAND. (La définition de RSYNC_RSH dans l'environnement n'activera pas cette fonctionnalité.)
Par exemple:
rsync -av --rsh=ssh hôte :: module /dest
Si vous devez spécifier un autre utilisateur du shell distant, gardez à l'esprit que le préfixe user@ devant l'hôte spécifie
la valeur rsync-user (pour un module qui nécessite une authentification basée sur l'utilisateur). Cela signifie que vous devez donner à l'utilisateur '-l'
option à ssh lors de la spécification du shell distant, comme dans cet exemple qui utilise la version courte de l'option --rsh :
rsync -av -e "ssh -l ssh-user" rsync-user@host::module /dest
Le « ssh-user » sera utilisé au niveau ssh ; le "rsync-user" sera utilisé pour se connecter au "module".
Dans cette configuration, le démon est démarré par la commande ssh qui accède au système (qui peut être forcée via le ~/.ssh/au‐ thorized_keys, si vous le souhaitez). Cependant, lors de l’accès direct à un démon, celui-ci doit être démarré au préalable.
DÉMARRER UN DÉMON RSYNC POUR ACCEPTER LES CONNEXIONS
Afin de se connecter à un démon rsync, le système distant doit avoir un démon déjà en cours d'exécution (ou il doit avoir une connexion
j'ai pensé à quelque chose comme inetd pour générer un démon rsync pour les connexions entrantes sur un port particulier). Pour des informations complètes
pour savoir comment démarrer un démon qui gérera les connexions socket entrantes, consultez la page de manuel rsyncd.conf(5) -- c'est la configuration.
fig pour le démon, et il contient tous les détails sur la façon d'exécuter le démon (y compris la configuration autonome et inetd).
durées).
Si vous utilisez l'un des transports shell distant pour le transfert, il n'est pas nécessaire de démarrer manuellement un démon rsync.
EXEMPLES
Voici quelques exemples de la façon dont rsync peut être utilisé.
Pour sauvegarder un répertoire personnel, composé de gros fichiers MS Word et de dossiers de messagerie, une tâche cron par utilisateur peut être utilisée.
exécute ceci chaque jour :
rsync -aiz . bkhost:sauvegarde/joe/
Pour déplacer certains fichiers d'un hôte distant vers l'hôte local, vous pouvez exécuter :
rsync -aiv --remove-source-files rhost:/tmp/{file1,file2}.c ~/src/
RÉSUMÉ DES OPTIONS
Voici un bref résumé des options disponibles dans rsync. Chaque option a également sa propre description détaillée plus loin dans ce page de manuel.| --verbose, -v | augmente la verbosité |
| --info=FLAGS | verbosité informationnelle à grain fin |
| --debug=FLAGS | verbosité de débogage à granularité fine |
| --stderr=e|a|c | changer le mode de sortie stderr (par défaut : erreurs) |
| --quiet, -q | supprime les messages non-erreurs |
| --no-motd | supprime le MOTD en mode démon |
| --checksum, -c | sauter basé sur la somme de contrôle, pas sur la durée et la taille du module |
| --archive, -a | le mode d'archivage est -rlptgoD (pas de -A,-X,-U,-N,-H) |
| --no-OPTION | désactive une OPTION implicite (par exemple --no-D) |
| --recursive, -r | récursive dans les répertoires |
| --relative, -R | utilise des noms de chemin relatifs |
| --no-implicit-dirs | n'envoie pas de répertoires implicites avec --relative |
| --backup, -b | effectue des sauvegardes (voir --suffix & --backup-dir) |
| --backup-dir=DIR | effectue des sauvegardes dans la hiérarchie basée sur DIR |
| --suffix=Suffixe | de sauvegarde SUFFIX (par défaut ~ sans --backup-dir) |
| --update, -u | ignore les fichiers les plus récents sur le récepteur |
| --inplace | mettre à jour les fichiers de destination sur place |
| --append | ajouter des données sur des fichiers plus courts |
| --append-verify --append | avec les anciennes données dans la somme de contrôle du fichier |
| --dirs, -d | transférer des répertoires sans récurrence |
| --old-dirs, --old-d | fonctionne comme --dirs lorsque l'on parle à l'ancien rsync |
| --mkpath | crée les composants de chemin manquants de la destination |
| --links, -l | copier les liens symboliques en tant que liens symboliques |
| --copy-links, -L | transforme le lien symbolique en fichier/répertoire référent |
| --copy-unsafe-links | seuls les liens symboliques "non sécurisés" sont transformés |
| --safe-links | ignore les liens symboliques qui pointent en dehors de l'arborescence |
| --munge-links | munge les liens symboliques pour les rendre sûrs et inutilisables |
| --copy-dirlinks, -k | transforme le lien symbolique vers le répertoire en répertoire référent |
| --keep-dirlinks, -K | traite le répertoire lié symboliquement sur le récepteur comme un répertoire |
| --hard-links, -H | préserve les liens physiques |
| --perms, -p | conserver les autorisations |
| --exécutabilité, -E | préserver l'exécutabilité |
| --chmod=CHMOD | affecte les autorisations de fichiers et/ou de répertoires |
| --acls, -A | préserve les ACL (implique --perms) |
| --xattrs, -X | préserve les attributs étendus |
| --owner, -o | conserver le propriétaire (super-utilisateur uniquement) |
| --group, -g | préserver le groupe |
| --devices | préserve les fichiers de périphérique (super-utilisateur uniquement) |
| --copy-devices | copie le contenu du périphérique sous forme de fichier normal |
| --write-devices | écrit sur les appareils sous forme de fichiers (implique --inplace) |
| --specials | préserve les fichiers spéciaux |
| -D | identique à --devices --specials |
| --times, -t | préserve les heures de modification |
| --atimes, -U | préserve les temps d'accès (d'utilisation) |
| --open-noatime | évite de changer l'heure des fichiers ouverts |
| --crtimes, -N | préserve les temps de création (nouveauté) |
| --omit-dir-times, -O | omettre les répertoires de --times |
| --omit-link-times, -J | omettre les liens symboliques de --times |
| --super | récepteur tente des activités de super-utilisateur |
| --fake-super | stocker/récupérer les attributs privilégiés en utilisant xattrs |
| --sparse, -S | transforme les séquences de valeurs nulles en blocs clairsemés |
| --preallocate | alloue les fichiers dest avant de les écrire |
| --dry-run, -n | effectue un essai sans aucune modification |
| --whole-file, -W | copie les fichiers dans leur intégralité (sans algorithme delta-xfer) |
| --checksum-choice=STR | choisit l'algorithme de somme de contrôle (alias --cc) |
| --one-file-system, -x | ne franchissent pas les limites du système de fichiers |
| --block-size=SIZE, -B | force une taille de bloc de somme de contrôle fixe |
| --rsh=COMMAND, -e | spécifie le shell distant à utiliser |
| --rsync-path=PROGRAM | spécifie le rsync à exécuter sur la machine distante |
| --existant | sauter la création de nouveaux fichiers sur le récepteur |
| --ignore-existing | ignorer la mise à jour des fichiers qui existent sur le récepteur |
| --remove-source-files | l'expéditeur supprime les fichiers synchronisés (non-répertoire) |
| --del | un alias pour --delete-during |
| --delete | supprime les fichiers superflus des répertoires de destination |
| --delete-before | le récepteur supprime avant le xfer, pas pendant |
| --delete-during | le récepteur supprime pendant le transfert |
| --delete-delay | recherche les suppressions pendant, supprime après |
| --delete-after | le récepteur supprime après le transfert, pas pendant |
| --delete-exclusive | supprime également les fichiers exclus des répertoires de destination |
| --ignore-missing-args | ignore les arguments source manquants sans erreur |
| --delete-missing-args | supprime les arguments source manquants de la destination |
| --ignore-errors | supprimer même s'il y a des erreurs d'E/S |
| --force | forcer la suppression des répertoires même s'ils ne sont pas vides |
| --max-delete=NUM | ne supprime pas plus de NUM fichiers |
| --max-size=SIZE | ne transfère aucun fichier supérieur à SIZE |
| --min-size=SIZE | ne transfère aucun fichier inférieur à SIZE |
| --max-alloc=SIZE | modifie une limite relative à l'allocation de mémoire |
| --partial | conserver les fichiers partiellement transférés |
| --partial-dir=DIR | mettre un fichier partiellement transféré dans DIR |
| --delay-updates | met tous les fichiers mis à jour en place à la fin |
| --prune-empty-dirs, -m | supprime les chaînes de répertoires vides de la liste de fichiers |
| --numeric-ids | ne mappe pas les valeurs uid/gid par nom d'utilisateur/groupe |
| --usermap=STRING | mappage de nom d'utilisateur personnalisé |
| --groupmap=STRING | mappage de nom de groupe personnalisé |
| --chown=USER:GROUP | mappage simple nom d'utilisateur/nom de groupe |
| --timeout=SECONDS | définit le délai d'expiration des E/S en secondes |
| --contimeout=SECONDS | définit le délai d'expiration de la connexion au démon en secondes |
| --ignore-times, -Je | ne saute pas les fichiers qui correspondent à la taille et à l'heure |
| --size-only | ignore les fichiers dont la taille correspond |
| --modify-window=NUM, -@ | définit la précision des comparaisons de temps de module |
| --temp-dir=DIR, -T | crée des fichiers temporaires dans le répertoire DIR |
| --fuzzy, -y | recherche un fichier similaire comme base s'il n'y a pas de fichier de destination |
| --compare-dest=DIR | compare également les fichiers de destination par rapport au DIR |
| --copy-dest=DIR ... | et inclut des copies des fichiers inchangés |
| --link-dest=DIR | lien dur vers les fichiers dans DIR lorsqu'ils sont inchangés |
| --compress, -z | compresse les données du fichier pendant le transfert |
| --compress-choice=STR | choisit l'algorithme de compression (alias --zc) |
| --compress-level=NUM | définit explicitement le niveau de compression (alias --zl) |
| --skip-compress=LIST | ignorer la compression des fichiers avec suffixe dans LIST |
| --cvs-exclude, -C | ignore automatiquement les fichiers de la même manière que CVS |
| --filter=RULE, -f | ajoute une RÈGLE de filtrage de fichiers |
| -F | identique à --filter='dir-merge /.rsync-filter' répété : --filter='- .rsync-filter' |
| --exclude=PATTERN | exclut les fichiers correspondant au PATTERN |
| --exclude-from=FILE | lit les modèles d'exclusion du FILE |
| --include=PATTERN | n'exclut pas les fichiers correspondant au PATTERN |
| --include-from=FILE | lit les modèles d'inclusion à partir du FILE |
| --files-from=FILE | lit la liste des noms de fichiers source à partir de FILE |
| --from0, -0 | tous les fichiers *-from/filter sont délimités par des 0 |
| --old-args | désactive l'idiome moderne de protection des arguments |
| --seused-args, -s | utilise le protocole pour envoyer les arguments en toute sécurité |
| --trust-sender | fait confiance à la liste de fichiers de l'expéditeur distant |
| --copy-as=USER[:GROUP] | spécifie l'utilisateur et le groupe facultatif pour la copie |
| --address=ADDRESS | adresse de liaison du socket sortant au démon |
| --port=PORT | spécifie le numéro de port alternatif à deux points |
| --sockopts=OPTIONS | spécifie les options TCP personnalisées |
| --blocking-io | utilise le blocage des E/S pour le shell distant |
| --outbuf=N|L|B | définit la mise en mémoire tampon sur Aucun, Ligne ou Bloc |
| --stats | donne des statistiques sur le transfert de fichiers |
| --8-bit-output, -8 | laisse les caractères à bits élevés non échappés dans la sortie |
| --human-readable, -h | affiche les nombres dans un format lisible par l'homme |
| --progress | affiche la progression pendant le transfert |
| -P | identique à --partial --progress |
| --itemize-changes, -i | affiche un résumé des modifications pour toutes les mises à jour |
| --remote-option=OPT, -M | envoie OPTION au côté distant uniquement |
| --out-format=FORMAT | met à jour la sortie en utilisant le FORMAT spécifié |
| --log-file=FILE | enregistre ce que nous faisons dans le FICHIER spécifié |
| --log-file-format=Mises à jour du journal | FMT en utilisant le FMT spécifié |
| --password-file=FILE | lit le mot de passe d'accès au démon depuis FILE |
| --early-input=FILE | utiliser FILE pour la première entrée d'exécution du démon |
| --list-only | répertorie les fichiers au lieu de les copier |
| --bwlimit=RATE | limite la bande passante d'E/S du socket |
| --stop-after=MINS | Arrêter rsync une fois MINS minutes écoulées |
| --stop-at=ym-dTh:m | Arrêter rsync au moment spécifié |
| --fsync | fsync chaque fichier écrit |
| --write-batch=FILE | écrire une mise à jour par lots dans FILE |
| --only-write-batch=FILE | comme --write-batch mais sans mise à jour de la destination |
| --read-batch=FILE lit | une mise à jour par lots à partir de FILE |
| --protocol=NUM | force l'utilisation d'une ancienne version du protocole |
| --iconv=CONVERT_SPEC | demande la conversion du jeu de caractères des noms de fichiers |
| --checksum-seed=NUM | définir la graine de contrôle du bloc/fichier (avancé) |
| --ipv4, -4 | préfèrent IPv4 |
| --ipv6, -6 | préfèrent IPv6 |
| --version, -V | affiche la version + autres informations et quitte |
| --help, -h (*) | affiche cette aide (* -h est une aide seule) |
Rsync peut également être exécuté en tant que démon, auquel cas les options suivantes sont acceptées :
| --daemon | exécuté en tant que démon rsync |
| --address=ADDRESS | se lie à l'adresse spécifiée |
| --bwlimit=RATE | limite la bande passante d'E/S du socket |
| --config=FILE | spécifie un autre fichier rsyncd.conf |
| --dparam=OVERRIDE, -M | remplace le paramètre de configuration du démon global |
| --no-detach | ne se détache pas du parent |
| --port=PORT | couter sur un autre numéro de port |
| --log-file=FILE | remplace le paramètre "fichier journal" |
| --log-file-format=FMT | remplace le paramètre "format de journal" |
| --sockopts=OPTIONS | spécifie les options TCP personnalisées |
| --verbose, -v | augmente la verbosité |
| --ipv4, -4 | préfèrent IPv4 |
| --ipv6, -6 | préfèrent IPv6 |
| --help, -h | affiche cette aide (lorsqu'il est utilisé avec --daemon) |
OPTIONS
Mise en page à finir
Rsync accepte les options longues (double tiret + mot) et courtes (un seul tiret + lettre). La liste complète des options disponibles
sont décrites ci-dessous. Si une option peut être spécifiée de plusieurs manières, les choix sont séparés par des virgules. Certains op‐
Les situations n'ont qu'une variante longue, pas une variante courte.
Si l'option prend un paramètre, le paramètre n'est listé qu'après la variante longue, même s'il doit également être précisé
pour faire court. Lorsque vous spécifiez un paramètre, vous pouvez soit utiliser le formulaire --option=param, --option param, -o=param, -o param,
ou -oparam (ces derniers choix supposent que votre option a une variante courte).
Le paramètre devra peut-être être cité d'une manière ou d'une autre pour qu'il survive à l'analyse de la ligne de commande du shell. Gardez également à l'esprit
qu'un tilde de début (~) dans un nom de chemin est remplacé par votre shell, alors assurez-vous de séparer le nom de l'option du
chemin d'accès en utilisant un espace si vous souhaitez que le shell local le développe.
--help Imprime une courte page d'aide décrivant les options disponibles dans rsync et quitte. Vous pouvez également utiliser -h pour --help lorsque
est utilisé sans aucune autre option (puisque cela signifie normalement --human-readable).
--version, -V
Imprimez la version rsync ainsi que d'autres informations et quittez. Lorsqu'elles sont répétées, les informations sont sorties au format JSON qui est
toujours assez lisible (côté client uniquement).
La sortie comprend une liste de fonctionnalités compilées, une liste d'optimisations, la liste par défaut des algorithmes de somme de contrôle.
les rythmes, la liste par défaut des algorithmes de compression, la liste par défaut des résumés d'authentification du démon, un lien vers le site Web rsync
site, et quelques autres éléments.
--verbeux, -v
Cette option augmente la quantité d'informations qui vous sont fournies lors du transfert. Par défaut, rsync fonctionne en silence.
Un seul -v vous donnera des informations sur les fichiers en cours de transfert et un bref résumé à la fin. Deux -v
les options vous donneront des informations sur les fichiers ignorés et un peu plus d'informations à la fin. Plus
plus de deux options -v ne doivent être utilisées que si vous déboguez rsync.
Le résumé de fin d'exécution vous indique le nombre d'octets envoyés au rsync distant (qui est le côté récepteur sur un serveur local).
copie), le nombre d'octets reçus de l'hôte distant et la moyenne des octets par seconde des données transférées
calculé sur toute la durée de l’exécution rsync. La deuxième ligne affiche la taille totale (en octets), qui est la somme
de toutes les tailles de fichiers que rsync a envisagé de transférer. Il affiche également une valeur « d'accélération », qui est un rapport entre la
taille totale du fichier divisée par la somme des octets envoyés et reçus (ce qui n'est en réalité qu'un sentiment de bien-être : plus c'est gros, mieux c'est)
nombre). Notez que ces valeurs d'octets peuvent être rendues plus (ou moins) lisibles par l'homme en utilisant le --human-readable (ou
--non-lisible par l'homme).
Dans un rsync moderne, l'option -v équivaut à la définition de groupes d'options --info et --debug. Tu peux
choisissez d'utiliser ces nouvelles options en plus ou à la place de --verbose, comme tout paramètre plus précis sur
utilisez les paramètres implicites de -v. --info et --debug ont tous deux un moyen de demander de l'aide qui vous dit exactement quoi
des indicateurs sont définis pour chaque augmentation de la verbosité.
Cependant, gardez à l'esprit que le paramètre de « verbosité maximale » d'un démon limitera le niveau auquel les différents individus peuvent accéder.
Des drapeaux doubles peuvent être définis du côté du démon. Par exemple, si le maximum est 2, alors tout indicateur d'information et/ou de débogage défini
à une valeur supérieure à celle qui serait définie par -vv sera rétrogradée au niveau -vv dans la journalisation du démon.
--info=Drapeaux
Cette option vous permet d’avoir un contrôle précis sur les informations que vous souhaitez afficher. Un nom de drapeau individuel
peut être suivi d'un numéro de niveau, 0 signifiant faire taire cette sortie, 1 étant le niveau de sortie par défaut, et
des nombres plus élevés augmentant la sortie de ce drapeau (pour ceux qui prennent en charge des niveaux plus élevés). Utilisez --info=help pour tout voir
les noms d'indicateurs disponibles, ce qu'ils génèrent et quels noms d'indicateurs sont ajoutés pour chaque augmentation du niveau détaillé.
Quelques exemples:
rsync -a --info=progress2 src/ dest/
rsync -avv --info=stats2,misc1,flist0 src/ dest/
Notez que la sortie de --info=name est affectée par les options --out-format et --itemize-changes (-i). Voir ces options
pour plus d’informations sur ce qui est sorti et quand.
Cette option a été ajoutée à la version 3.1.0, donc un ancien rsync côté serveur pourrait rejeter vos tentatives de configuration plus fine.
trol (si un ou plusieurs drapeaux devaient être envoyés au serveur et que le serveur était trop ancien pour les comprendre). Voir également
la mise en garde "verbosité maximale" ci-dessus lorsqu'il s'agit d'un démon.
--debug=Drapeaux
Cette option vous permet d'avoir un contrôle précis sur la sortie de débogage que vous souhaitez voir. Un nom de drapeau individuel peut être
suivi d'un numéro de niveau, 0 signifiant couper cette sortie, 1 étant le niveau de sortie par défaut et un numéro plus élevé.
bers augmentant la sortie de ce drapeau (pour ceux qui prennent en charge des niveaux plus élevés). Utilisez --debug=help pour voir tous les
noms d'indicateurs disponibles, ce qu'ils génèrent et quels noms d'indicateurs sont ajoutés pour chaque augmentation du niveau détaillé. Quelques
exemples:
rsync -avvv --debug=aucun src/ dest/
rsync -avA --del --debug=del2,acl src/ dest/
Notez que certains messages de débogage ne seront affichés que lorsque l'option --stderr=all est spécifiée, en particulier ceux qui
concernant les E/S et le débogage du tampon.
À partir de la version 3.2.0, cette option n'est plus automatiquement transmise côté serveur afin de vous permettre de spécifier des différences.
valeurs de débogage différentes pour chaque côté du transfert, ainsi que pour spécifier une nouvelle option de débogage qui n'est présente que dans
une des versions de rsync. Si vous souhaitez dupliquer la même option des deux côtés, utiliser l'expansion des accolades est une solution simple.
moyen de vous épargner du temps de saisie. Cela fonctionne en zsh et bash :
rsync -aiv {-M,}--debug=del2 src/ dest/
--stderr=erreurs|tout|client
Cette option contrôle qui traite la sortie vers stderr et si les messages d'information sont également modifiés en stderr. La mode
les chaînes peuvent être abrégées, alors n'hésitez pas à utiliser une seule valeur de lettre. Les 3 choix possibles sont :
o erreurs - (valeur par défaut) oblige tous les processus rsync à envoyer une erreur directement à stderr, même si le processus
se trouve du côté distant du transfert. Les messages d'information sont envoyés au côté client via le flux de protocole. Si
stderr n'est pas disponible (c'est-à-dire lors d'une connexion directe avec un démon via un socket), les erreurs reviennent à être
envoyé via le flux de protocole.
o all - fait en sorte que tous les messages rsync (informations et erreurs) soient écrits directement dans stderr à partir de tous les pro‐
cesse. Cela fait que stderr devient tampon de ligne (au lieu de brut) et élimine la possibilité de diviser
les informations et les messages d'erreur par descripteur de fichier. Pour ceux qui font du débogage ou utilisent plusieurs niveaux de verbosité,
cette option peut aider à éviter de boucher le flux de transfert (ce qui devrait éviter tout risque de blocage)
bug qui raccroche les choses). Il permet également à --debug d'activer certains messages supplémentaires liés aux E/S.
o client - provoque l'envoi de tous les messages rsync au côté client via le flux de protocole. Un processus client
affiche tous les messages, avec des erreurs sur stderr et des messages d'information sur stdout. C'était la valeur par défaut dans l'ancien rsync
versions, mais peut entraîner des retards d'erreur lorsqu'un grand nombre de données de transfert sont en avance sur les messages. Si tu pousses
fichiers vers un ancien rsync, vous souhaiterez peut-être utiliser --stderr=all puisque cet idiome existe depuis plusieurs re‐
baux.
Cette option a été ajoutée dans rsync 3.2.3. Cette version a également commencé à transmettre un paramètre autre que celui par défaut au serveur distant.
côté, bien que rsync utilise les options rétrocompatibles --msgs2stderr et --no-msgs2stderr pour représenter tout et
paramètres du client, respectivement. Un rsync plus récent continuera à accepter ces anciens noms d'options pour maintenir la compatibilité.
capacité.
--calme, -q
Cette option diminue la quantité d'informations qui vous sont fournies lors du transfert, supprimant notamment les informations
messages du serveur distant. Cette option est utile lors de l'appel de rsync depuis cron.
--no-motd
Cette option affecte les informations générées par le client au début d'un transfert de démon. Cela supprime
le texte du message du jour (MOTD), mais cela affecte également la liste des modules que le démon envoie en réponse au
Requête "rsync host::" (en raison d'une limitation du protocole rsync), donc omettez cette option si vous souhaitez demander le
liste des modules du démon.
--ignore-times, -je
Normalement, rsync ignorera tous les fichiers qui ont déjà la même taille et ont le même horodatage de modification. Cette opération
tion désactive ce comportement de « vérification rapide », provoquant la mise à jour de tous les fichiers.
Cette option peut prêter à confusion par rapport à --ignore-existing et --ignore-non-existing dans la mesure où elles provoquent l'activation de rsync.
transférer moins de fichiers, tandis que cette option oblige rsync à transférer plus de fichiers.
--taille uniquement
Cela modifie l'algorithme de « vérification rapide » de rsync pour trouver les fichiers qui doivent être transférés, en le modifiant depuis le dé‐
faute de transférer des fichiers avec une taille modifiée ou une heure de dernière modification modifiée pour simplement rechercher des fichiers qui
ont changé de taille. Ceci est utile lorsque vous commencez à utiliser rsync après avoir utilisé un autre système de mise en miroir qui pourrait ne pas fonctionner correctement.
conserver les horodatages exactement.
--modify-window=NUM, -@
Lors de la comparaison de deux horodatages, rsync traite les horodatages comme étant égaux s'ils ne diffèrent pas plus que la valeur de modification.
valeur de la fenêtre. La valeur par défaut est 0, ce qui correspond uniquement à des secondes entières. Si vous spécifiez une valeur négative (et que la valeur
ceiver est au moins en version 3.1.3) alors les nanosecondes seront également prises en compte. Spécifier 1 est utile pour
copies vers/depuis les systèmes de fichiers MS Windows FAT, car FAT représente les temps avec une résolution de 2 secondes (permettant aux temps de
différer de l’original jusqu’à 1 seconde).
Si vous souhaitez que tous vos transferts comparent par défaut les nanosecondes, vous pouvez créer un fichier ~/.popt et mettre ces lignes
dedans :
alias rsync -a -a@-1
alias rsync -t -t@-1
Avec cela par défaut, vous devrez spécifier --modify-window=0 (alias -@0) pour le remplacer et ignorer les nanosecondes,
par exemple, si vous copiez entre ext3 et ext4, ou si le rsync de réception est antérieur à 3.1.3.
--somme de contrôle, -c
Cela change la façon dont rsync vérifie si les fichiers ont été modifiés et nécessitent un transfert. Sans cette option,
rsync utilise une "vérification rapide" qui (par défaut) vérifie si la taille de chaque fichier et l'heure de la dernière modification correspondent entre
l'expéditeur et le destinataire. Cette option modifie cela pour comparer une somme de contrôle de 128 bits pour chaque fichier ayant une correspondance
taille. La génération des sommes de contrôle signifie que les deux parties dépenseront beaucoup d'E/S disque pour lire toutes les données des fichiers.
dans le transfert, cela peut donc ralentir considérablement les choses (et cela avant toute lecture qui sera faite à
transférer les fichiers modifiés)
Le côté expéditeur génère ses sommes de contrôle pendant qu'il effectue l'analyse du système de fichiers qui construit la liste des fichiers disponibles.
des dossiers. Le récepteur génère ses sommes de contrôle lorsqu'il recherche des fichiers modifiés, et effectuera la somme de contrôle de tout fichier qui
a la même taille que le fichier de l'expéditeur correspondant : les fichiers avec une taille ou une somme de contrôle modifiée sont sé‐
choisi pour le transfert.
Notez que rsync vérifie toujours que chaque fichier transféré a été correctement reconstruit du côté récepteur par
vérifier une somme de contrôle de l'ensemble du fichier qui est générée lors du transfert du fichier, mais qui est automatique après le transfert
la vérification n'a rien à voir avec la question "Ce fichier doit-il être mis à jour" avant le transfert ? vérifier.
La somme de contrôle utilisée est auto-négociée entre le client et le serveur, mais peut être remplacée à l'aide du
--checksum-choice (--cc) ou une variable d'environnement décrite dans la section relative à cette option.
--archive, -a
C'est équivalent à -rlptgoD. C'est une façon rapide de dire que vous voulez la récursion et que vous voulez préserver presque tout.
chose. Sachez que cela n'inclut pas la préservation des ACL (-A), xattrs (-X), atimes (-U), crtimes (-N), ni le find‐
ing et préservation des liens physiques (-H).
La seule exception à l'équivalence ci-dessus est lorsque --files-from est spécifié, auquel cas -r n'est pas implicite.
--pas d'option
Vous pouvez désactiver une ou plusieurs options implicites en préfixant le nom de l'option par "no-". Toutes les options positives n’ont pas
un contraire nié, mais beaucoup le font, y compris ceux qui peuvent être utilisés pour désactiver une option implicite (par exemple --no-D, --no-
perms) ou ont des valeurs par défaut différentes dans diverses circonstances (par exemple --no-whole-file, --no-blocking-io, --no-dirs). Ev‐
Toute option annulée valide accepte à la fois le nom d'option court et long après le préfixe "no-" (par exemple --no-R est le nom de l'option).
identique à --no-relatif).
Par exemple, si vous souhaitez utiliser --archive (-a) mais ne voulez pas --owner (-o), au lieu de convertir -a en -rlptgD,
vous pouvez spécifier -a --no-o (alias --archive --no-owner).
L'ordre des options est important : si vous spécifiez --no-r -a, l'option -r finira par être activée, l'op‐
positif de -a --no-r. Notez également que les effets secondaires de l'option --files-from ne sont PAS positionnels, car ils affectent
l'état par défaut de plusieurs options et modifie légèrement la signification de -a (voir l'option --files-from pour plus de détails).
queues).
--récursif, -r
Cela indique à rsync de copier les répertoires de manière récursive. Voir aussi --dirs (-d) pour une option qui permet l'analyse d'un
répertoire unique.
Voir l'option --inc-recursive pour une discussion sur la récursion incrémentielle pour créer la liste des fichiers à trans‐
fer.
--inc-récursif, --ir
Cette option active explicitement la récursion incrémentielle lors de l'analyse des fichiers, ce qui est activé par défaut lorsque vous utilisez
en utilisant l'option --recursive et les deux côtés du transfert exécutent rsync 3.0.0 ou une version plus récente.
La récursion incrémentielle utilise beaucoup moins de mémoire que la récursion non incrémentielle, tout en démarrant le transfert plus rapidement
(puisqu'il n'a pas besoin d'analyser toute la hiérarchie de transfert avant de commencer à transférer des fichiers). Si pas de récursion
est activé dans les fichiers sources, cette option n'a aucun effet.
Certaines options nécessitent que rsync connaisse la liste complète des fichiers, ces options désactivent donc le mode de récursion incrémentielle.
Ceux-ci inclus:
o --delete-before (l'ancienne valeur par défaut de --delete)
o --delete-après
o --prune-empty-répertoires
o --delay-updates
Afin de rendre --delete compatible avec la récursivité incrémentielle, rsync 3.0.0 a créé --delete-pendant la suppression par défaut
mode (qui a été ajouté pour la première fois dans 2.6.4).
L'un des effets secondaires de la récursion incrémentielle est que tout sous-répertoire manquant dans un répertoire analysé de manière récursive
sont (par défaut) créés avant d'être récurrés dans les sous-répertoires. Ce point de création antérieur (par rapport à une non-augmentation
récursivité mentale) permet à rsync de définir immédiatement l'heure de modification du répertoire terminé (sans avoir à
retardez cela jusqu'à ce qu'un certain nombre de copies récursives soient terminées). Cependant, ces premiers annuaires n'ont pas encore leur
mode terminé, mtime ou ensemble de propriétaires -- ils ont des droits plus restrictifs jusqu'à ce que la copie du sous-répertoire soit effectuée.
allié commence. Cet idiome de création précoce peut être évité en utilisant l'option --omit-dir-times.
La récursion incrémentielle peut être désactivée à l'aide de l'option --no-inc-recursive (--no-ir).
--no-inc-récursif, --no-ir
Désactive le nouvel algorithme de récursion incrémentielle de l'option --recursive. Cela permet à rsync d'analyser la liste complète des fichiers
avant de commencer à transférer des fichiers. Voir --inc-recursive pour plus d'informations.
--relatif, -R
Utilisez des chemins relatifs. Cela signifie que les noms de chemin complets spécifiés sur la ligne de commande sont envoyés au serveur plutôt
que les dernières parties des noms de fichiers. Ceci est particulièrement utile lorsque vous souhaitez envoyer plusieurs messages différents.
presbytères en même temps. Par exemple, si vous avez utilisé cette commande :
rsync -av /foo/bar/baz.c distant:/tmp/
créerait un fichier nommé baz.c dans /tmp/ sur la machine distante. Si à la place vous utilisiez
rsync -avR /foo/bar/baz.c distant:/tmp/
alors un fichier nommé /tmp/foo/bar/baz.c serait créé sur la machine distante, en préservant son chemin complet. Ces extras
Les éléments de chemin sont appelés « répertoires implicites » (c'est-à-dire les répertoires « foo » et « foo/bar » dans l'exemple ci-dessus).
Depuis rsync 3.0.0, rsync envoie toujours ces répertoires implicites comme de vrais répertoires dans la liste de fichiers, même
si un élément de chemin est vraiment un lien symbolique du côté expéditeur. Cela évite certains comportements vraiment inattendus lors de la copie.
en indiquant le chemin complet d'un fichier dont vous ne saviez pas qu'il contenait un lien symbolique dans son chemin. Si vous souhaitez dupliquer un serveur-
lien symbolique latéral, incluez à la fois le lien symbolique via son chemin et le répertoire référent via son chemin réel. Si vous avez affaire
avec un ancien rsync du côté expéditeur, vous devrez peut-être utiliser l'option --no-implicit-dirs.
Il est également possible de limiter la quantité d'informations de chemin envoyées sous forme de répertoires implicites pour chaque chemin que vous
spécifier. Avec un rsync moderne du côté envoi (commençant par 2.6.7), vous pouvez insérer un point et une barre oblique dans le
chemin source, comme ceci :
rsync -avR /foo/./bar/baz.c télécommande:/tmp/
Cela créerait /tmp/bar/baz.c sur la machine distante. (Notez que le point doit être suivi d'une barre oblique, donc "/foo/."
ne serait pas abrégé.) Pour les anciennes versions de rsync, vous devrez utiliser un chdir pour limiter le chemin source. Par exemple
amplement, lors du transfert de fichiers :
(cd /foo; rsync -avR bar/baz.c télécommande:/tmp/)
(Notez que les parenthèses placent les deux commandes dans un sous-shell, de sorte que la commande "cd" ne reste pas en vigueur pendant
commandes futures.) Si vous extrayez des fichiers d'un ancien rsync, utilisez cet idiome (mais uniquement pour un transfert non-démon) :
rsync -avR --rsync-path="cd /foo; rsync" \\
distant:bar/baz.c /tmp/
--pas de répertoires-implicites
Cette option affecte le comportement par défaut de l'option --relative. Lorsqu'il est spécifié, les attributs de l'im‐
Les répertoires copiés à partir des noms sources ne sont pas inclus dans le transfert. Cela signifie que le chemin correspondant correspond à
Les éléments sur le système de destination restent inchangés s'ils existent, et tous les répertoires implicites manquants sont créés
avec les attributs par défaut. Cela permet même à ces éléments de chemin implicites d'avoir de grandes différences, comme par exemple être une sym‐
lien vers un répertoire du côté réception.
Par exemple, si un argument de ligne de commande ou une entrée files-from demande à rsync de transférer le fichier "path/foo/file", la direction
Les tories "path" et "path/foo" sont implicites lorsque --relative est utilisé. Si "path/foo" est un lien symbolique vers "bar" sur la destination
système national, le rsync récepteur supprimerait normalement "path/foo", le recréerait en tant que répertoire et recevrait le
fichier dans le nouveau répertoire. Avec --no-implied-dirs, le rsync récepteur met à jour "path/foo/file" en utilisant le fichier existant
éléments de chemin, ce qui signifie que le fichier finit par être créé dans "chemin/bar". Une autre façon de réaliser ce lien
la préservation consiste à utiliser l'option --keep-dirlinks (qui affectera également les liens symboliques vers les répertoires dans le reste du
transfert).
Lorsque vous extrayez des fichiers d'un rsync antérieur à 3.0.0, vous devrez peut-être utiliser cette option si le côté expéditeur a un lien symbolique
dans le chemin que vous demandez et vous souhaitez que les répertoires implicites soient transférés comme des répertoires normaux.
--sauvegarde, -b
Avec cette option, les fichiers de destination préexistants sont renommés à mesure que chaque fichier est transféré ou supprimé. Vous pouvez contrôler
où va le fichier de sauvegarde et quel suffixe (le cas échéant) est ajouté à l'aide des options --backup-dir et --suffix.
Si vous ne spécifiez pas --backup-dir :
1. l'option --omit-dir-times sera forcée
2. l'utilisation de --delete (sans --delete-exclusive), amène rsync à ajouter une règle de filtre "protéger" pour la sauvegarde
suffixe à la fin de tous vos filtres existants qui ressemble à ceci : -f "P *~". Cette règle empêche auparavant
les fichiers sauvegardés ne sont pas supprimés.
Notez que si vous fournissez vos propres règles de filtrage, vous devrez peut-être insérer manuellement votre propre règle d'exclusion/protection.
quelque part plus haut dans la liste afin qu'il ait une priorité suffisamment élevée pour être efficace (par exemple si vos règles spécifient un
inclusion/exclusion finale de *, la règle ajoutée automatiquement ne sera jamais atteinte).
--backup-dir=DIR
Cela implique l'option --backup et indique à rsync de stocker toutes les sauvegardes dans le répertoire spécifié sur le serveur de réception.
côté. Cela peut être utilisé pour des sauvegardes incrémentielles. Vous pouvez également spécifier un suffixe de sauvegarde en utilisant l'option --suffix.
(sinon, les fichiers sauvegardés dans le répertoire spécifié conserveront leurs noms de fichiers d'origine).
Notez que si vous spécifiez un chemin relatif, le répertoire de sauvegarde sera relatif au répertoire de destination, vous
vous souhaiterez probablement spécifier soit un chemin absolu, soit un chemin commençant par "../". Si un démon rsync est le ré-
récepteur, le répertoire de sauvegarde ne peut pas sortir de la hiérarchie des chemins du module, alors faites très attention à ne pas le supprimer ou le copier
dans ça.
--suffix=SUFFIXE
Cette option vous permet de remplacer le suffixe de sauvegarde par défaut utilisé avec l'option --backup (-b). Le suffixe par défaut
est un ~ si aucun --backup-dir n'a été spécifié, sinon c'est une chaîne vide.
--update, -u
Cela force rsync à ignorer tous les fichiers qui existent sur la destination et à avoir une heure modifiée plus récente que l'heure de modification.
fichier source. (Si un fichier destination existant a une heure de modification égale à celle du fichier source, il sera mis à jour
si les tailles sont différentes.)
Notez que cela n'affecte pas la copie des répertoires, liens symboliques ou autres fichiers spéciaux. Aussi, une différence de fichier
le format entre l'expéditeur et le destinataire est toujours considéré comme suffisamment important pour une mise à jour, quelle que soit la date
est sur les objets. Autrement dit, si la source possède un répertoire dans lequel la destination possède un fichier, le transfert
se produirait quels que soient les horodatages.
Cette option est une RÈGLE DE TRANSFERT, alors ne vous attendez pas à des effets secondaires exclus.
Une mise en garde pour ceux qui choisissent de combiner --inplace avec --update : un transfert interrompu laissera derrière lui un par-
tial du côté récepteur qui a une heure de modification très récente, donc réexécuter le transfert ne sera probablement pas
continuer le fichier interrompu. En tant que tel, il est généralement préférable d'éviter de combiner ceci avec --inplace sauf si vous avez
implémenté des étapes manuelles pour gérer tous les fichiers en cours interrompus.
--en place
Cette option modifie la façon dont rsync transfère un fichier lorsque ses données doivent être mises à jour : au lieu de la méthode par défaut de
en créant une nouvelle copie du fichier et en la mettant en place une fois terminé, rsync écrit à la place les données mises à jour
directement dans le fichier de destination.
Cela a plusieurs effets :
o Les liens physiques ne sont pas rompus. Cela signifie que les nouvelles données seront visibles via d'autres liens physiques vers la destination.
fichier de configuration. De plus, les tentatives de copie de différents fichiers sources sur un fichier de destination à liens multiples entraîneront de nouveau des problèmes.
entraîner un « tir à la corde » avec les données de destination changeant d'avant en arrière.
o Les binaires en cours d'utilisation ne peuvent pas être mis à jour (soit le système d'exploitation empêchera que cela se produise, soit les binaires qui tentent de le faire)
l'échange de leurs données se comportera mal ou plantera).
o Les données du fichier seront dans un état incohérent lors du transfert et le resteront si le transfert
est interrompu ou si une mise à jour échoue.
o Un fichier dans lequel rsync ne peut pas écrire ne peut pas être mis à jour. Alors qu'un super utilisateur peut mettre à jour n'importe quel fichier, un utilisateur normal
doit disposer d'une autorisation d'écriture pour que l'ouverture du fichier soit réussie.
o L'efficacité de l'algorithme de transfert delta de rsync peut être réduite si certaines données du fichier de destination sont
écrasé avant de pouvoir être copié à un emplacement ultérieur dans le fichier. Cela ne s'applique pas si vous utilisez --backup,
puisque rsync est suffisamment intelligent pour utiliser le fichier de sauvegarde comme fichier de base pour le transfert.
AVERTISSEMENT : vous ne devez pas utiliser cette option pour mettre à jour des fichiers auxquels d'autres personnes accèdent, soyez donc prudent lorsque vous choisissez
je souhaite l'utiliser pour une copie.
Cette option est utile pour transférer des fichiers volumineux avec des modifications basées sur des blocs ou des données ajoutées, ainsi que sur des systèmes.
qui sont liés au disque et non au réseau. Cela peut également aider à empêcher un instantané du système de fichiers de copie sur écriture de diverger du
contenu complet d'un fichier qui ne comporte que des modifications mineures.
L'option implique --partial (puisqu'un transfert interrompu ne supprime pas le fichier), mais entre en conflit avec --partial-
dir et --delay-updates. Avant rsync 2.6.4, --inplace était également incompatible avec --compare-dest et --link-dest.
--ajouter
Ce mode de copie spécial ne fonctionne que pour mettre à jour efficacement les fichiers dont on sait qu'ils deviennent plus volumineux là où ils existent.
le contenu du côté récepteur est également connu pour être le même que le contenu de l’expéditeur. L'utilisation de --append peut être
dangereux si vous n'êtes pas sûr à 100% que tous les fichiers du transfert sont des fichiers partagés et en croissance. Vous devriez donc utiliser
règles de filtrage pour garantir que vous éliminez tous les fichiers qui ne correspondent pas à ces critères.
Rsync met à jour ces fichiers en croissance sur place sans vérifier aucun du contenu existant dans le fichier (il vérifie uniquement
le contenu qu'il ajoute). Rsync ignore tous les fichiers qui existent du côté récepteur et qui ne sont pas plus courts que
le fichier associé côté expéditeur (ce qui signifie que de nouveaux fichiers sont transférés). Il ignore également tous les fichiers dont
la taille du côté expéditeur diminue pendant les négociations d'envoi (rsync avertit d'un fichier "diminué" lorsque cela
arrive).
Cela n'interfère pas avec la mise à jour des attributs non liés au contenu d'un fichier (par exemple, autorisations, propriété, etc.)
lorsque le fichier n'a pas besoin d'être transféré, cela n'affecte pas non plus la mise à jour des répertoires ou des
des dossiers.
--append-vérifier
Ce mode de copie spécial fonctionne comme --append sauf que toutes les données du fichier sont incluses dans la somme de contrôle de vérification.
tion (la rendant moins efficace mais aussi potentiellement plus sûre). Cette option peut être dangereuse si vous n'êtes pas sûr à 100 %
que tous les fichiers du transfert sont des fichiers partagés et en croissance. Voir l'option --append pour plus de détails.
Remarque : avant rsync 3.0.0, l'option --append fonctionnait comme --append-verify, donc si vous interagissez avec un ancien
rsync (ou le transfert utilise un protocole antérieur à 30), la spécification de l'une ou l'autre option d'ajout lancera un --append-
vérifier le transfert.
--répertoires, -d
Dites au côté expéditeur d’inclure tous les répertoires rencontrés. Contrairement à --recursive, le contenu d'un répertoire
ne sont pas copiés sauf si le nom de répertoire spécifié est "." ou se termine par une barre oblique (par exemple ".", "dir/.", "dir/",
etc.). Sans cette option ou l'option --recursive, rsync ignorera tous les répertoires qu'il rencontre (et affichera un
message à cet effet pour chacun). Si vous spécifiez à la fois --dirs et --recursive, --recursive est prioritaire.
L'option --dirs est implicite par l'option --files-from ou l'option --list-only (y compris un --list-only implicite
utilisation) si --recursive n'a pas été spécifié (afin que les répertoires soient visibles dans la liste). Spécifiez --no-dirs (ou --no-d)
si vous voulez désactiver cela.
Il existe également une option d'assistance de compatibilité ascendante, --old-dirs (--old-d) qui indique à rsync d'utiliser un hack de -r --ex‐
clude='/*/*' pour qu'un ancien rsync répertorie un seul répertoire sans récursion.
--mkpath
Créez tous les composants de chemin manquants du chemin de destination.
Par défaut, rsync autorise uniquement le composant final du chemin de destination à ne pas exister, ce qui est une tentative d'aider
vous de valider votre chemin de destination. Avec cette option, rsync crée tous les composants manquants du chemin de destination,
comme si mkdir -p $DEST_PATH avait été exécuté du côté réception.
Lors de la spécification d'un chemin de destination, l'inclusion d'une barre oblique finale garantit que l'ensemble du chemin est traité comme un répertoire
noms à créer, même lorsque la liste de fichiers ne contient qu'un seul élément. Voir la section COPIE VERS UN NOM DIFFÉRENT pour connaître
des détails sur la façon dont rsync décide si un composant de chemin de destination final doit être créé en tant que répertoire ou non.
Si vous souhaitez que les répertoires de destination nouvellement créés correspondent aux répertoires du côté expéditeur, vous devez utiliser
--relative (-R) au lieu de --mkpath. Par exemple, les deux commandes suivantes aboutissent à la même arborescence de destination,
mais seule la deuxième commande garantit que les composants "some/extra/path" correspondent aux répertoires du côté expéditeur :
rsync -ai --mkpath hôte:some/extra/path/*.c some/extra/path/
rsync -aiR hôte:some/extra/path/*.c ./
--liens, -l
Ajoutez des liens symboliques vers les fichiers transférés au lieu de les ignorer bruyamment avec un avertissement « fichier non régulier » pour chacun
lien symbolique rencontré. Vous pouvez également faire taire l'avertissement en spécifiant --info=nonreg0.
La gestion par défaut des liens symboliques consiste à recréer la valeur inchangée de chaque lien symbolique du côté réception.
Consultez la section LIENS SYMBOLIQUES pour obtenir des informations sur les options multiples.
--copie-liens, -L
L'expéditeur transforme chaque lien symbolique rencontré lors du transfert en élément référent, en suivant la chaîne de liens symboliques pour
le fichier ou le répertoire auquel il fait référence. Si une chaîne de liens symboliques est rompue, une erreur est générée et le fichier est supprimé
du transfert.
Cette option remplace toutes les autres options qui affectent les liens symboliques dans le transfert, puisqu'il n'y a plus de liens symboliques dans
le transfert.
Cette option ne modifie pas la gestion des liens symboliques existants côté réception, contrairement aux versions de rsync antérieures.
à 2.6.3 qui a eu pour effet secondaire de dire au côté récepteur de suivre également les liens symboliques. Un rsync moderne ne conviendra pas
confiez cette option à un destinataire distant (puisque seul l'expéditeur a besoin d'en être informé), cette mise en garde ne devrait donc concerner que
fecter quelqu'un utilisant un client rsync antérieur à 2.6.7 (c'est à ce moment-là que -L a cessé d'être transmis au récepteur).
Voir --keep-dirlinks (-K) si vous avez besoin qu'un lien symbolique vers un répertoire soit traité comme un véritable répertoire sur le serveur de réception.
côté.
Consultez la section LIENS SYMBOLIQUES pour obtenir des informations sur les options multiples.
--copy-unsafe-links
Cela indique à rsync de copier le référent des liens symboliques qui pointent en dehors de l'arborescence copiée. Les liens symboliques absolus sont
également traité comme des fichiers ordinaires, tout comme les liens symboliques dans le chemin source lui-même lorsque --relative est utilisé.
Notez que le point de coupure est le haut du transfert, qui est la partie du chemin que rsync ne mentionne pas dans
la sortie verbeuse. Si vous copiez "/src/subdir" dans "/dest/", alors le répertoire "subdir" est un nom à l'intérieur du transfert
arbre, pas le haut du transfert (qui est /src), il est donc légal pour les liens symboliques relatifs créés de faire référence à d'autres
noms dans les répertoires /src et /dest. Si vous copiez plutôt "/src/subdir/" (avec une barre oblique finale) dans
"/dest/subdir" qui n'autoriserait pas les liens symboliques vers des fichiers en dehors de "subdir".
Notez que les liens symboliques sécurisés ne sont copiés que si --links a également été spécifié ou implicite. L'option --copy-unsafe-links a
aucun effet supplémentaire lorsqu'il est combiné avec --copy-links.
Consultez la section LIENS SYMBOLIQUES pour obtenir des informations sur les options multiples.
--liens-sûrs
Cela indique au rsync récepteur d'ignorer tous les liens symboliques du transfert qui pointent en dehors de l'arborescence copiée. Tous
les liens symboliques absolus sont également ignorés.
Puisque cette ignorance se produit du côté récepteur, elle sera toujours efficace même si le côté expéditeur a
liens symboliques munge (quand il utilise --munge-links). Cela affecte également les suppressions, puisque le fichier étant présent dans le
Le transfert empêche la suppression de tout fichier correspondant sur le récepteur lorsque le lien symbolique est jugé dangereux et est
sauté.
Cette option doit être combinée avec --links (ou --archive) pour avoir des liens symboliques dans le transfert vers l'ig‐
plus. Son effet est remplacé par --copy-unsafe-links.
L'utilisation de cette option conjointement avec --relative peut donner des résultats inattendus.
Consultez la section LIENS SYMBOLIQUES pour obtenir des informations sur les options multiples.
--munge-liens
Cette option n'affecte qu'un seul côté du transfert et indique à rsync de supprimer les valeurs des liens symboliques lorsqu'il reçoit des fichiers.
ou supprimez les valeurs des liens symboliques lors de l'envoi de fichiers. Les valeurs munged rendent les liens symboliques inutilisables sur le disque mais permettent
le contenu original des liens symboliques à récupérer.
Le rsync côté serveur active souvent cette option à l'insu du client, comme dans la configuration d'un démon rsync.
ration ou par une option donnée au script rrsync (rsync restreint). Lorsqu'il est spécifié côté client, spécifiez
ify l'option normalement si c'est le côté client qui a/a besoin des liens symboliques munge, ou utilisez -M--munge-links pour donner
l'option au serveur lorsqu'il a/a besoin des liens symboliques munged. Notez que sur un transfert local, le client est le
expéditeur, donc spécifier l'option supprime directement les liens symboliques tout en la spécifiant comme option distante supprime les liens symboliques.
Cette option n'a aucun effet lorsqu'elle est envoyée à un démon via --remote-option car le démon configure s'il souhaite
liens symboliques munge via son paramètre "liens symboliques munge".
La valeur du lien symbolique est munged/unmunged une fois qu'elle est dans le transfert, donc toute option qui transforme les liens symboliques en liens non symboliques
les liens se produisent avant le munging/unmunging, sauf pour --safe-links, qui est un choix fait par le récepteur, donc il
base sa décision sur la valeur mungé/non mungé. Cela signifie que si le munging est activé sur un récepteur, cela signifie qu'en utilisant
--safe-links entraînera l'ignorance de tous les liens symboliques (puisqu'ils sont tous absolus).
La méthode utilisée par rsync pour supprimer les liens symboliques consiste à préfixer la valeur de chacun avec la chaîne "/rsyncd-munged/".
Cela empêche l'utilisation des liens tant que le répertoire n'existe pas. Lorsque cette option est activée, rsync
refusera de s'exécuter si ce chemin est un répertoire ou un lien symbolique vers un répertoire (bien qu'il ne vérifie qu'au démarrage). Voir
également le script python "munge-symlinks" dans le répertoire de support du code source pour un moyen de munge/unmunge un ou
plus de liens symboliques en place.
--copy-dirlinks, -k
Cette option amène le côté expéditeur à traiter un lien symbolique vers un répertoire comme s'il s'agissait d'un véritable répertoire. C'est
utile si vous ne voulez pas que les liens symboliques vers des non-répertoires soient affectés, comme ils le feraient en utilisant --copy-links.
Sans cette option, si le côté émetteur a remplacé un répertoire par un lien symbolique vers un répertoire, le côté récepteur
supprimera tout ce qui gêne le nouveau lien symbolique, y compris une hiérarchie de répertoires (à condition que --force ou
--delete est en vigueur).
Voir aussi --keep-dirlinks pour une option analogue pour le côté récepteur.
--copy-dirlinks s'applique à tous les liens symboliques vers les répertoires de la source. Si vous souhaitez suivre seulement quelques-uns spécifiés
liens symboliques, une astuce que vous pouvez utiliser est de les transmettre comme arguments source supplémentaires avec une barre oblique finale, en utilisant --relative to
faites correspondre les chemins. Par exemple:
rsync -r --relative src/./ src/./follow-me/ dest/
Cela fonctionne parce que rsync appelle lstat(2) sur l'argument source comme indiqué, et la barre oblique finale fait que lstat(2) suit le
lien symbolique, donnant naissance à un répertoire dans la liste de fichiers qui remplace le lien symbolique trouvé lors de l'analyse de "src/./".
Consultez la section LIENS SYMBOLIQUES pour obtenir des informations sur les options multiples.
--keep-dirlinks, -K
Cette option amène le côté récepteur à traiter un lien symbolique vers un répertoire comme s'il s'agissait d'un véritable répertoire, mais uniquement
s'il correspond à un vrai répertoire de l'expéditeur. Sans cette option, le lien symbolique du destinataire serait supprimé et re‐
placé avec un vrai répertoire.
Par exemple, supposons que vous transfériez un répertoire "foo" qui contient un fichier "file", mais "foo" est un lien symbolique vers le répertoire
"barre" sur le récepteur. Sans --keep-dirlinks, le récepteur supprime le lien symbolique "foo", le recrée en tant que répertoire et
reçoit le fichier dans le nouveau répertoire. Avec --keep-dirlinks, le récepteur conserve le lien symbolique et le "fichier" se retrouve dans
"bar".
Une mise en garde : si vous utilisez --keep-dirlinks, vous devez faire confiance à tous les liens symboliques de la copie ou activer l'option --munge-
option liens du côté réception ! S'il est possible pour un utilisateur non fiable de créer son propre lien symbolique vers un utilisateur réel
répertoire, l'utilisateur pourrait alors (sur une copie ultérieure) remplacer le lien symbolique par un répertoire réel et affecter la configuration.
tente du répertoire auquel le lien symbolique fait référence. Pour les copies de sauvegarde, il est préférable d'utiliser quelque chose comme une liaison
mount au lieu d'un lien symbolique pour modifier votre hiérarchie de réception.
Voir aussi --copy-dirlinks pour une option analogue pour le côté expéditeur.
Consultez la section LIENS SYMBOLIQUES pour obtenir des informations sur les options multiples.
--liens durs, -H
Cela indique à rsync de rechercher les fichiers liés en dur dans la source et de lier ensemble les fichiers correspondants sur la destination.
nation. Sans cette option, les fichiers liés en dur dans la source sont traités comme s'il s'agissait de fichiers distincts.
Cette option ne garantit PAS nécessairement que le modèle des liens physiques sur la destination correspond exactement à celui sur le
source. Les cas dans lesquels la destination peut se retrouver avec des liens physiques supplémentaires sont les suivants :
o Si la destination contient des liens physiques superflus (plus de liens que ce qui est présent dans la liste des fichiers source),
l'algorithme de copie ne les cassera pas explicitement. Cependant, si un ou plusieurs chemins ont un contenu différent
références, le processus normal de mise à jour des fichiers rompra ces liens supplémentaires (sauf si vous utilisez l'option --inplace).
tion).
o Si vous spécifiez un répertoire --link-dest contenant des liens physiques, la liaison des fichiers de destination avec
les fichiers --link-dest peuvent entraîner la liaison de certains chemins de la destination en raison de l'option --link-dest
les associations.
Notez que rsync ne peut détecter que les liens physiques entre les fichiers qui se trouvent à l'intérieur de l'ensemble de transfert. Si rsync met à jour un fichier
qui a des connexions de lien physique supplémentaires avec des fichiers en dehors du transfert, ce lien sera rompu. Si tu es tenté
pour utiliser l'option --inplace afin d'éviter cette casse, veillez à savoir comment vos fichiers sont mis à jour afin
que vous êtes certain qu'aucun changement involontaire ne se produit en raison de liens physiques persistants (et consultez l'option --inplace pour
plus de mises en garde).
Si la récursion incrémentielle est active (voir --inc-recursive), rsync peut transférer un fichier lié en dur manquant avant
constate qu'un autre lien vers ce contenu existe ailleurs dans la hiérarchie. Cela n'affecte pas l'exactitude de
le transfert (c'est-à-dire quels fichiers sont liés entre eux), juste son efficacité (c'est-à-dire copier les données pour un nouveau, plus tôt
copie d'un fichier lié en dur qui aurait pu être trouvé ultérieurement lors du transfert dans un autre membre de l'ensemble lié en dur
de fichiers). Une façon d'éviter cette inefficacité est de désactiver la récursion incrémentielle à l'aide de l'option --no-inc-recursive.
tion.
--perms, -p
Cette option amène le rsync récepteur à définir les autorisations de destination pour qu'elles soient les mêmes que les autorisations source.
(Voir aussi l'option --chmod pour savoir comment modifier ce que rsync considère comme les autorisations source.)
Lorsque cette option est désactivée, les autorisations sont définies comme suit :
o Les fichiers existants (y compris les fichiers mis à jour) conservent leurs autorisations existantes, malgré l'option --executability
pourrait modifier uniquement l'autorisation d'exécution du fichier.
o Les nouveaux fichiers obtiennent leurs bits d'autorisation "normaux" définis sur les autorisations du fichier source masquées par le destinataire.
les autorisations par défaut du répertoire (soit l'umask du processus de réception, soit les autorisations spécifiées via le
ACL par défaut du répertoire de destination), et leurs bits d'autorisation spéciaux désactivés, sauf dans le cas où un
le nouveau répertoire hérite d'un bit setgid de son répertoire parent.
Ainsi, lorsque --perms et --executability sont tous deux désactivés, le comportement de rsync est le même que celui des autres copieurs de fichiers.
des utilitaires, tels que cp(1) et tar(1).
En résumé : pour donner aux fichiers de destination (anciens et nouveaux) les autorisations source, utilisez --perms. Pour donner aux nouveaux fichiers le
autorisations de destination par défaut (tout en laissant les fichiers existants inchangés), assurez-vous que l'option --perms est désactivée
et utilisez --chmod=ugo=rwX (ce qui garantit que tous les bits non masqués sont activés). Si vous souhaitez que ce dernier soit
comportement plus facile à saisir, vous pouvez lui définir un alias popt, par exemple en mettant cette ligne dans le fichier ~/.popt (le comportement suivant
lowing définit l'option -Z et inclut --no-g pour utiliser le groupe par défaut du répertoire de destination) :
rsync alias -Z --no-p --no-g --chmod=ugo=rwX
Vous pourriez alors utiliser cette nouvelle option dans une commande comme celle-ci :
rsync -avZ src/ dest/
(Attention : assurez-vous que -a ne suit pas -Z, sinon cela réactivera les deux options --no-* mentionnées ci-dessus.)
La préservation du bit setgid de la destination sur les répertoires nouvellement créés lorsque --perms est désactivé a été ajoutée dans rsync
2.6.7. Les anciennes versions de rsync conservaient par erreur les trois bits d'autorisation spéciaux pour les fichiers nouvellement créés lorsque
--perms était désactivé, tout en remplaçant le paramètre de bit setgid de la destination sur un répertoire nouvellement créé. Obligation ACL par défaut
servance a été ajouté au correctif ACL pour rsync 2.6.7, donc les rsyncs plus anciens (ou non compatibles ACL) utilisent l'umask même s'ils sont désactivés.
des ACL de panne sont présentes. (Gardez à l'esprit que c'est la version du rsync récepteur qui affecte ces comportements.)
--exécutabilité, -E
Cette option permet à rsync de préserver l'exécutabilité (ou la non-exécutabilité) des fichiers normaux lorsque --perms ne l'est pas.
activé. Un fichier normal est considéré comme exécutable si au moins un « x » est activé dans ses autorisations. Quand un
L'exécutabilité du fichier de destination existant diffère de celle du fichier source correspondant, rsync modifie le des‐
les autorisations du fichier de destination comme suit :
o Pour rendre un fichier non exécutable, rsync désactive toutes ses autorisations « x ».
o Pour rendre un fichier exécutable, rsync active chaque autorisation « x » pour laquelle une autorisation « r » correspondante est activée.
Si --perms est activé, cette option est ignorée.
--acls, -A
Cette option oblige rsync à mettre à jour les ACL de destination pour qu'elles soient identiques aux ACL sources. L'option implique également
--permanentes.
Les systèmes source et de destination doivent avoir des entrées ACL compatibles pour que cette option fonctionne correctement. Voir le
--fake-super option pour un moyen de sauvegarder et de restaurer les ACL qui ne sont pas compatibles.
--xattrs, -X
Cette option amène rsync à mettre à jour les attributs étendus de destination pour qu'ils soient identiques à ceux de la source.
Pour les systèmes prenant en charge les espaces de noms à attributs étendus, une copie effectuée par un super-utilisateur copie tous les espaces de noms ex‐
système d'acceptation.*. Un utilisateur normal copie uniquement l'espace de noms user.*. Pour pouvoir sauvegarder et restaurer les espaces de noms non-utilisateurs
en tant qu'utilisateur normal, consultez l'option --fake-super.
Le filtrage des noms ci-dessus peut être remplacé en utilisant une ou plusieurs options de filtre avec le modificateur x. Lorsque vous précisez
une règle de filtrage affectant xattr, rsync nécessite que vous effectuiez votre propre filtrage système/utilisateur, ainsi que tout autre filtrage supplémentaire.
filtrer quels noms xattr sont copiés et quels noms peuvent être supprimés. Par exemple, pour ignorer le système
espace de noms, vous pouvez spécifier :
--filter='-x système.*'
Pour ignorer tous les espaces de noms à l'exception de l'espace de noms utilisateur, vous pouvez spécifier une correspondance d'utilisateur annulé :
--filter='-x! utilisateur.*'
Pour empêcher la suppression d'attributs, vous pouvez spécifier une règle réservée au destinataire qui exclut tous les noms :
--filter='-xr *'
Notez que l'option -X ne copie pas les valeurs xattr spéciales de rsync (par exemple celles utilisées par --fake-super) sauf si vous re-
tourbe l'option (par exemple -XX). Ce mode "copier tous les xattrs" ne peut pas être utilisé avec --fake-super.
--chmod=CHMOD
Cette option indique à rsync d'appliquer un ou plusieurs modes "chmod" séparés par des virgules à l'autorisation des fichiers dans le
transfert. La valeur résultante est traitée comme s'il s'agissait des autorisations fournies par le côté expéditeur pour le
file, ce qui signifie que cette option peut sembler n'avoir aucun effet sur les fichiers existants si --perms n'est pas activé.
En plus des règles d'analyse normales spécifiées dans la page de manuel chmod(1), vous pouvez spécifier un élément qui ne doit
appliquer à un répertoire en le préfixant d'un « D », ou spécifier un élément qui ne doit s'appliquer qu'à un fichier en le préfixant
avec un « F ». Par exemple, ce qui suit garantira que tous les répertoires sont marqués set-gid, qu'aucun fichier n'est autre-
inscriptibles, que les deux sont accessibles en écriture par l'utilisateur et en groupe, et que les deux ont une exécutabilité cohérente dans tous les
morceaux:
--chmod=Dg+s,ug+w,Fo-w,+X
L'utilisation de numéros en mode octal est également autorisée :
--chmod=D2775,F664
Il est également légal de spécifier plusieurs options --chmod, car chaque option supplémentaire est simplement ajoutée à la liste des options --chmod.
modifications à apporter.
Consultez les options --perms et --executability pour savoir comment la valeur d'autorisation résultante peut être appliquée aux fichiers dans le
transfert.
--propriétaire, -o
Cette option amène rsync à définir le propriétaire du fichier de destination comme étant le même que le fichier source, mais seulement si le
la réception de rsync est exécutée en tant que super-utilisateur (voir aussi les options --super et --fake-super). Sans cette option,
le propriétaire des fichiers nouveaux et/ou transférés est défini sur l'utilisateur appelant du côté récepteur.
La préservation de la propriété associera par défaut les noms correspondants, mais pourra revenir à l'utilisation du numéro d'identification dans
certaines circonstances (voir aussi l'option --numeric-ids pour une discussion complète).
--groupe, -g
Cette option amène rsync à définir le groupe du fichier de destination pour qu'il soit identique à celui du fichier source. Si la réception
Le programme ing ne s'exécute pas en tant que super-utilisateur (ou si --no-super a été spécifié), uniquement les groupes sur lesquels l'utilisateur appelant est
le côté récepteur est membre de sera préservé. Sans cette option, le groupe est défini sur le groupe par défaut de
l'utilisateur appelant du côté récepteur.
La préservation des informations de groupe associera les noms correspondants par défaut, mais pourra recourir à l'utilisation de l'ID.
nombre dans certaines circonstances (voir aussi l'option --numeric-ids pour une discussion complète).
--dispositifs
Cette option amène rsync à transférer les fichiers de caractères et de blocs de périphériques vers le système distant pour recréer ces périphériques.
Si le rsync récepteur n'est pas exécuté en tant que super-utilisateur, rsync ignore silencieusement la création des fichiers de périphérique (voir aussi
les options --super et --fake-super).
Par défaut, rsync génère un avertissement « fichier non régulier » pour chaque fichier de périphérique rencontré lorsque cette option n'est pas
ensemble. Vous pouvez faire taire l'avertissement en spécifiant --info=nonreg0.
--spéciaux
Cette option amène rsync à transférer des fichiers spéciaux, tels que les sockets nommés et les fifos. Si le rsync de réception n'est pas
étant exécuté en tant que super-utilisateur, rsync ignore silencieusement la création des fichiers spéciaux (voir aussi les options --super et --fake-super
options).
Par défaut, rsync génère un avertissement « fichier non régulier » pour chaque fichier spécial rencontré lorsque cette option n'est pas
ensemble. Vous pouvez faire taire l'avertissement en spécifiant --info=nonreg0.
-D L'option -D est équivalente à "--devices --specials".
--copie-périphériques
Cela indique à rsync de traiter un périphérique du côté expéditeur comme un fichier normal, lui permettant d'être copié vers une destination normale.
fichier nation (ou un autre périphérique si --write-devices a également été spécifié).
Cette option est refusée par défaut par un démon rsync.
--write-périphériques
Cela indique à rsync de traiter un périphérique du côté récepteur comme un fichier normal, permettant ainsi l'écriture des données du fichier dans un fichier.
appareil.
Cette option implique l'option --inplace.
Soyez prudent lorsque vous utilisez ceci, car vous devez savoir quels appareils sont présents du côté réception du transfert, en particulier
lors de l'exécution de rsync en tant que root.
Cette option est refusée par défaut par un démon rsync.
--fois, -t
Cela indique à rsync de transférer les heures de modification avec les fichiers et de les mettre à jour sur le système distant. Noter que
si cette option n'est pas utilisée, l'optimisation qui exclut les fichiers non modifiés ne peut pas être efficace ; dans
en d'autres termes, un -t (ou -a) manquant fera que le prochain transfert se comportera comme s'il utilisait --ignore-times (-I), ce qui entraînera
tous les fichiers à mettre à jour (bien que l'algorithme de transfert delta de rsync rendra la mise à jour assez efficace si les fichiers
n'a pas réellement changé, il vaut mieux utiliser -t).
Un rsync moderne qui utilise le protocole de transfert 30 ou 31 transmet une heure de modification utilisant jusqu'à 8 octets. Si rsync est forcé
pour parler d'un protocole plus ancien (peut-être parce que le rsync distant est plus ancien que 3.0.0), une heure de modification est transmise en utilisant
4 octets. Avant la version 3.2.7, ces valeurs plus courtes pouvaient transmettre une plage de dates allant du 13 décembre 1901 au 19 janvier 2038. Début
avec la version 3.2.7, ces valeurs de 4 octets transmettent désormais une plage de dates allant du 1er janvier 1970 au 7 février 2106. Si vous avez des fichiers plus anciens
que 1970, assurez-vous que vos exécutables rsync sont mis à niveau afin que la gamme complète de dates puisse être transmise.
--atimes, -U
Cela indique à rsync de définir les heures d'accès (d'utilisation) des fichiers de destination sur la même valeur que les fichiers source.
Si cela est répété, il définit également l'option --open-noatime, qui peut vous aider à configurer les systèmes d'envoi et de réception.
avoir les mêmes temps d'accès sur les fichiers transférés sans avoir besoin d'exécuter rsync une fois supplémentaire après la transmission d'un fichier.
ferré.
Notez que certaines anciennes versions de rsync (antérieures à 3.2.0) peuvent avoir été construites avec un correctif préliminaire --atimes qui fait
n'implique pas --open-noatime lorsque cette option est répétée.
--open-noatime
Cela indique à rsync d'ouvrir les fichiers avec l'indicateur O_NOATIME (sur les systèmes qui le prennent en charge) pour éviter de modifier l'heure d'accès.
des fichiers en cours de transfert. Si votre système d'exploitation ne prend pas en charge l'indicateur O_NOATIME, rsync s'allumera silencieusement.
ni cette option. Notez également que certains systèmes de fichiers sont montés pour éviter de mettre à jour l'heure lors de l'accès en lecture, même avec
l'indicateur O_NOATIME est défini.
--crtimes, -N,
Cela indique à rsync de définir les heures de création (nouveauté) des fichiers de destination sur la même valeur que les fichiers source.
--omit-dir-times, -O
Cela indique à rsync d'omettre les répertoires lorsqu'il préserve les temps de modification, d'accès et de création. Si NFS partage
les répertoires du côté récepteur, c'est une bonne idée d'utiliser -O. Cette option est déduite si vous utilisez --backup
sans --backup-dir.
Cette option a également pour effet secondaire d'éviter la création précoce de sous-répertoires manquants lors d'une récursion incrémentielle.
est activé, comme indiqué dans la section --inc-recursive.
--omit-link-times, -J
Cela indique à rsync d'omettre les liens symboliques lorsqu'il préserve les temps de modification, d'accès et de création.
--super
Cela indique au côté récepteur de tenter des activités de super-utilisateur même si le rsync de réception n'a pas été exécuté par le super-utilisateur.
utilisateur. Ces activités incluent : la préservation des utilisateurs via l'option --owner, la préservation de tous les groupes (pas seulement le groupe actuel).
groupes d'utilisateurs) via l'option --group et la copie des appareils via l'option --devices. Ceci est utile pour les systèmes qui
autoriser de telles activités sans être le super-utilisateur, et également pour garantir que vous obtiendrez des erreurs si le destinataire
side n'est pas exécuté en tant que super-utilisateur. Pour désactiver les activités du super-utilisateur, celui-ci peut utiliser --no-super.
--faux-super
Lorsque cette option est activée, rsync simule les activités du super-utilisateur en enregistrant/restaurant les attributs privilégiés via
attributs étendus spéciaux qui sont attachés à chaque fichier (si nécessaire). Cela inclut le propriétaire et le groupe du fichier (si
ce n'est pas la valeur par défaut), les informations sur le périphérique du fichier (les fichiers de périphérique et spéciaux sont créés sous forme de fichiers texte vides) et tout fichier per‐
bits de mission que nous n'autorisons pas à définir sur le fichier réel (par exemple, le fichier réel nous obtient, gs, pas pour des raisons de sécurité) ou qui
limiterait l'accès du propriétaire (puisque le véritable super-utilisateur peut toujours accéder/modifier un fichier, les fichiers que nous créons peuvent
toujours accessible/modifié par l'utilisateur créateur). Cette option gère également les ACL (si --acls a été spécifié) et les non-
attributs étendus de l'utilisateur (si --xattrs a été spécifié).
C'est un bon moyen de sauvegarder des données sans utiliser de super-utilisateur et de stocker les ACL de systèmes incompatibles.
L'option --fake-super n'affecte que le côté où l'option est utilisée. Pour affecter le côté distant d'un shell distant
connexion, utilisez l'option --remote-option (-M) :
rsync -av -M--fake-super /src/ hôte:/dest/
Pour une copie locale, cette option affecte à la fois la source et la destination. Si vous souhaitez une copie locale pour activer cela
option uniquement pour les fichiers de destination, spécifiez -M--fake-super. Si vous souhaitez une copie locale, activez cette option simplement
pour les fichiers sources, combinez --fake-super avec -M--super.
Cette option est remplacée par --super et --no-super.
Voir aussi le faux super paramètre dans le fichier rsyncd.conf du démon.
--sparse, -S
Essayez de gérer efficacement les fichiers clairsemés afin qu'ils occupent moins d'espace sur la destination. Si combiné avec --inplace le
Le fichier créé peut ne pas se retrouver avec des blocs clairsemés avec certaines combinaisons de version du noyau et/ou de type de système de fichiers. Si
--whole-file est en vigueur (par exemple pour une copie locale), alors cela fonctionnera toujours car rsync tronque le fichier avant
rédiger la version mise à jour.
Notez que les versions de rsync antérieures à 3.1.3 rejetteront la combinaison de --sparse et --inplace.
--pré-allocation
Cela indique au récepteur d'attribuer à chaque fichier de destination sa taille éventuelle avant d'écrire des données dans le fichier.
Rsync n'utilisera que le véritable support de préallocation au niveau du système de fichiers fourni par l'appel système fallocate(2) de Linux ou
Posix_fallocate(3) de Cygwin, pas la lente implémentation de la glibc qui écrit un octet nul dans chaque bloc.
Sans cette option, les fichiers plus volumineux ne seront peut-être pas entièrement contigus sur le système de fichiers, mais avec cette option, rsync le fera.
copiez probablement plus lentement. Si la destination n'est pas un système de fichiers prenant en charge l'extension (tel que ext4, xfs, NTFS,
etc.), cette option peut n’avoir aucun effet positif.
S'il est combiné avec --sparse, le fichier n'aura que des blocs clairsemés (par opposition aux séquences allouées d'octets nuls) si
la version du noyau et le type de système de fichiers prennent en charge la création de trous dans les données allouées.
--essai à sec, -n
Cela oblige rsync à effectuer un essai qui n'apporte aucune modification (et produit essentiellement le même résultat qu'un vrai
courir). Il est le plus souvent utilisé en combinaison avec les options --verbose (-v) et/ou --itemize-changes (-i) pour voir
ce qu'une commande rsync va faire avant de l'exécuter réellement.
Le résultat de --itemize-changes est censé être exactement le même lors d'un essai à sec et d'un essai réel ultérieur (sauf si
tromperie intentionnelle et échecs d'appels système) ; si ce n'est pas le cas, c'est un bug. Les autres productions devraient rester pratiquement inchangées,
mais peut différer dans certains domaines. Notamment, un essai à blanc n'envoie pas les données réelles pour les transferts de fichiers, donc --progress a
aucun effet, les statistiques « octets envoyés », « octets reçus », « données littérales » et « données correspondantes » sont trop petites et le
La valeur "speedup" équivaut à une exécution où aucun transfert de fichier n'était nécessaire.
--fichier entier, -W
Cette option désactive l'algorithme de transfert delta de rsync, ce qui fait que tous les fichiers transférés sont envoyés dans leur intégralité. Le
le transfert peut être plus rapide si cette option est utilisée lorsque la bande passante entre les machines source et de destination est
supérieure à la bande passante vers le disque (surtout lorsque le « disque » est en réalité un système de fichiers en réseau). C'est le dé‐
erreur lorsque la source et la destination sont spécifiées comme chemins locaux, mais uniquement si aucune option d'écriture par lots n'est présente.
effet.
--no-fichier entier, --no-W
Désactivez la mise à jour de l'intégralité du fichier lorsqu'elle est activée par défaut pour un transfert local. Cela ralentit généralement rsync, mais
cela peut être utile si vous essayez de minimiser les écritures dans le fichier de destination (si combiné avec --inplace) ou pour
tester l'algorithme de mise à jour basé sur la somme de contrôle.
Voir aussi l'option --whole-file.
--checksum-choice=STR, --cc=STR
Cette option remplace les algorithmes de somme de contrôle. Si un nom d'algorithme est spécifié, il est utilisé à la fois pour le transfert
les sommes de contrôle et (en supposant que --checksum soit spécifié) les sommes de contrôle avant le transfert. Si deux noms séparés par des virgules sont pris en charge
appliqué, le premier nom affecte les sommes de contrôle de transfert et le deuxième nom affecte les sommes de contrôle de pré-transfert (-c).
Les options de somme de contrôle que vous pourrez peut-être utiliser sont :
o auto (le choix automatique par défaut)
o xxh128
oxxh3
o xxh64 (alias xxhash)
ou md5
ou md4
o sha1
sur une
Exécutez rsync --version pour voir la liste de somme de contrôle par défaut compilée dans votre version (qui peut différer de la liste
au-dessus de).
Si "aucun" est spécifié pour le premier (ou le seul) nom, l'option --whole-file est forcée et aucune vérification de la somme de contrôle n'est effectuée.
tion est effectuée sur les données transférées. Si "aucun" est spécifié pour le deuxième (ou le seul) nom, l'opération --checksum
tion ne peut pas être utilisée.
L'option "auto" est l'option par défaut, où rsync base son choix d'algorithme sur une négociation entre le client et le client.
serveur comme suit :
Lorsque les deux côtés du transfert sont au moins 3.2.0, rsync choisit le premier algorithme dans la liste de choix du client
cela figure également dans la liste de choix du serveur. Si aucun choix de somme de contrôle commun n'est trouvé, rsync se termine avec une erreur. Si
le rsync distant est trop ancien pour prendre en charge la négociation de somme de contrôle, une valeur est choisie en fonction de la version du protocole (qui
choisit entre MD5 et différentes saveurs de MD4 en fonction de l'âge du protocole).
L'ordre par défaut peut être personnalisé en définissant la variable d'environnement RSYNC_CHECKSUM_LIST sur une liste séparée par des espaces.
de noms de somme de contrôle acceptables. Si la chaîne contient un caractère "&", elle est séparée en "chaîne client &
chaîne du serveur", sinon la même chaîne s'applique aux deux. Si la chaîne (ou la partie de chaîne) ne contient aucune chaîne non blanche.
caractères d'espacement, la liste de somme de contrôle par défaut est utilisée. Cette méthode ne vous permet pas de spécifier la somme de contrôle du transfert
séparément de la somme de contrôle de pré-transfert, et il ignore "auto" et tous les noms de somme de contrôle inconnus. Une liste avec seulement
des noms invalides entraînent un échec de négociation.
L'utilisation de l'option --checksum-choice remplace cette liste d'environnements.
--un-système-de-fichiers, -x
Cela indique à rsync d'éviter de franchir une limite du système de fichiers lors d'une récursion. Cela ne limite pas la capacité de l'utilisateur à
spécifiez les éléments à copier à partir de plusieurs systèmes de fichiers, juste la récursion de rsync à travers la hiérarchie de chaque répertoire qui
l'utilisateur a spécifié, ainsi que la récursion analogue du côté réception lors de la suppression. Gardez également à l'esprit que
rsync traite un montage "lié" au même périphérique comme étant sur le même système de fichiers.
Si cette option est répétée, rsync omet tous les répertoires de points de montage de la copie. Sinon, il inclut un vide
répertoire à chaque point de montage qu'il rencontre (en utilisant les attributs du répertoire monté car ceux du répertoire non
Le répertoire de point de montage correspondant est inaccessible).
Si rsync a été invité à réduire les liens symboliques (via --copy-links ou --copy-unsafe-links), un lien symbolique vers un répertoire sur
un autre périphérique est traité comme un point de montage. Les liens symboliques vers des non-répertoires ne sont pas affectés par cette option.
--ignorer-non-existant, --existant
Cela indique à rsync d'ignorer la création de fichiers (y compris les répertoires) qui n'existent pas encore sur la destination. Si ce
est combinée avec l'option --ignore-existing, aucun fichier ne sera mis à jour (ce qui peut être utile si tout ce que vous voulez
ce qu'il faut faire est de supprimer les fichiers superflus).
Cette option est une RÈGLE DE TRANSFERT, alors ne vous attendez pas à des effets secondaires exclus.
--ignorer-existant
Cela indique à rsync d'ignorer la mise à jour des fichiers qui existent déjà sur la destination (cela n'ignore pas les répertoires existants).
ries, sinon rien ne serait fait). Voir aussi --ignore-non-existing.
Cette option est une RÈGLE DE TRANSFERT, alors ne vous attendez pas à des effets secondaires exclus.
Cette option peut être utile pour ceux qui effectuent des sauvegardes à l'aide de l'option --link-dest lorsqu'ils doivent poursuivre une sauvegarde.
course qui a été interrompue. Puisqu'une exécution --link-dest est copiée dans une nouvelle hiérarchie de répertoires (lorsqu'elle est utilisée prop‐
auparavant), l'utilisation de [--ignore-existing garantira que les fichiers déjà traités ne seront pas modifiés (ce qui évite une modification
dans les autorisations sur les fichiers liés en dur). Cela signifie que cette option examine uniquement les fichiers existants dans
la hiérarchie de destination elle-même.
Lorsque --info=skip2 est utilisé, rsync affichera des messages "FILENAME exist (INFO)" où INFO indique un message de "type
change", "sum change" (nécessite -c), "file change" (basé sur la vérification rapide), "attr change" ou "uptodate". Utilisation
--info=skip1 (qui est également impliqué par les options 2 -v) affiche le message exist sans le suffixe INFO.
--remove-source-files
Cela indique à rsync de supprimer du côté expéditeur les fichiers (c'est-à-dire les non-répertoires) qui font partie du transfert.
et ont été dupliqués avec succès du côté récepteur.
Notez que vous ne devez utiliser cette option que sur les fichiers sources qui sont au repos. Si vous l'utilisez pour déplacer des fichiers
qui apparaissent dans un répertoire particulier sur un autre hôte, assurez-vous que les fichiers terminés sont renommés dans le
répertoire source, pas directement écrit dedans, de sorte que rsync ne puisse pas transférer un fichier qui n'est pas encore complètement
écrit. Si vous ne pouvez pas d'abord écrire les fichiers dans un répertoire différent, vous devez utiliser un idiome de dénomination qui permette
rsync évite de transférer des fichiers qui ne sont pas encore terminés (par exemple nommez le fichier "foo.new" lors de son écriture, renommez-le
à "foo" une fois terminé, puis utilisez l'option --exclude='*.new' pour le transfert rsync).
À partir de la version 3.1.0, rsync ignorera la suppression côté expéditeur (et générera une erreur) si la taille du fichier ou l'heure de modification
n’est pas resté inchangé.
À partir de la version 3.2.6, une copie rsync locale garantira que l'expéditeur ne supprime pas un fichier que le destinataire vient de vérifier.
fié, par exemple lorsque l'utilisateur donne accidentellement le même chemin aux répertoires source et de destination.
--supprimer
Cela indique à rsync de supprimer les fichiers superflus du côté récepteur (ceux qui ne sont pas du côté expéditeur), mais uniquement
pour les répertoires en cours de synchronisation. Vous devez avoir demandé à rsync d'envoyer le répertoire entier (par exemple "dir"
ou "dir/") sans utiliser de caractère générique pour le contenu du répertoire (par exemple "dir/*") puisque le caractère générique est développé par le
shell et rsync reçoivent ainsi une demande de transfert de fichiers individuels, et non le répertoire parent des fichiers. Les fichiers qui sont
exclus du transfert sont également exclus de la suppression, sauf si vous utilisez l'option --delete-exclus ou la marque
les règles ne correspondent que du côté expéditeur (voir les modificateurs d'inclusion/exclusion dans la section RÈGLES DE FILTRE).
Avant rsync 2.6.7, cette option n'aurait aucun effet à moins que --recursive soit activé. À partir de 2.6.7, supprimez
Des situations se produiront également lorsque --dirs (-d) est activé, mais uniquement pour les répertoires dont le contenu est copié.
Cette option peut être dangereuse si elle est mal utilisée ! C'est une très bonne idée d'essayer d'abord une exécution en utilisant le --dry-run (-n)
option pour voir quels fichiers vont être supprimés.
Si le côté expéditeur détecte des erreurs d'E/S, la suppression de tous les fichiers à la destination sera automatiquement
désactivé. Ceci permet d'éviter que des pannes temporaires du système de fichiers (telles que des erreurs NFS) du côté expéditeur ne provoquent un problème.
suppression massive de fichiers sur la destination. Vous pouvez remplacer cela avec l'option --ignore-errors.
L'option --delete peut être combinée avec l'une des options --delete-WHEN sans conflit, ainsi qu'avec --delete-ex‐
inclus. Cependant, si aucune des options --delete-WHEN n'est spécifiée, rsync choisira l'algorithme --delete-during
lorsque vous parlez à rsync 3.0.0 ou plus récent, ou à l'algorithme --delete-before lorsque vous parlez à un ancien rsync. Voir également
--delete-delay et --delete-after.
--supprimer-avant
Demandez que les suppressions de fichiers du côté récepteur soient effectuées avant le début du transfert. Voir --delete (qui est im‐
plié) pour plus de détails sur la suppression de fichiers.
La suppression avant le transfert est utile si le système de fichiers manque d'espace et la suppression des fichiers superflus serait utile
pour rendre le transfert possible. Cependant, cela introduit un délai avant le début du transfert, et ce délai
pourrait provoquer le transfert vers un délai d'attente (si --timeout a été spécifié). Cela force également rsync à utiliser l'ancienne version non incrémentielle.
algorithme de récursion réel qui nécessite que rsync analyse simultanément tous les fichiers du transfert en mémoire (voir --recur‐
sive).
--delete-pendant, --del
Demandez que les suppressions de fichiers du côté récepteur soient effectuées progressivement au fur et à mesure du transfert. Le par-direct
L'analyse de suppression de répertoire est effectuée juste avant que chaque répertoire ne soit vérifié pour les mises à jour, il se comporte donc comme un système plus efficace.
--delete-before, y compris effectuer les suppressions avant la mise à jour des fichiers de filtre par répertoire. Cette option
a été ajouté pour la première fois dans la version 2.6.4 de rsync. Voir --delete (qui est implicite) pour plus de détails sur la suppression de fichiers.
--delete-délai
Demander que les suppressions de fichiers du côté réception soient calculées pendant le transfert (comme --delete-during), et
puis supprimé une fois le transfert terminé. Ceci est utile lorsqu'il est combiné avec --delay-updates et/ou --fuzzy, et est
plus efficace que d'utiliser --delete-after (mais peut se comporter différemment, puisque --delete-after calcule les suppressions dans
un passage séparé une fois toutes les mises à jour effectuées). Si le nombre de fichiers supprimés dépasse un tampon interne, un message temporaire
Un fichier rare sera créé du côté récepteur pour contenir les noms (il est supprimé lorsqu'il est ouvert, vous ne devriez donc pas le voir
pendant le transfert). Si la création du fichier temporaire échoue, rsync essaiera de revenir à l'utilisation de --delete-af‐
ter (ce qu'il ne peut pas faire si --recursive effectue une analyse incrémentielle). Voir --delete (qui est implicite) pour plus de détails.
queues lors de la suppression du fichier.
--delete-après
Demandez que les suppressions de fichiers du côté récepteur soient effectuées une fois le transfert terminé. Ceci est utile si
vous envoyez de nouveaux fichiers de fusion par répertoire dans le cadre du transfert et vous souhaitez que leurs exclusions prennent effet
pour la phase de suppression du transfert en cours. Cela force également rsync à utiliser l'ancien algorithme de récursion non incrémental.
rythme qui nécessite que rsync analyse tous les fichiers du transfert en mémoire en même temps (voir --recursive). Voir --delete
(ce qui est implicite) pour plus de détails sur la suppression de fichiers.
Voir aussi l'option --delete-delay qui pourrait être un choix plus rapide pour ceux qui souhaitent simplement que les suppressions aient lieu à
la fin du transfert.
--delete-exclu
Cette option transforme toutes les règles d'exclusion/d'inclusion non qualifiées en règles côté serveur qui n'affectent pas les règles du destinataire.
suppressions.
Par défaut, une exclusion ou une inclusion a à la fois un effet côté serveur (pour "masquer" et "afficher" les fichiers lors de la création du fichier).
liste de fichiers du serveur) et un effet côté récepteur (pour "protéger" et "risquer" les fichiers lorsque des suppressions se produisent). N'importe lequel
une règle qui n'a pas de modificateur pour spécifier sur quels côtés elle est exécutée sera plutôt traitée comme s'il s'agissait d'une règle côté serveur.
règle uniquement, en évitant tout effet de « protection » des règles.
Une règle peut toujours s'appliquer aux deux côtés même avec cette option spécifiée si la règle est donnée à la fois à l'expéditeur et au destinataire.
lettres modificatrices (par exemple, -f'-sr foo'). Des règles de protection/risque côté récepteur peuvent également être explicitement spécifiées pour limiter les risques.
suppressions. Cela vous évite d'avoir à modifier un tas de règles -f'- foo' en règles -f'-s foo' (alias -f'H foo') (et non
mentionner les inclusions correspondantes).
Voir la section RÈGLES DE FILTRE pour plus d'informations. Voir --delete (qui est implicite) pour plus de détails sur la suppression.
--ignore-les-arguments-manquants
Lorsque rsync traite pour la première fois les fichiers source explicitement demandés (par exemple les arguments de ligne de commande ou --files-from
entrées), il s'agit normalement d'une erreur si le fichier est introuvable. Cette option supprime cette erreur et n'essaie pas
pour transférer le fichier. Cela n'affecte pas les erreurs de fichiers disparus ultérieures si un fichier s'est avéré initialement être
présent et plus tard n’est plus là.
--delete-manquant-arguments
Cette option pousse le comportement de l'option (implicite) --ignore-missing-args un peu plus loin : chaque argument manquant sera
devient une demande de suppression du fichier de destination correspondant du côté récepteur (s'il existe). Si le des‐
Le fichier de destination est un répertoire non vide, il ne sera supprimé avec succès que si --force ou --delete sont en vigueur.
En dehors de cela, cette option est indépendante de tout autre type de traitement de suppression.
Les fichiers source manquants sont représentés par des entrées spéciales dans la liste de fichiers qui s'affichent sous la forme d'une entrée "*manquant" dans la liste de fichiers.
--liste uniquement sortie.
--ignorer les erreurs
Indique à --delete de continuer et de supprimer les fichiers même en cas d'erreurs d'E/S.
--forcer
Cette option indique à rsync de supprimer un répertoire non vide lorsqu'il doit être remplacé par un non-répertoire. C'est seulement
pertinent si les suppressions ne sont pas actives (voir --delete pour plus de détails).
Remarque pour les anciennes versions de rsync : --force était toujours requis lors de l'utilisation de --delete-after, et n'était pas utilisé auparavant.
fonctionnel sauf si l'option --recursive a également été activée.
--max-delete=NUM
Cela indique à rsync de ne pas supprimer plus de NUM fichiers ou répertoires. Si cette limite est dépassée, toutes les suppressions ultérieures
sont ignorés jusqu’à la fin du transfert. À la fin, rsync génère un avertissement (incluant un décompte des éléments ignorés).
suppressions) et se termine avec un code d'erreur de 25 (sauf si une condition d'erreur plus importante s'est également produite).
À partir de la version 3.0.0, vous pouvez spécifier --max-delete=0 pour être averti de tout fichier superflu dans la destination.
tion sans en supprimer aucun. Les clients plus anciens interprétaient cela comme "illimité", donc si vous ne savez pas quelle version
le client est, vous pouvez utiliser le moins évident --max-delete=-1 comme moyen rétrocompatible de spécifier qu'aucune suppression
être autorisé (même si les très anciennes versions n'avertissaient pas lorsque la limite était dépassée).
--max-size=TAILLE
Cela indique à rsync d'éviter de transférer tout fichier plus grand que la TAILLE spécifiée. Une valeur numérique peut suffire
corrigé avec une chaîne pour indiquer les unités numériques ou laissé sans qualification pour spécifier les octets. N'hésitez pas à utiliser une fracturation
valeur nationale avec les unités, telles que --max-size=1.5m.
Cette option est une RÈGLE DE TRANSFERT, alors ne vous attendez pas à des effets secondaires exclus.
La première lettre d'une chaîne d'unités peut être B (octets), K (kilo), M (méga), G (giga), T (tera) ou P (peta). Si la
La chaîne est un seul caractère ou contient "ib" (par exemple "G" ou "GiB") alors les unités sont des multiples de 1024. Si vous utilisez
un suffixe de deux lettres qui se termine par un "B" (par exemple "kb"), vous obtenez alors des unités multiples de 1000.
les lettres peuvent être n’importe quelle combinaison de majuscules et de minuscules que vous souhaitez utiliser.
Enfin, si la chaîne se termine par "+1" ou "-1", elle est décalée d'un octet dans le sens indiqué. Le
la plus grande valeur possible est généralement 8192P-1.
Exemples : --max-size=1,5mb-1 correspond à 1499999 octets et --max-size=2g+1 correspond à 2147483649 octets.
Notez que les versions rsync antérieures à 3.1.0 n'autorisaient pas --max-size=0.
--min-size=TAILLE
Cela indique à rsync d'éviter de transférer tout fichier plus petit que la TAILLE spécifiée, ce qui peut aider à ne pas transférer.
ferrant de petits fichiers indésirables. Voir l'option --max-size pour une description de SIZE et d'autres informations.
Notez que les versions rsync antérieures à 3.1.0 n'autorisaient pas --min-size=0.
--max-alloc=TAILLE
Par défaut, rsync limite une malloc/realloc individuelle à environ 1 Go. Pour la plupart des gens, cette limite fonctionne simplement
très bien et empêche une erreur de protocole obligeant rsync à demander des quantités massives de mémoire. Cependant, si vous en avez plusieurs
des millions de fichiers dans un transfert, une grande quantité de mémoire serveur et vous ne souhaitez pas diviser votre transfert en
plusieurs parties, vous pouvez augmenter la limite par allocation à quelque chose de plus grand et rsync consommera plus de mémoire.
Gardez à l’esprit qu’il ne s’agit pas d’une limite sur la taille totale de la mémoire allouée. Il s'agit d'une valeur de contrôle d'intégrité pour chaque entrée.
attribution individuelle.
Voir l'option --max-size pour une description de la façon dont SIZE peut être spécifié. Le suffixe par défaut si aucun n'est donné est
octets.
Depuis 3.2.3, une valeur de 0 ne spécifie aucune limite.
Vous pouvez définir une valeur par défaut à l'aide de la variable d'environnement RSYNC_MAX_ALLOC en utilisant les mêmes valeurs SIZE que celles prises en charge par
cette option. Si le rsync distant ne comprend pas l'option --max-alloc, vous pouvez remplacer une valeur environnementale
en spécifiant --max-alloc=1g, ce qui empêchera rsync d'envoyer l'option au côté distant (car "1G" est le
défaut).
--block-size=TAILLE, -B
Cela force la taille de bloc utilisée dans l'algorithme de transfert delta de rsync à une valeur fixe. Il est normalement sélectionné en fonction
sur la taille de chaque fichier en cours de mise à jour. Voir le rapport technique pour plus de détails.
À partir de 3.2.3, la SIZE peut être spécifiée avec un suffixe comme détaillé dans l'option --max-size. Anciennes versions uniquement
accepté un nombre d'octets.
--rsh=COMMANDE, -e
Cette option vous permet de choisir un autre programme shell distant à utiliser pour la communication entre le serveur local et
copies distantes de rsync. Généralement, rsync est configuré pour utiliser ssh par défaut, mais vous préférerez peut-être utiliser rsh sur un réseau local.
réseau cal.
Si cette option est utilisée avec [user@]host::module/path, alors la COMMANDE du shell distant sera utilisée pour exécuter un programme rsync.
mon sur l'hôte distant, et toutes les données seront transmises via cette connexion shell distante, plutôt que via un
connexion socket directe à un démon rsync en cours d’exécution sur l’hôte distant. Voir UTILISATION DES FONCTIONNALITÉS RSYNC-DAEMON VIA UN RE‐
section CONNEXION MOTE-SHELL ci-dessus.
À partir de rsync 3.2.0, la variable d'environnement RSYNC_PORT sera définie lorsqu'une connexion démon est établie
via une connexion shell distante. Il est défini sur 0 si le port du démon par défaut est utilisé, ou il est défini sur la valeur
du port rsync spécifié via l'option --port ou une valeur de port non vide dans une URL rsync://. Ce
permet au script de discerner si un port autre que celui par défaut est demandé, autorisant des éléments tels qu'un SSL ou un stunnel
script d'assistance pour se connecter à un port par défaut ou alternatif.
Les arguments de ligne de commande sont autorisés dans COMMAND à condition que COMMAND soit présenté à rsync comme un seul argument.
Vous devez utiliser des espaces (et non des tabulations ou autres espaces) pour séparer la commande et les arguments les uns des autres, et vous pouvez utiliser
guillemets simples et/ou doubles pour préserver les espaces dans un argument (mais pas les barres obliques inverses). Notez que doubler un simple
une citation à l'intérieur d'une chaîne entre guillemets simples vous donne une guillemet simple ; de même pour les doubles devis (même si vous devez payer à
attention aux citations que votre shell analyse et aux citations que rsync analyse). Quelques exemples:
-e 'ssh -p 2234'
-e 'ssh -o "ProxyCommand nohup ssh pare-feu nc -w1 %h %p"'
(Notez que les utilisateurs SSH peuvent alternativement personnaliser les options de connexion spécifiques au site dans leur fichier .ssh/config.)
Vous pouvez également choisir le programme shell distant en utilisant la variable d'environnement RSYNC_RSH, qui accepte la même plage
de valeurs comme -e.
Voir aussi l'option --blocking-io qui est affectée par cette option.
--rsync-path=PROGRAMME
Utilisez ceci pour spécifier quel programme doit être exécuté sur la machine distante pour démarrer rsync. Souvent utilisé lorsque rsync n'est pas
dans le chemin du shell distant par défaut (par exemple --rsync-path=/usr/local/bin/rsync). Notez que PROGRAM est exécuté avec l'aide
d'un shell, il peut donc s'agir de n'importe quel programme, script ou séquence de commandes que vous souhaiteriez exécuter, à condition qu'il ne corrompt pas
l'entrée et la sortie standard que rsync utilise pour communiquer.
Un exemple délicat consiste à définir un répertoire par défaut différent sur la machine distante à utiliser avec l'option --relative.
Par exemple:
rsync -avR --rsync-path="cd /a/b && rsync" hôte :c/d /e/
--option-à distance=OPTION, -M
Cette option est utilisée pour les situations plus avancées où vous souhaitez que certains effets soient limités à un côté du
transfert uniquement. Par exemple, si vous souhaitez transmettre --log-file=FILE et --fake-super au système distant, spécifiez-le
comme ça:
rsync -av -M --log-file=foo -M--fake-super src/ dest/
Si vous souhaitez qu'une option affecte uniquement le côté local d'un transfert alors qu'elle affecte normalement les deux côtés, envoyez-la
négation du côté distant. Comme ça:
rsync -av -x -M--no-x src/ dest/
Soyez prudent en utilisant ceci, car il est possible d'activer une option qui amènera rsync à avoir une idée différente de
quelles données attendre ensuite sur le socket, et cela le fera échouer de manière cryptique.
Notez que vous devez utiliser une option -M distincte pour chaque option distante que vous souhaitez transmettre. Sur les anciennes versions de rsync, le
la présence d'espaces dans l'argument de l'option distante pourrait entraîner sa division en arguments distants distincts, mais cela nécessite
nécessite l'utilisation de --old-args dans un rsync moderne.
Lors d'un transfert local, le côté « local » est l'expéditeur et le côté « distant » est le destinataire.
Notez que certaines versions de la bibliothèque d'analyse d'options popt contiennent un bogue qui vous empêche d'utiliser un argument adjacent.
avec un égal à côté d'une courte lettre d'option (par exemple -M--log-file=/tmp/foo). Si ce bug affecte votre version de
popt, vous pouvez utiliser la version de popt incluse avec rsync.
--cvs-exclure, -C
Il s'agit d'un raccourci utile pour exclure un large éventail de fichiers que vous ne souhaitez souvent pas transférer entre systèmes.
termes. Il utilise un algorithme similaire à CVS pour déterminer si un fichier doit être ignoré.
La liste d'exclusion est initialisée pour exclure les éléments suivants (ces éléments initiaux sont marqués comme périssables -- voir
la section RÈGLES DE FILTRE) :
RCS SCCS CVS CVS.adm RCSLOG cvslog.* balises TAGS .make.state .nse_depinfo *~ #* .#* ,* _$* *$ *.old *.bak *.BAK
*.orig *.rej .del-* *.a *.olb *.o *.obj *.so *.exe *.Z *.elc *.ln core .svn/ .git/ .hg/ .bzr/
ensuite, les fichiers répertoriés dans un $HOME/.cvsignore sont ajoutés à la liste et tous les fichiers répertoriés dans l'environnement CVSIGNORE
variable (tous les noms de cvsignore sont délimités par des espaces).
Enfin, tout fichier est ignoré s'il se trouve dans le même répertoire qu'un fichier .cvsignore et correspond à l'un des modèles
qui y sont répertoriés. Contrairement aux fichiers de filtre/exclusion de rsync, ces modèles sont divisés en espaces. Voir le manuel cvs(1)
pour plus d'informations.
Si vous combinez -C avec vos propres règles --filter, vous devez noter que ces exclusions CVS sont ajoutées à la fin
de vos propres règles, quel que soit l'endroit où le -C a été placé sur la ligne de commande. Cela les rend moins prioritaires que
toutes les règles que vous avez spécifiées explicitement. Si vous souhaitez contrôler où ces exclusions CVS sont insérées dans votre filtre
règles, vous devez omettre -C comme option de ligne de commande et utiliser une combinaison de --filter=:C et --filter=-C (soit
sur votre ligne de commande ou en plaçant les règles ":C" et "-C" dans un fichier de filtre avec vos autres règles). La première opération
tion active l'analyse par répertoire pour le fichier .cvsignore. La deuxième option effectue une importation unique du
CVS exclut mentionné ci-dessus.
--filter=RÈGLE, -f
Cette option permet d'ajouter des règles pour exclure sélectivement certains fichiers de la liste des fichiers à transférer.
Ceci est particulièrement utile en combinaison avec un transfert récursif.
Vous pouvez utiliser autant d'options --filter sur la ligne de commande que vous le souhaitez pour créer la liste des fichiers à exclure. Si
le filtre contient des espaces, assurez-vous de le citer afin que le shell donne la règle à rsync comme argument unique.
Le texte ci-dessous mentionne également que vous pouvez utiliser un trait de soulignement pour remplacer l'espace qui sépare une règle de son argument.
Voir la section RÈGLES DE FILTRE pour des informations détaillées sur cette option.
-F L'option -F est un raccourci pour ajouter deux règles --filter à votre commande. La première fois qu'il est utilisé, c'est un raccourci
pour cette règle :
--filter='dir-merge /.rsync-filter'
Cela indique à rsync de rechercher les fichiers .rsync-filter par répertoire qui ont été répartis dans la hiérarchie et d'utiliser
leurs règles pour filtrer les fichiers dans le transfert. Si -F est répété, c'est un raccourci pour cette règle :
--filter='exclure .rsync-filter'
Cela filtre les fichiers .rsync-filter eux-mêmes du transfert.
Consultez la section RÈGLES DE FILTRE pour des informations détaillées sur le fonctionnement de ces options.
--exclude=MODÈLE
Cette option est une forme simplifiée de l'option --filter qui spécifie une règle d'exclusion et n'autorise pas l'intégralité de l'option --filter.
syntaxe d'analyse des règles des règles de filtrage normales. Cela équivaut à spécifier -f'- PATTERN'.
Voir la section RÈGLES DE FILTRE pour des informations détaillées sur cette option.
--exclude-from=FICHIER
Cette option est liée à l'option --exclude, mais elle spécifie un FICHIER qui contient des modèles d'exclusion (un par
doubler). Les lignes vides du fichier sont ignorées, tout comme les commentaires sur des lignes entières commençant par « ; » ou '#' (règles de nom de fichier
qui contiennent ces caractères ne sont pas affectés).
Si une ligne commence par "-" (tiret, espace) ou "+" (plus, espace), alors le type de règle est explicitement spécifié
comme une exclusion ou une inclusion (respectivement). Toutes les règles sans un tel préfixe sont considérées comme une exclusion.
Si une ligne ne contient que "!", alors les règles de filtrage actuelles sont effacées avant d'ajouter d'autres règles.
Si FILE est '-', la liste sera lue à partir de l'entrée standard.
--include = MOTIF
Cette option est une forme simplifiée de l'option --filter qui spécifie une règle d'inclusion et n'autorise pas l'intégralité de l'option --filter.
syntaxe d'analyse des règles des règles de filtrage normales. Cela équivaut à spécifier -f'+ PATTERN'.
Voir la section RÈGLES DE FILTRE pour des informations détaillées sur cette option.
--include-from=FICHIER
Cette option est liée à l'option --include, mais elle spécifie un FICHIER qui contient des modèles d'inclusion (un par
doubler). Les lignes vides du fichier sont ignorées, tout comme les commentaires sur des lignes entières commençant par « ; » ou '#' (règles de nom de fichier
qui contiennent ces caractères ne sont pas affectés).
Si une ligne commence par "-" (tiret, espace) ou "+" (plus, espace), alors le type de règle est explicitement spécifié
comme une exclusion ou une inclusion (respectivement). Toutes les règles sans un tel préfixe sont considérées comme une inclusion.
Si une ligne ne contient que "!", alors les règles de filtrage actuelles sont effacées avant d'ajouter d'autres règles.
Si FILE est '-', la liste sera lue à partir de l'entrée standard.
--files-from=FICHIER
L'utilisation de cette option vous permet de spécifier la liste exacte des fichiers à transférer (tels que lus à partir du FILE spécifié ou '-'
pour entrée standard). Il modifie également le comportement par défaut de rsync pour permettre le transfert uniquement des fichiers spécifiés et
répertoires plus faciles:
o L'option --relative (-R) est implicite, elle préserve les informations de chemin spécifiées pour chaque élément dans
le fichier (utilisez --no-relative ou --no-R si vous souhaitez le désactiver).
o L'option --dirs (-d) est implicite, ce qui créera les répertoires spécifiés dans la liste sur la destination
plutôt que de les ignorer bruyamment (utilisez --no-dirs ou --no-d si vous souhaitez désactiver cela).
o Le comportement de l'option --archive (-a) n'implique pas --recursive (-r), donc spécifiez-le explicitement, si vous le souhaitez.
il.
o Ces effets secondaires modifient l'état par défaut de rsync, donc la position de l'option --files-from sur le com‐
mand-line n'a aucune incidence sur la façon dont les autres options sont analysées (par exemple -a fonctionne de la même manière avant ou après --files-from,
tout comme --no-R et toutes les autres options).
Les noms de fichiers lus à partir du FILE sont tous relatifs au répertoire source : toutes les barres obliques de début sont supprimées et
aucune référence ".." n'est autorisée à aller plus haut que le répertoire source. Par exemple, prenons cette commande :
rsync -a --files-from=/tmp/foo /usr distant:/backup
Si /tmp/foo contient la chaîne "bin" (ou même "/bin"), le répertoire /usr/bin sera créé en tant que /backup/bin sur le
hôte distant. S'il contient "bin/" (notez la barre oblique finale), le contenu immédiat du répertoire sera également
envoyé (sans avoir besoin d'être explicitement mentionné dans le fichier -- cela a commencé dans la version 2.6.4). Dans les deux cas, si le
-r a été activée, toute la hiérarchie de ce répertoire sera également transférée (gardez à l'esprit que -r doit être spécifié
explicitement avec --files-from, puisque cela n'est pas impliqué par -a. Notez également que l'effet du (activé par dé‐
erreur) L'option -r consiste à dupliquer uniquement les informations de chemin lues à partir du fichier -- elle ne force pas la duplication
du chemin de spécification source (/usr dans ce cas).
De plus, le fichier --files-from peut être lu depuis l'hôte distant au lieu de l'hôte local si vous spécifiez un
"host:" devant le fichier (l'hôte doit correspondre à une extrémité du transfert). Comme raccourci, vous pouvez spécifier simplement un
préfixe de ":" pour signifier "utiliser l'extrémité distante du transfert". Par exemple:
rsync -a --files-from=:/path/file-list src:/ /tmp/copy
Cela copierait tous les fichiers spécifiés dans le fichier /path/file-list qui se trouvait sur l'hôte "src" distant.
Si les options --iconv et --seulated-args sont spécifiées et que les noms de fichiers --files-from sont envoyés depuis un hôte
vers un autre, les noms de fichiers seront traduits du jeu de caractères de l'hôte expéditeur vers le jeu de caractères de l'hôte récepteur.
REMARQUE : trier la liste des fichiers dans l'entrée --files-from aide rsync à être plus efficace, car cela évitera de revoir
iting les éléments de chemin qui sont partagés entre les entrées adjacentes. Si l'entrée n'est pas triée, certains éléments du chemin
(répertoires implicites) peuvent finir par être analysés plusieurs fois, et rsync finira par les dupliquer une fois qu'ils auront été analysés.
se transformer en éléments de liste de fichiers.
--de0, -0
Cela indique à rsync que les règles/noms de fichiers qu'il lit à partir d'un fichier se terminent par un caractère nul ("\\0"), et non par un NL,
CR, ou CR+LF. Cela affecte --exclude-from, --include-from, --files-from et tous les fichiers fusionnés spécifiés dans un --fil‐
ter règle. Cela n'affecte pas --cvs-exclude (puisque tous les noms lus à partir d'un fichier .cvsignore sont divisés en espaces).
--vieux-arguments
Cette option indique à rsync d'arrêter d'essayer de protéger les valeurs d'argument du côté distant contre le fractionnement involontaire de mots ou
autre interprétation erronée. Cela permet également au client de traiter un argument vide comme un "." au lieu de générer une erreur.
La valeur par défaut dans un rsync moderne est que les caractères "actifs du shell" (y compris les espaces) soient protégés par une barre oblique inverse dans les arguments.
qui sont envoyés au shell distant. Les caractères génériques *, ?, [, & ] ne sont pas échappés dans les arguments de nom de fichier (ce qui permet
pour les développer en plusieurs noms de fichiers) tout en étant protégé dans les arguments d'option, tels que --usermap.
Si vous disposez d'un script qui souhaite utiliser le fractionnement d'arguments à l'ancienne dans ses noms de fichiers, spécifiez cette option une fois. Si la
Le shell distant a un problème avec les échappements de barre oblique inverse, spécifiez cette option deux fois.
Vous pouvez également contrôler ce paramètre via la variable d'environnement RSYNC_OLD_ARGS. S'il a la valeur "1", rsync le fera
par défaut sur un paramètre à option unique. S'il a la valeur "2" (ou plus), rsync utilisera par défaut un jeu d'options répétées.
ting. S'il vaut "0", vous obtiendrez le comportement d'échappement par défaut. L'environnement est toujours remplacé manuellement
options positives ou négatives spécifiées (le négatif est --no-old-args).
Notez que cette option désactive également le contrôle de sécurité supplémentaire ajouté dans la version 3.2.5 qui garantit qu'un expéditeur distant n'est pas présent.
y compris les éléments supplémentaires de premier niveau dans la liste de fichiers que vous n'avez pas demandés. Cet effet secondaire est nécessaire parce que nous
Je ne peux pas savoir avec certitude à quels noms s'attendre lorsque le shell distant interprète les arguments.
Cette option est en conflit avec l'option --seulated-args.
--arguments-séparés, -s
Cette option envoie tous les noms de fichiers et la plupart des options au rsync distant via le protocole (pas la commande shell distante
line) ce qui évite de laisser le shell distant les modifier. Les caractères génériques sont développés sur l'hôte distant par rsync à la place
d'une coquille.
Ceci est similaire à la barre oblique inverse par défaut des arguments qui a été ajoutée dans la version 3.2.4 (voir --old-args) dans le sens où elle pré-
évacue des choses comme le fractionnement de l'espace et les effets secondaires indésirables des personnages spéciaux. Il présente cependant l'inconvénient d'être
incompatible avec les anciennes versions de rsync (antérieures à 3.0.0) et d'être refusé par les shells restreints qui veulent être
capable d'inspecter toutes les valeurs d'option pour des raisons de sécurité.
Cette option est utile dans les cas où vous avez besoin que le jeu de caractères de l'argument soit converti pour l'hôte distant,
si le shell distant est incompatible avec la méthode d'échappement par barre oblique inverse par défaut, ou s'il existe une autre raison pour laquelle
vous souhaitez que la majorité des options et des arguments contournent la ligne de commande du shell distant.
Si vous combinez cette option avec --iconv, les arguments liés au côté distant seront traduits du local au côté distant.
jeu de caractères distant. La traduction a lieu avant que les caractères génériques ne soient développés. Voir aussi l'option --files-from.
Vous pouvez également contrôler ce paramètre via la variable d'environnement RSYNC_PROTECT_ARGS. S'il a une valeur non nulle, cela
Le paramètre sera activé par défaut, sinon il sera désactivé par défaut. L'un ou l'autre état est annulé par un
version positive ou négative de cette option spécifiée de manière alliée (notez que --no-s et --no-seulated-args sont les arguments négatifs)
versions). Cette variable d'environnement est également remplacée par une exportation RSYNC_OLD_ARGS non nulle.
Cette option est en conflit avec l'option --old-args.
Cette option s'appelait --protect-args (avant 3.2.6) et cet ancien nom peut toujours être utilisé (en spécifiant
comme -s est toujours le choix le plus simple et le plus compatible).
--trust-expéditeur
Cette option désactive deux contrôles de validation supplémentaires qu'un client local effectue sur la liste de fichiers générée par un client distant.
expéditeur. Cette option ne doit être utilisée que si vous faites confiance à l'expéditeur pour ne pas mettre quelque chose de malveillant dans la liste des fichiers.
(quelque chose qui pourrait éventuellement être fait via un rsync modifié, un shell modifié ou une autre manipulation similaire).
Normalement, le client rsync (à partir de la version 3.2.5) exécute deux contrôles de validation supplémentaires lors de l'extraction de fichiers depuis un serveur distant.
rsync :
o Il vérifie qu'aucun élément d'argument supplémentaire n'a été ajouté en haut du transfert.
o Il vérifie qu'aucun des éléments de la liste de fichiers n'est un nom qui aurait dû être exclu (si les règles de filtrage
ont été précisés).
Notez que diverses options peuvent désactiver l'une ou les deux vérifications si l'option interfère avec la validation. Pour
exemple:
o L'utilisation d'un fichier de filtre par répertoire lit les règles de filtre que seul le serveur connaît, de sorte que la vérification du filtre
est désactivé.
o L'utilisation de l'option --old-args permet à l'expéditeur de manipuler les arguments demandés, de sorte que la vérification des arguments est désactivée.
capable.
o La lecture de la liste des fichiers depuis le côté serveur signifie que le client ne connaît pas la liste d'arguments, donc l'argument
la vérification est désactivée.
o L'utilisation de --read-batch désactive les deux vérifications puisque le contenu du fichier batch aura été vérifié lors de sa création.
créé.
Cette option peut aider un serveur client sous-alimenté si la correspondance de modèles supplémentaire ralentit les choses à un rythme considérable.
transfert. Il peut également être utilisé pour contourner un bug actuellement inconnu dans la logique de vérification d'un transfert depuis un
expéditeur de confiance.
Lorsque vous utilisez cette option, il est judicieux de spécifier un répertoire de destination dédié, comme indiqué dans la section MULTI-HOST.
Rubrique SÉCURITÉ.
--copy-as=USER[:GROUP]
Cette option demande à rsync d'utiliser l'USER et (si spécifié après deux points) le GROUP pour les opérations de copie. Ce
ne fonctionne que si l'utilisateur qui exécute rsync a la possibilité de changer d'utilisateur. Si le groupe n'est pas spécifié alors le
les groupes par défaut de l'utilisateur sont utilisés.
Cette option peut aider à réduire le risque qu'un rsync soit exécuté en tant que root dans ou hors d'un répertoire qui pourrait avoir des ressources actives.
les changements qui s'y produisent et vous voulez vous assurer que les actions de lecture ou d'écriture au niveau racine des fichiers système ne sont pas possibles.
possible. Bien que vous puissiez également exécuter l'intégralité de rsync en tant qu'utilisateur spécifié, vous avez parfois besoin de l'hôte au niveau racine.
les informations d'identification d'accès à utiliser, cela permet donc à rsync de supprimer la racine pour la partie copie de l'opération après la re-
la connexion mote-shell ou démon est établie.
L’option n’affecte qu’un seul côté du transfert, sauf si le transfert est local, auquel cas elle affecte les deux côtés.
Utilisez l'option --remote-option pour affecter le côté distant, comme -M--copy-as=joe. Pour un transfert local, le lsh (ou
lsh.sh) fournit un script d'assistance de shell local qui peut être utilisé pour autoriser une spécification d'hôte "localhost:" ou "lh:"
à spécifier sans avoir besoin de configurer de shells distants, ce qui vous permet de spécifier des options distantes qui affectent le
côté du transfert qui utilise la spécification d'hôte (et l'utilisation du nom d'hôte "lh" évite le remplacement de la direction distante).
répertoire vers le répertoire personnel de l'utilisateur).
Par exemple, le rsync suivant écrit les fichiers locaux en tant qu'utilisateur « joe » :
sudo rsync -aiv --copy-as=joe host1:backups/joe/ /home/joe/
Cela rend tous les fichiers appartenant à l'utilisateur "joe", limite les groupes à ceux qui sont disponibles pour cet utilisateur et le rend
impossible pour l'utilisateur Joe de faire un exploit chronométré du chemin pour provoquer une modification d'un fichier que l'utilisateur Joe n'a pas
autorisations de modification.
La commande suivante effectue une copie locale dans le répertoire "dest/" en tant qu'utilisateur "joe" (en supposant que vous ayez installé support/lsh
dans un répertoire sur votre $PATH) :
sudo rsync -aive lsh -M--copy-as=joe src/ lh:dest/
--temp-dir=DIR, -T
Cette option demande à rsync d'utiliser DIR comme répertoire de travail lors de la création de copies temporaires des fichiers transférés.
du côté de la réception. Le comportement par défaut consiste à créer chaque fichier temporaire dans le même répertoire que le fichier associé.
fichier de destination. À partir de rsync 3.1.1, les noms de fichiers temporaires à l'intérieur du DIR spécifié ne seront pas préfixés par
un point supplémentaire (même s'ils auront toujours un suffixe aléatoire ajouté).
Cette option est le plus souvent utilisée lorsque la partition du disque de réception ne dispose pas de suffisamment d'espace libre pour contenir une copie de
le plus gros fichier du transfert. Dans ce cas (c'est-à-dire lorsque le répertoire de travail se trouve sur une autre partition de disque),
rsync ne pourra pas renommer chaque fichier temporaire reçu par-dessus le fichier de destination associé, mais
à la place, vous devez le copier à sa place. Rsync fait cela en copiant le fichier par-dessus le fichier de destination, ce qui
signifie que le fichier de destination contiendra des données tronquées lors de cette copie. Si cela n'était pas fait de cette façon (même
si le fichier de destination a été supprimé au préalable, les données sont copiées localement dans un fichier temporaire dans le répertoire de destination,
puis renommé), il serait possible que l'ancien fichier continue à occuper de l'espace disque (si quelqu'un avait
il s'ouvre), et il se peut donc qu'il n'y ait pas assez de place pour insérer la nouvelle version sur le disque en même temps.
Si vous utilisez cette option pour des raisons autres qu'un manque d'espace disque, vous souhaiterez peut-être la combiner avec l'option
--delay-updates, qui garantira que tous les fichiers copiés soient placés dans des sous-répertoires dans la hiérarchie de destination.
archy, en attendant la fin du transfert. Si vous ne disposez pas de suffisamment d'espace pour dupliquer tous les fichiers arrivant sur le
partition de destination, une autre façon de dire à rsync que vous n'êtes pas trop préoccupé par l'espace disque est d'utiliser le
Option --partial-dir avec un chemin relatif ; car cela indique à rsync qu'il est OK de cacher une copie d'un seul
fichier dans un sous-répertoire de la hiérarchie de destination, rsync utilisera le répertoire partiel comme zone de transit pour transférer le
fichier copié, puis renommez-le à partir de là. (Spécifier un --partial-dir avec un chemin absolu ne signifie pas
avoir cet effet secondaire.)
--flou, -y
Cette option indique à rsync qu'il doit rechercher un fichier de base pour tout fichier de destination manquant. Le courant
L'algorithme recherche dans le même répertoire que le fichier de destination soit un fichier ayant une taille et des modifications identiques.
à heure fixe ou un fichier portant un nom similaire. S'il est trouvé, rsync utilise le fichier de base floue pour tenter d'accélérer le transfert.
Si l'option est répétée, l'analyse floue sera également effectuée dans tous les répertoires de destination alternatifs correspondants qui
sont spécifiés via --compare-dest, --copy-dest ou --link-dest.
Notez que l'utilisation de l'option --delete peut supprimer tout fichier de correspondance floue potentiel, donc utilisez --delete-af‐
ter ou spécifiez certaines exclusions de noms de fichiers si vous devez empêcher cela.
--compare-dest=DIR
Cette option demande à rsync d'utiliser DIR sur la machine de destination comme hiérarchie supplémentaire pour comparer la destination
fichiers contre les transferts (si les fichiers sont manquants dans le répertoire de destination). Si un fichier est trouvé dans DIR
identique au fichier de l'expéditeur, le fichier ne sera PAS transféré vers le répertoire de destination. C'est une utilisation
utile pour créer une sauvegarde fragmentée des seuls fichiers modifiés par rapport à une sauvegarde antérieure. Cette option est généralement
utilisé pour copier dans un répertoire vide (ou nouvellement créé).
À partir de la version 2.6.4, plusieurs répertoires --compare-dest peuvent être fournis, ce qui amènera rsync à rechercher le
liste dans l’ordre spécifié pour une correspondance exacte. Si une correspondance trouvée ne diffère que par les attributs, une copie locale est
effectué et les attributs mis à jour. Si aucune correspondance n'est trouvée, un fichier de base de l'un des DIR sera sélectionné pour essayer
pour accélérer le transfert.
Si DIR est un chemin relatif, il est relatif au répertoire de destination. Voir aussi --copy-dest et --link-dest.
REMARQUE : à partir de la version 3.1.0, rsync supprimera un fichier d'une hiérarchie de destination non vide si une correspondance exacte
se trouve dans l'une des hiérarchies les plus comparables (ce qui permet au résultat final de correspondre plus étroitement à une nouvelle copie).
--copy-dest=DIR
Cette option se comporte comme --compare-dest, mais rsync copiera également les fichiers inchangés trouvés dans DIR vers le répertoire de destination.
presbytère en utilisant une copie locale. Ceci est utile pour effectuer des transferts vers une nouvelle destination tout en laissant les fichiers existants dans
tact, puis effectuer un basculement flash lorsque tous les fichiers ont été transférés avec succès.
Plusieurs répertoires --copy-dest peuvent être fournis, ce qui amènera rsync à rechercher la liste dans l'ordre spécifié
pour un fichier inchangé. Si aucune correspondance n'est trouvée, un fichier de base de l'un des DIR sera sélectionné pour tenter d'accélérer
le transfert.
Si DIR est un chemin relatif, il est relatif au répertoire de destination. Voir aussi --compare-dest et --link-dest.
--link-dest=DIR
Cette option se comporte comme --copy-dest, mais les fichiers inchangés sont liés en dur du DIR au répertoire de destination. Le
les fichiers doivent être identiques dans tous les attributs conservés (par exemple les autorisations, éventuellement la propriété) pour que les fichiers soient
être liés entre eux. Un exemple:
rsync -av --link-dest=$PWD/prior_dir hôte:src_dir/ new_dir/
Si les fichiers ne sont pas liés, vérifiez leurs attributs. Vérifiez également si certains attributs sont forcés en dehors de
Le contrôle de rsync, comme une option de montage qui écrase la racine sur un seul utilisateur, ou monte un lecteur amovible avec un générique
propriété (telle que l'option "Ignorer la propriété sur ce volume" d'OS X).
À partir de la version 2.6.4, plusieurs répertoires --link-dest peuvent être fournis, ce qui amènera rsync à rechercher le
liste dans l’ordre spécifié pour une correspondance exacte (il existe une limite de 20 répertoires de ce type). Si une correspondance est trouvée,
ne diffère que par les attributs, une copie locale est réalisée et les attributs mis à jour. Si aucune correspondance n'est trouvée, un fichier de base
de l’un des DIR sera sélectionné pour tenter d’accélérer le transfert.
Cette option fonctionne mieux lors de la copie dans une hiérarchie de destination vide, car les fichiers existants peuvent récupérer leurs attributs.
modifié, et cela peut affecter les fichiers de destination alternatifs via des liens physiques. En outre, la liste des modifications peut devenir un peu
embrouillé. Notez qu'avant la version 3.1.0, une correspondance exacte d'un répertoire alternatif ne serait jamais trouvée (ni liée à
la destination) lorsqu'un fichier de destination existe déjà.
Notez que si vous combinez cette option avec --ignore-times, rsync ne reliera aucun fichier entre eux car il ne fait que
relie des fichiers identiques ensemble en remplacement du transfert du fichier, jamais à titre de vérification supplémentaire après le fichier
Est mis à jour.
Si DIR est un chemin relatif, il est relatif au répertoire de destination. Voir aussi --compare-dest et --copy-dest.
Notez que les versions de rsync antérieures à 2.6.1 présentaient un bug qui pouvait empêcher --link-dest de fonctionner correctement pour un utilisateur non-su‐
par utilisateur lorsque --owner (-o) a été spécifié (ou implicite). Vous pouvez contourner ce bug en évitant l'option -o (ou
en utilisant --no-o) lors de l'envoi vers un ancien rsync.
--compresser, -z
Avec cette option, rsync compresse les données du fichier au fur et à mesure de leur envoi à la machine de destination, ce qui réduit la quantité
des données transmises - ce qui est utile sur une connexion lente.
Rsync prend en charge plusieurs méthodes de compression et en choisira une pour vous, sauf si vous forcez le choix à l'aide de l'option --com‐
appuyez sur l'option de choix (--zc).
Exécutez rsync --version pour voir la liste de compression par défaut compilée dans votre version.
Lorsque les deux côtés du transfert sont au moins 3.2.0, rsync choisit le premier algorithme dans la liste de choix du client
cela figure également dans la liste de choix du serveur. Si aucun choix de compression commun n'est trouvé, rsync se termine avec une erreur. Si
le rsync distant est trop ancien pour prendre en charge la négociation de somme de contrôle, sa liste est supposée être "zlib".
L'ordre par défaut peut être personnalisé en définissant la variable d'environnement RSYNC_COMPRESS_LIST sur une liste séparée par des espaces.
de noms de compression acceptables. Si la chaîne contient un caractère "&", elle est séparée en "chaîne client &
chaîne du serveur", sinon la même chaîne s'applique aux deux. Si la chaîne (ou la partie de chaîne) ne contient aucune chaîne non blanche.
caractères d'espacement, la liste de compression par défaut est utilisée. Tous les noms de compression inconnus sont supprimés de la liste, mais
une liste contenant uniquement des noms invalides entraîne un échec de la négociation.
Certaines anciennes versions de rsync ont été configurées pour rejeter une option -z et nécessitent l'utilisation de -zz car
leur bibliothèque de compression n'était pas compatible avec la méthode de compression zlib par défaut. Vous pouvez généralement l'ignorer
bizarrerie, sauf si le serveur rsync se plaint et vous demande de spécifier -zz.
--compress-choice=STR, --zc=STR
Cette option peut être utilisée pour remplacer la négociation automatique de l'algorithme de compression qui se produit lorsque --com‐
la presse est utilisée. L'option implique --compress sauf si "aucun" n'a été spécifié, ce qui implique à la place --no-compress.
Les options de compression que vous pourrez peut-être utiliser sont :
o zstd
ou lz4
ou zlibx
ou zlib
sur une
Exécutez rsync --version pour voir la liste de compression par défaut compilée dans votre version (qui peut différer de la liste
au-dessus de).
Notez que si vous voyez une erreur concernant une option nommée --old-compress ou --new-compress, c'est rsync qui essaie d'envoyer
l'option --compress-choice=zlib ou --compress-choice=zlibx d'une manière rétrocompatible avec d'autres versions de rsync
comprendre. Cette erreur indique que l'ancienne version de rsync sur le serveur ne vous permettra pas de forcer la compression.
type de session.
Notez que l'algorithme de compression "zlibx" est simplement l'algorithme "zlib" avec les données correspondantes exclues de la compression.
sion stream (pour essayer de le rendre plus compatible avec une implémentation externe de zlib).
--compress-level=NUM, --zl=NUM
Définissez explicitement le niveau de compression à utiliser (voir --compress, -z) au lieu de le laisser par défaut. L'opération --compress
tion est implicite tant que le niveau choisi n'est pas un niveau "ne pas compresser" pour l'algorithme de compression qui est en cours.
effet (par exemple, la compression zlib traite le niveau 0 comme "off").
Les valeurs de niveau varient en fonction de la somme de contrôle en vigueur. Parce que rsync négociera un choix de somme de contrôle par défaut
(lorsque le rsync distant est suffisamment récent), il peut être intéressant de combiner cette option avec une option --compress-choice (--zc)
sauf si vous êtes sûr du choix en vigueur. Par exemple:
rsync -aiv --zc=zstd --zl=22 hôte:src/ dest/
Pour la compression zlib et zlibx, les valeurs valides sont comprises entre 1 et 9, 6 étant la valeur par défaut. Spécifier --zl=0 devient com‐
pression désactivée et en spécifiant --zl=-1 choisit le niveau par défaut de 6.
Pour la compression zstd, les valeurs valides vont de -131072 à 22, 3 étant la valeur par défaut. Spécifier 0 choisit le dé‐
faute de 3.
Pour la compression lz4, il n'y a pas de niveaux, donc la valeur est toujours 0.
Si vous spécifiez une valeur trop grande ou trop petite, le nombre est limité silencieusement à une valeur valide. Cela vous permet de
spécifiez quelque chose comme --zl=999999999 et soyez assuré que vous obtiendrez le niveau de compression maximum, peu importe
quel algorithme a été choisi.
Si vous souhaitez connaître le niveau de compression en vigueur, spécifiez --debug=nstr pour voir la "chaîne négociée" re‐
résultats. Cela rapportera quelque chose comme « Compression client : zstd (niveau 3) » (avec le choix de la somme de contrôle en vigueur).
--skip-compress=LISTE
REMARQUE : aucune méthode de compression ne prend actuellement en charge les modifications de compression par fichier, cette option n'a donc aucun effet.
Remplacez la liste des suffixes de fichiers qui seront compressés le moins possible. Rsync définit le niveau de compression
sur une base par fichier en fonction du suffixe du fichier. Si l'algorithme de compression a un niveau "off", alors aucune compression
se produit pour ces fichiers. D'autres algorithmes prenant en charge la modification du niveau de streaming à la volée auront le niveau
minimisé pour réduire autant que possible l'utilisation du processeur pour un fichier correspondant.
La LISTE doit contenir un ou plusieurs suffixes de fichier (sans le point) séparés par des barres obliques (/). Vous pouvez spécifier un vide
chaîne pour indiquer qu’aucun fichier ne doit être ignoré.
La correspondance simple de classes de caractères est prise en charge : chacune doit consister en une liste de lettres entre crochets (par exemple
aucune classe spéciale, telle que "[:alpha:]", n'est prise en charge et "-" n'a pas de signification particulière).
Les caractères astérisque (*) et point d'interrogation (?) n'ont pas de signification particulière.
Voici un exemple qui spécifie 6 suffixes à ignorer (puisque 1 des 5 règles correspond à 2 suffixes) :
--skip-compress=gz/jpg/mp[34]/7z/bz2
Les suffixes de fichiers par défaut dans la liste skip-compress dans cette version de rsync sont :
3g2 3gp 7z aac ace apk avi bz2 deb dmg ear f4v flac flv gpg gz iso jar jpeg jpg lrz lz lz4 lzma lzo m1a m1v m2a
m2ts m2v m4a m4b m4p m4r m4v mka mkv mov mp1 mp2 mp3 mp4 mpa mpeg mpg mpv mts odb odf odg odi odm odp ods odt oga
ogg ogm ogv ogx opus otg oth otp ots ott oxt png qt rar rpm rz rzip spx squashfs sxc sxd sxg sxm sxw sz tbz tbz2
tgz tlz ts txz tzo vob guerre webm webp xz z zip zst
Cette liste sera remplacée par votre liste --skip-compress dans toutes les situations sauf une : une copie d'un démon rsync ajoutera
vos suffixes ignorés à sa liste de fichiers non compressés (et sa liste peut être configurée sur une valeur par défaut différente).
--identifiants numériques
Avec cette option, rsync transférera les identifiants numériques des groupes et des utilisateurs plutôt que d'utiliser les noms d'utilisateurs et de groupes et le mappage.
eux aux deux extrémités.
Par défaut, rsync utilisera le nom d'utilisateur et le nom de groupe pour déterminer la propriété à attribuer aux fichiers. L'uid spécial 0
et le groupe spécial 0 ne sont jamais mappés via les noms d'utilisateur/groupe même si l'option --numeric-ids n'est pas spécifiée.
Si un utilisateur ou un groupe n'a pas de nom sur le système source ou s'il n'a aucune correspondance sur le système de destination, l'ID numérique
du système source est utilisé à la place. Voir aussi le paramètre use chroot dans la page de manuel rsyncd.conf pour quelques commentaires
sur la façon dont le paramètre chroot affecte la capacité de rsync à rechercher les noms des utilisateurs et des groupes et ce que vous pouvez faire
à ce sujet.
--usermap=CHAÎNE, --groupmap=CHAÎNE
Ces options vous permettent de spécifier les utilisateurs et les groupes qui doivent être mappés à d'autres valeurs par le côté récepteur. Le
STRING est une ou plusieurs paires FROM:TO de valeurs séparées par des virgules. Toute valeur FROM correspondante de l'expéditeur est renvoyée.
placé avec une valeur TO du récepteur. Vous pouvez spécifier des noms d'utilisateur ou des ID utilisateur pour les valeurs FROM et TO, ainsi que les
La valeur FROM peut également être une chaîne générique, qui sera comparée aux noms de l'expéditeur (les caractères génériques ne correspondent PAS
par rapport aux numéros d'identification, mais voyez ci-dessous pourquoi un « * » correspond à tout). Vous pouvez à la place spécifier une plage de numéros d'identification.
bres via une gamme inclusive : BAS-HAUTE. Par exemple:
--usermap=0-99:personne,wayne:admin,*:normal --groupmap=usr:1,1:usr
La première correspondance de la liste est celle utilisée. Vous devez spécifier tous vos mappages utilisateur à l'aide d'un seul
--usermap et/ou tous vos mappages de groupes en utilisant une seule option --groupmap.
Notez que le nom de l'expéditeur pour l'utilisateur et le groupe 0 n'est pas transmis au destinataire, vous devez donc faire correspondre
ces valeurs en utilisant un 0, ou utiliser les noms en vigueur du côté récepteur (typiquement "root"). Tous les autres noms FROM
correspondent à ceux utilisés du côté expéditeur. Tous les noms de TO correspondent à ceux utilisés du côté récepteur.
Tous les identifiants qui n'ont pas de nom du côté expéditeur sont traités comme ayant un nom vide aux fins de correspondance.
Cela permet de les faire correspondre via un "*" ou en utilisant un nom vide. Par exemple:
--usermap=:personne --groupmap=*:personne
Lorsque l'option --numeric-ids est utilisée, l'expéditeur n'envoie aucun nom, donc tous les identifiants sont traités comme ayant un
nom vide. Cela signifie que vous devrez spécifier des valeurs numériques FROM si vous souhaitez mapper ces identifiants sans nom à
des valeurs différentes.
Pour que l'option --usermap fonctionne, le récepteur devra être exécuté en tant que super-utilisateur (voir aussi les options --super et
--fausses-super options). Pour que l'option --groupmap fonctionne, le récepteur devra disposer des autorisations nécessaires pour définir cette option.
groupe.
À partir de rsync 3.2.4, l'option --usermap implique l'option --owner (-o) tandis que l'option --groupmap implique
l'option --group (-g) (puisque rsync doit avoir ces options activées pour que les options de mappage fonctionnent).
Un ancien client rsync devra peut-être utiliser -s pour éviter une plainte concernant les caractères génériques, mais un rsync moderne gère
ceci automatiquement.
--chown=UTILISATEUR: GROUPE
Cette option force tous les fichiers à appartenir à USER avec le groupe GROUP. C'est une interface plus simple que d'utiliser --usermap
& --groupmap directement, mais il est implémenté en utilisant ces options en interne afin qu'elles ne puissent pas être mélangées. Si soit le
USER ou GROUP est vide, aucun mappage pour l'utilisateur/groupe omis ne se produira. Si GROUP est vide, les deux points de fin peuvent
être omis, mais si USER est vide, un deux-points doit être fourni.
Si vous spécifiez "--chown=foo:bar", cela revient exactement à spécifier "--usermap=*:foo --groupmap=*:bar", uniquement
plus facile (et avec les mêmes options implicites --owner et/ou --group).
Un ancien client rsync devra peut-être utiliser -s pour éviter une plainte concernant les caractères génériques, mais un rsync moderne gère
ceci automatiquement.
--timeout=SECONDES
Cette option vous permet de définir un délai d'expiration d'E/S maximum en secondes. Si aucune donnée n'est transférée pendant la durée spécifiée
alors rsync se terminera. La valeur par défaut est 0, ce qui signifie qu'il n'y a pas de délai d'attente.
--contimeout=SECONDES
Cette option vous permet de définir la durée pendant laquelle rsync attendra que sa connexion à un démon rsync réussisse.
cédez. Si le délai d'attente est atteint, rsync se termine avec une erreur.
--adresse=ADRESSE
Par défaut, rsync se liera à l'adresse générique lors de la connexion à un démon rsync. L'option --address permet
vous devez spécifier une adresse IP (ou un nom d'hôte) spécifique à laquelle vous connecter.
Voir aussi la version démon de l'option --address.
--port=PORT
Ceci spécifie un autre numéro de port TCP à utiliser plutôt que le numéro par défaut de 873. Ceci n'est nécessaire que si vous êtes
en utilisant la syntaxe double-virgule (::) pour vous connecter à un démon rsync (puisque la syntaxe URL permet de spécifier le
port dans le cadre de l'URL).
Voir aussi la version démon de l'option --port.
--sockopts=OPTIONS
Cette option peut offrir un plaisir sans fin aux personnes qui aiment régler leurs systèmes au maximum. Vous pouvez tout définir
sortes d'options de socket qui peuvent rendre les transferts plus rapides (ou plus lents !). Lisez la page de manuel du système setsockopt()
appelez pour plus de détails sur certaines des options que vous pourrez peut-être définir. Par défaut, aucune option de socket spéciale n'est définie. Ce
n'affecte que les connexions de socket directes à un démon rsync distant.
Voir aussi la version démon de l'option --sockopts.
--blocking-io
Cela indique à rsync d'utiliser le blocage des E/S lors du lancement d'un transport shell distant. Si le shell distant est rsh ou
remsh, rsync utilise par défaut les E/S bloquantes, sinon il utilise par défaut les E/S non bloquantes. (Notez que ssh préfère
E/S non bloquantes.)
--outbuf=MODE
Ceci définit le mode de mise en mémoire tampon de sortie. Le mode peut être Aucun (alias Unbuffered), Line ou Block (alias Full). Vous pouvez
spécifiez aussi peu qu'une seule lettre pour le mode et utilisez des majuscules ou des minuscules.
L'utilisation principale de cette option est de remplacer la mise en mémoire tampon complète par la mise en mémoire tampon de ligne lorsque la sortie de rsync est envoyée vers un fichier ou
tuyau.
--itemize-changes, -i
Demande une simple liste détaillée des modifications apportées à chaque fichier, y compris les modifications d'attributs. Ce
est exactement la même chose que de spécifier --out-format='%i %n%L'. Si vous répétez l'option, les fichiers inchangés seront également
sortie, mais seulement si le rsync de réception est au moins la version 2.6.7 (vous pouvez utiliser -vv avec les anciennes versions de rsync, mais
qui active également la sortie d'autres messages détaillés).
L'échappement "%i" a une sortie cryptique de 11 lettres. Le format général est comme la chaîne YXcstpoguax,
où Y est remplacé par le type de mise à jour en cours, X est remplacé par le type de fichier et les autres lettres représentent
attributs qui peuvent être générés s’ils sont modifiés.
Les types de mise à jour qui remplacent le Y sont les suivants :
o Un < signifie qu'un fichier est en cours de transfert vers l'hôte distant (envoyé).
o Un > signifie qu'un fichier est en cours de transfert vers l'hôte local (reçu).
o Un c signifie qu'une modification/création locale est en cours pour l'élément (comme la création d'un répertoire ou la
changement d'un lien symbolique, etc.).
o A h signifie que l'élément est un lien physique vers un autre élément (nécessite --hard-links).
oA. signifie que l'élément n'est pas mis à jour (bien qu'il puisse avoir des attributs en cours de modification).
o Un * signifie que le reste de la zone de sortie détaillée contient un message (par exemple "suppression").
Les types de fichiers qui remplacent le X sont : f pour un fichier, ad pour un répertoire, un L pour un lien symbolique, un D pour un périphérique et un
S pour un fichier spécial (par exemple nommé sockets et fifos).
Les autres lettres de la chaîne indiquent si certains attributs du fichier ont changé, comme suit :
ou "." - l'attribut est inchangé.
o "+" - le fichier est nouvellement créé.
o " " - tous les attributs restent inchangés (tous les points se transforment en espaces).
ou "?" - le changement est inconnu (lorsque le rsync distant est ancien).
o Une lettre indique qu'un attribut est en cours de mise à jour.
L'attribut associé à chaque lettre est le suivant :
o Un c signifie soit qu'un fichier normal a une somme de contrôle différente (nécessite --checksum), soit qu'un lien symbolique, un périphérique,
ou un fichier spécial a une valeur modifiée. Notez que si vous envoyez des fichiers à un rsync antérieur à 3.0.1, cela
L'indicateur de changement ne sera présent que pour les fichiers normaux à somme de contrôle différente.
o Cela signifie que la taille d'un fichier normal est différente et sera mise à jour par le transfert de fichier.
o A t signifie que l'heure de modification est différente et est mise à jour avec la valeur de l'expéditeur (nécessite --times).
Une valeur alternative de T signifie que l'heure de modification sera fixée à l'heure de transfert, ce qui se produit lorsque
un fichier/lien symbolique/périphérique est mis à jour sans --times et lorsqu'un lien symbolique est modifié et que le récepteur ne peut pas définir son
temps. (Remarque : lorsque vous utilisez un client rsync 3.0.0, vous pouvez voir l'indicateur s combiné avec t au lieu du bon
Indicateur T pour cet échec de mise à l'heure.)
o A p signifie que les autorisations sont différentes et sont mises à jour avec la valeur de l'expéditeur (nécessite --perms).
o Un o signifie que le propriétaire est différent et est mis à jour avec la valeur de l'expéditeur (nécessite --owner et super-user
privilèges).
o A g signifie que le groupe est différent et est mis à jour avec la valeur de l'expéditeur (nécessite --group et l'auteur).
possibilité de définir le groupe).
o
o A u|n|b indique les informations suivantes :
u signifie que l'heure d'accès (d'utilisation) est différente et est mise à jour à la valeur de l'expéditeur (nécessite
--parfois)
on signifie que l'heure de création (nouveauté) est différente et est mise à jour à la valeur de l'expéditeur (nécessite
--critimes)
ob signifie que les heures d'accès et de création sont en cours de mise à jour
o Le a signifie que les informations ACL sont en cours de modification.
o Le x signifie que les informations d'attribut étendu sont en cours de modification.
Une autre sortie est possible : lors de la suppression de fichiers, le "%i" affichera la chaîne "*deleting" pour chaque élément qui est
en cours de suppression (en supposant que vous parlez à un rsync suffisamment récent pour qu'il enregistre les suppressions au lieu de générer
eux sous forme de message verbeux).
--out-format=FORMAT
Cela vous permet de spécifier exactement ce que le client rsync envoie à l'utilisateur pour chaque mise à jour. Le format est un
chaîne de texte contenant des séquences d'échappement à un seul caractère intégrées préfixées par un caractère de pourcentage (%). Un défaut
le format "%n%L" est supposé si --info=name ou -v est spécifié (cela vous indique uniquement le nom du fichier et,
si l'élément est un lien, où il pointe). Pour une liste complète des caractères d'échappement possibles, consultez le paramètre de format de journal.
dans la page de manuel rsyncd.conf.
Spécifier l'option --out-format implique l'option --info=name, qui mentionnera chaque fichier, répertoire, etc.
mis à jour de manière significative (un fichier transféré, un lien symbolique/périphérique recréé ou un répertoire touché). En outre,
si l'échappement itemize-changes (%i) est inclus dans la chaîne (par exemple si l'option --itemize-changes a été utilisée), le
la journalisation des noms augmente pour mentionner tout élément modifié de quelque manière que ce soit (tant que le côté récepteur est au moins
2.6.4). Voir l'option --itemize-changes pour une description de la sortie de "%i".
Rsync affichera la chaîne hors format avant le transfert d'un fichier, à moins que l'un des échappements de statistiques de transfert ne soit
demandé, auquel cas la journalisation se fait à la fin du transfert du fichier. Quand cette journalisation tardive est en vigueur
et --progress est également spécifié, rsync affichera également le nom du fichier en cours de transfert avant sa progression
informations (suivies, bien sûr, par la sortie hors format).
--log-file=FICHIER
Cette option amène rsync à enregistrer ce qu'il fait dans un fichier. Ceci est similaire à la journalisation effectuée par un démon, mais
peut être demandé pour le côté client et/ou le côté serveur d'un transfert non-démon. Si spécifié comme opération client
tion, la journalisation des transferts sera activée avec un format par défaut de "%i %n%L". Voir l'option --log-file-format si vous
souhaitez annuler cela.
Voici un exemple de commande qui demande au côté distant de consigner ce qui se passe :
rsync -av --remote-option=--log-file=/tmp/rlog src/ dest/
Ceci est très utile si vous devez déboguer pourquoi une connexion se ferme de manière inattendue.
Voir aussi la version démon de l'option --log-file.
--log-file-format=FORMAT
Cela vous permet de spécifier exactement quelle journalisation par mise à jour est placée dans le fichier spécifié par l'option --log-file
(qui doit également être précisé pour que cette option ait un effet). Si vous spécifiez une chaîne vide, les fichiers mis à jour
ne sera pas mentionné dans le fichier journal. Pour obtenir la liste des caractères d'échappement possibles, consultez le paramètre de format de journal dans
la page de manuel rsyncd.conf.
Le FORMAT par défaut utilisé si --log-file est spécifié et que cette option ne l'est pas est '%i %n%L'.
Voir aussi la version démon de l'option --log-file-format.
--Statistiques
Cela indique à rsync d'imprimer un ensemble détaillé de statistiques sur le transfert de fichiers, vous permettant de déterminer l'efficacité du transfert de fichiers.
L'algorithme de transfert delta de rsync est destiné à vos données. Cette option est équivalente à --info=stats2 si elle est combinée avec 0 ou
1 options -v, ou --info=stats3 si elles sont combinées avec 2 options -v ou plus.
Les statistiques actuelles sont les suivantes :
o Le nombre de fichiers est le nombre de tous les « fichiers » (au sens générique), qui incluent les répertoires, les liens symboliques, etc.
Le décompte total sera suivi d'une liste de décomptes par type de fichier (si le total est différent de zéro). Par exemple:
"(reg: 5, dir: 3, link: 2, dev: 1, special: 1)" répertorie les totaux pour les fichiers normaux, répertoires, liens symboliques, de‐
vices et limes spéciales. Si l’une des valeurs est 0, elle est complètement omise de la liste.
o Le nombre de fichiers créés correspond au nombre de « fichiers » (au sens générique) qui ont été créés (par opposition à mis à jour).
Le décompte total sera suivi d'une liste de décomptes par type de fichier (si le total est différent de zéro).
o Le nombre de fichiers supprimés correspond au nombre de « fichiers » (au sens générique) qui ont été supprimés. Le décompte total sera
être suivi d'une liste de décomptes par type de fichier (si le total est différent de zéro). Notez que cette ligne n'est affichée que si
les suppressions sont en vigueur, et uniquement si le protocole 31 est utilisé (valeur par défaut pour rsync 3.1.x).
o Le nombre de fichiers normaux transférés est le nombre de fichiers normaux qui ont été mis à jour via le transfert delta de rsync.
algorithme, qui n'inclut pas les répertoires, les liens symboliques, etc. Notez que rsync 3.1.0 a ajouté le mot « régulier » dans
cette rubrique.
o La taille totale du fichier est la somme totale de toutes les tailles de fichiers lors du transfert. Cela ne compte aucune taille pour la direction.
ries ou fichiers spéciaux, mais inclut la taille des liens symboliques.
o La taille totale des fichiers transférés est la somme totale de toutes les tailles de fichiers uniquement pour les fichiers transférés.
o Les données littérales correspondent à la quantité de données de mise à jour de fichier sans correspondance que nous avons dû envoyer au destinataire pour qu'il puisse recréer la mise à jour.
dossiers datés.
o Les données correspondantes correspondent à la quantité de données que le récepteur a obtenues localement lors de la recréation des fichiers mis à jour.
o La taille de la liste de fichiers correspond à la taille des données de la liste de fichiers lorsque l'expéditeur les a envoyées au destinataire. C'est plus petit
que la taille en mémoire de la liste de fichiers en raison d'une certaine compression des données dupliquées lorsque rsync envoie le
liste.
o Le temps de génération de la liste de fichiers est le nombre de secondes que l'expéditeur a passé à créer la liste de fichiers. Cette ré‐
nécessite un rsync moderne du côté expéditeur pour que cela soit présent.
o Le temps de transfert de la liste de fichiers est le nombre de secondes que l'expéditeur a passé à envoyer la liste de fichiers au destinataire.
o Le nombre total d'octets envoyés est le nombre de tous les octets envoyés par rsync du côté client vers le côté serveur.
o Le nombre total d'octets reçus est le nombre de tous les octets autres que les messages que rsync a reçus par le côté client depuis le
du côté serveur. Les octets « sans message » signifient que nous ne comptons pas les octets d'un message détaillé que le serveur
qui nous ont été envoyés, ce qui rend les statistiques plus cohérentes.
--Sortie 8 bits, -8
Cela indique à rsync de laisser tous les caractères de taille élevée sans échappement dans la sortie au lieu d'essayer de les tester pour voir si
ils sont valides dans les paramètres régionaux actuels et échappent aux paramètres non valides. Tous les caractères de contrôle (mais jamais les tabulations) sont toujours
voies d'évasion, quel que soit le paramètre de cette option.
L'idiome d'échappement qui a commencé dans la version 2.6.7 consiste à afficher une barre oblique inverse littérale (\\) et un hachage (#), suivis exactement de 3 oc‐
chiffres réels. Par exemple, une nouvelle ligne afficherait "\\#012". Une barre oblique inverse littérale contenue dans un nom de fichier n'est pas
masqué à moins qu'il ne soit suivi d'un hachage et de 3 chiffres (0-9).
--lisible par l'homme, -h
Affichez les nombres dans un format plus lisible par l'homme. Il y a 3 niveaux possibles :
1. afficher des nombres avec un séparateur entre chaque ensemble de 3 chiffres (soit une virgule, soit un point, selon que le
le point décimal est représenté par un point ou une virgule).
2. afficher les nombres en unités de 1000 (avec un suffixe de caractère pour les unités plus grandes - voir ci-dessous).
3. afficher les nombres en unités de 1024.
La valeur par défaut est le niveau 1 lisible par l'homme. Chaque option -h augmente le niveau de un. Vous pouvez descendre le niveau à 0
(pour afficher les nombres sous forme de chiffres purs) en spécifiant l'option --no-human-readable (--no-h).
Les lettres unitaires ajoutées aux niveaux 2 et 3 sont : K (kilo), M (méga), G (giga), T (tera) ou P (peta). Pour
Par exemple, un fichier de 1 234 567 octets afficherait 1,23 Mo au niveau 2 (en supposant qu'un point soit votre virgule décimale locale).
Note de compatibilité ascendante : les versions de rsync antérieures à 3.1.0 ne prennent pas en charge le niveau 1 lisible par l'homme, et elles sont par défaut
au niveau 0. Ainsi, spécifier une ou deux options -h se comportera de manière comparable dans les anciennes et les nouvelles versions comme
tant que vous n'avez pas spécifié d'option --no-h avant une ou plusieurs options -h. Voir l'option --list-only pour une différence.
référence.
--partiel
Par défaut, rsync supprimera tout fichier partiellement transféré si le transfert est interrompu. Dans certaines circonstances
il est plus souhaitable de conserver les fichiers partiellement transférés. L'utilisation de l'option --partial indique à rsync de conserver le partiel
fichier, ce qui devrait rendre le transfert ultérieur du reste du fichier beaucoup plus rapide.
--partial-dir=DIR
Cette option modifie le comportement de l'option --partial tout en impliquant également qu'elle soit activée. Ce par‐
La méthode tial-file place tous les fichiers partiellement transférés dans le répertoire spécifié au lieu d'écrire le fichier partiel
au fichier de destination. Lors du prochain transfert, rsync utilisera un fichier trouvé dans ce répertoire comme données pour accélérer la re-
prise en charge du transfert, puis supprimez-le une fois qu'il a atteint son objectif.
Notez que si --whole-file est spécifié (ou implicite), tous les fichiers de répertoire partiel trouvés pour un fichier en cours d'exécution.
La mise à jour sera simplement supprimée (puisque rsync envoie des fichiers sans utiliser l'algorithme de transfert delta de rsync).
Rsync créera le DIR s'il est manquant, mais juste le dernier répertoire - pas le chemin complet. Cela facilite l'utilisation d'un
chemin relatif (tel que "--partial-dir=.rsync-partial") pour que rsync crée le répertoire partiel dans la destination
répertoire du fichier lorsque cela est nécessaire, puis supprimez-le à nouveau lorsque le fichier partiel est supprimé. Notez que cette directive
la suppression d'un répertoire n'est effectuée que pour un chemin d'accès relatif, car on s'attend à ce qu'un chemin absolu soit vers un répertoire qui est
réservé au travail en direction partielle.
Si la valeur du répertoire partiel n'est pas un chemin absolu, rsync ajoutera une règle d'exclusion à la fin de tous vos anciens chemins existants.
comprend. Cela empêchera l'envoi de fichiers de répertoire partiel pouvant exister du côté expéditeur, et cela empêchera également
empêcher la suppression intempestive d’éléments de répertoire partiel côté réception. Un exemple : l'option --partial-dir ci-dessus
ajouterait l'équivalent de cette exclusion "périssable" à la fin de toute autre règle de filtre : -f '-p .rsync-partial/'
Si vous fournissez vos propres règles d'exclusion, vous devrez peut-être ajouter votre propre règle d'exclusion/masquage/protection pour le traitement partiel.
dir parce que :
1. la règle ajoutée automatiquement peut être inefficace à la fin de vos autres règles, ou
2. vous souhaiterez peut-être remplacer le choix d'exclusion de rsync.
Par exemple, si vous souhaitez que rsync nettoie tous les répertoires partiels restants qui pourraient traîner, vous devez
spécifiez --delete-after et ajoutez une règle de filtre "risque", par exemple -f 'R .rsync-partial/'. Évitez d'utiliser --delete-before ou
--delete-during sauf si vous n'avez pas besoin de rsync pour utiliser les données restantes du répertoire partiel pendant l'exécution en cours.
IMPORTANT : le --partial-dir ne doit pas être accessible en écriture par d'autres utilisateurs, sinon c'est un risque pour la sécurité ! Par exemple, ÉVITER "/tmp" !
Vous pouvez également définir la valeur du répertoire partiel dans la variable d'environnement RSYNC_PARTIAL_DIR. Définir cela dans l'environnement
ne force pas l'activation de --partial, mais affecte plutôt l'emplacement des fichiers partiels lorsque --partial est spécifié.
Par exemple, au lieu d'utiliser --partial-dir=.rsync-tmp avec --progress, vous pouvez définir RSYNC_PAR‐
TIAL_DIR=.rsync-tmp dans votre environnement, puis utilisez l'option -P pour activer l'utilisation du répertoire .rsync-tmp pour le paramétrage.
transferts initiaux. Les seules fois où l'option --partial ne recherche pas cette valeur d'environnement sont :
1. quand --inplace a été spécifié (puisque --inplace est en conflit avec --partial-dir), et
2. lorsque --delay-updates a été spécifié (voir ci-dessous).
Lorsqu'un rsync moderne reprend le transfert d'un fichier dans le répertoire partiel, ce fichier partiel est désormais mis à jour sur place.
au lieu de créer encore une autre copie de fichier tmp (donc elle atteint son maximum à dest + tmp au lieu de dest + partial + tmp). Ce
nécessite que les deux extrémités du transfert soient au moins en version 3.2.0.
Pour les besoins du paramètre "options de refus" de daemon-config, --partial-dir n'implique pas --partial. C'est tellement
qu'un refus de l'option --partial peut être utilisé pour interdire l'écrasement des fichiers de destination avec une valeur partielle
transfert, tout en autorisant l'idiome plus sûr fourni par --partial-dir.
--delay-mises à jour
Cette option place le fichier temporaire de chaque fichier mis à jour dans un répertoire de stockage jusqu'à la fin du transfert, à
à quel moment tous les fichiers sont renommés en succession rapide. Ceci tente de faire la mise à jour des fichiers
un peu plus atomique. Par défaut, les fichiers sont placés dans un répertoire nommé .~tmp~ dans le répertoire de destination de chaque fichier.
rectory, mais si vous avez spécifié l'option --partial-dir, ce répertoire sera utilisé à la place. Voir les commentaires dans
la section --partial-dir pour une discussion sur la façon dont ce répertoire .~tmp~ sera exclu du transfert et ce que vous
peut faire si vous voulez que rsync nettoie les anciens répertoires .~tmp~ qui pourraient traîner. Conflits avec --inplace et --ap‐
en attente.
Cette option implique --no-inc-recursive puisqu'elle a besoin de la liste complète des fichiers en mémoire pour pouvoir itérer
dessus à la fin.
Cette option utilise plus de mémoire du côté réception (un bit par fichier transféré) et nécessite également suffisamment de disque libre
espace côté réception pour contenir une copie supplémentaire de tous les fichiers mis à jour. Notez également que vous ne devez pas utiliser
un chemin absolu vers --partial-dir sauf si :
1. il n'y a aucune chance qu'un des fichiers du transfert porte le même nom (puisque tous les fichiers mis à jour seront
être placé dans un seul répertoire si le chemin est absolu), et
2. il n'y a pas de points de montage dans la hiérarchie (puisque les mises à jour retardées échoueront si elles ne peuvent pas être renommées en
lieu).
Voir aussi le script python "atomic-rsync" dans le sous-répertoire "support" pour un algorithme de mise à jour encore plus atomique
(il utilise --link-dest et une hiérarchie parallèle de fichiers).
--prune-empty-répertoires, -m
Cette option indique au rsync récepteur de se débarrasser des répertoires vides de la liste de fichiers, y compris les répertoires imbriqués.
ries qui n'ont pas d'enfants hors répertoire. Ceci est utile pour éviter la création d'un tas de répertoires inutiles
lorsque le rsync d'envoi analyse de manière récursive une hiérarchie de fichiers à l'aide de règles d'inclusion/exclusion/filtrage.
Cette option peut toujours laisser des répertoires vides du côté récepteur si vous utilisez TRANSFER_RULES.
Étant donné que la liste de fichiers est en train d'être élaguée, cette option affecte également les répertoires qui seront supprimés lors d'une suppression.
c'est actif. Cependant, gardez à l'esprit que les fichiers et répertoires exclus peuvent empêcher la suppression des éléments existants.
en raison d'une exclusion à la fois masquant les fichiers source et protégeant les fichiers de destination. Voir l'option de règle de filtre périssable
pour savoir comment éviter cela.
Vous pouvez empêcher l'élagage de certains répertoires vides de la liste de fichiers en utilisant un filtre de « protection » global. Pour
Par exemple, cette option garantirait que le répertoire "emptydir" soit conservé dans la liste de fichiers :
--filter 'protéger répertoire vide/'
Voici un exemple qui copie tous les fichiers .pdf dans une hiérarchie, en créant uniquement les répertoires de destination nécessaires à
conserve les fichiers .pdf et s'assure que tous les fichiers et répertoires superflus dans la destination sont supprimés (notez le
masquer le filtre des non-répertoires utilisés au lieu d'une exclusion) :
rsync -avm --del --include='*.pdf' -f 'cacher,! */'src/dest
Si vous ne souhaitez pas supprimer les fichiers de destination superflus, les options les plus traditionnelles de --include='*/' --ex‐
clude='*' fonctionnerait bien à la place du filtre masqué (si cela vous semble plus naturel).
--progrès
Cette option indique à rsync d'imprimer les informations montrant la progression du transfert. Cela donne quelque chose à un utilisateur qui s'ennuie
regarder. Avec un rsync moderne, cela revient à spécifier --info=flist2,name,progress, mais tout ensemble fourni par l'utilisateur
les paramètres pour ces indicateurs d'informations sont prioritaires (par exemple --info=flist0 --progress).
Pendant que rsync transfère un fichier normal, il met à jour une ligne de progression qui ressemble à ceci :
782448 63 % 110,64 Ko/s 0:00:04
Dans cet exemple, le destinataire a reconstruit 782 448 octets, soit 63 % du fichier de l'expéditeur, qui est en cours de reconstruction.
structuré à un débit de 110,64 kilo-octets par seconde, et le transfert se terminera dans 4 secondes si le débit actuel est
maintenue jusqu'au bout.
Ces statistiques peuvent être trompeuses si l'algorithme de transfert delta de rsync est utilisé. Par exemple, si le dossier de l'expéditeur
se compose du fichier de base suivi de données supplémentaires, le taux rapporté diminuera probablement considérablement lorsque le
Le destinataire accède aux données littérales, et le transfert prendra probablement beaucoup plus de temps que ce que le destinataire estime.
accouplé alors qu'il terminait la partie correspondante du fichier.
Une fois le transfert de fichiers terminé, rsync remplace la ligne de progression par une ligne récapitulative qui ressemble à ceci :
1 238 099 100 % 146,38 Ko/s 0:00:08 (xfr#5, to-chk=169/396)
Dans cet exemple, le fichier faisait au total 1 238 099 octets, le taux de transfert moyen pour l'ensemble du fichier était
146,38 kilo-octets par seconde sur les 8 secondes nécessaires, il s'agissait du 5ème transfert d'un fichier standard
pendant la session rsync en cours, et il y a 169 fichiers supplémentaires que le récepteur doit vérifier (pour voir s'ils sont à jour).
date ou non) restant sur les 396 fichiers au total dans la liste de fichiers.
Dans une analyse récursive incrémentielle, rsync ne connaîtra pas le nombre total de fichiers dans la liste de fichiers jusqu'à ce qu'il atteigne le nombre total de fichiers dans la liste de fichiers.
fin de l'analyse, mais comme il commence à transférer des fichiers pendant l'analyse, il affichera une ligne avec le texte "ir-
chk" (pour la vérification de récursion incrémentielle) au lieu de "to-chk" jusqu'à ce qu'il connaisse la taille complète de la liste,
à ce stade, il passera à l'utilisation de "to-chk". Ainsi, voir "ir-chk" vous permet de savoir que le nombre total de fichiers
dans la liste des fichiers va encore augmenter (et à chaque fois, le nombre de fichiers restant à vérifier augmentera de
le nombre de fichiers ajoutés à la liste).
-P L'option -P est équivalente à "--partial --progress". Son objectif est de faciliter grandement la spécification de ces deux
options pour un transfert long qui peut être interrompu.
Il existe également une option --info=progress2 qui génère des statistiques basées sur l'ensemble du transfert, plutôt que sur des données individuelles.
des dossiers. Utilisez cet indicateur sans afficher de nom de fichier (par exemple, évitez -v ou spécifiez --info=name0) si vous voulez voir comment
le transfert se fait sans faire défiler l'écran avec beaucoup de noms. (Vous n'avez pas besoin de spécifier l'opération --progress
tion afin d'utiliser --info=progress2.)
Enfin, vous pouvez obtenir un rapport de progression instantané en envoyant à rsync un signal SIGINFO ou SIGVTALRM. Sur BSD
systèmes, un SIGINFO est généré en tapant un Ctrl+T (Linux ne prend actuellement pas en charge un signal SIGINFO). Quand le
le processus côté client reçoit l'un de ces signaux, il définit un indicateur pour générer un seul rapport de progression qui est généré
lorsque le transfert de fichier en cours se termine (cela peut donc prendre un peu de temps si un gros fichier est traité lorsque le signal
arrive). Un nom de fichier est affiché (si nécessaire) suivi du format --info=progress2 des informations de progression. Si tu ne le fais pas
savoir lequel des 3 processus rsync est le processus client, vous pouvez tous les signaler (puisque le processus non client
les processus ignorent le signal).
ATTENTION : envoyer SIGVTALRM à un ancien rsync (pré-3.2.0) le tuera.
--password-file=FICHIER
Cette option permet de fournir un mot de passe pour accéder à un démon rsync via un fichier ou via une entrée standard si FILE
est -. Le fichier doit contenir uniquement le mot de passe sur la première ligne (toutes les autres lignes sont ignorées). Rsync va se fermer
avec une erreur si FILE est lisible par tout le monde ou si une commande rsync exécutée par root trouve un fichier n'appartenant pas à root.
Cette option ne fournit pas de mot de passe pour un transport shell distant tel que ssh ; pour savoir comment procéder, consultez le
documentation du shell distant. Lors de l'accès à un démon rsync en utilisant un shell distant comme transport, cette option uniquement
entre en vigueur une fois que le shell distant a terminé son authentification (c'est-à-dire si vous avez également spécifié un mot de passe dans
le fichier de configuration du démon).
--early-input=FICHIER
Cette option permet à rsync d'envoyer jusqu'à 5 Ko de données au script "early exec" sur son stdin. Une utilisation possible de ceci
data est de donner au script un secret qui peut être utilisé pour monter un système de fichiers crypté (que vous devez démonter dans
le script "post-xfer exec").
Le démon doit être au moins en version 3.2.1.
--liste uniquement
Cette option entraînera la liste des fichiers sources au lieu d'être transférés. Cette option est déduite s'il existe un
Argument source unique et aucune destination spécifiée, ses principales utilisations sont donc :
1. pour transformer une commande de copie qui inclut un argument de destination en une commande de liste de fichiers, ou
2. pour pouvoir spécifier plusieurs arguments sources. Remarque : assurez-vous d'inclure la destination.
ATTENTION : gardez à l'esprit qu'un argument source avec un caractère générique est étendu par le shell en plusieurs arguments, il n'est donc jamais
Il est prudent d'essayer de spécifier un seul argument générique pour essayer de déduire cette option. Un exemple sûr est :
rsync -av --list-only foo* dest/
Cette option utilise toujours un format de sortie qui ressemble à ceci :
drwxrwxr-x 4 096 2022/09/30 12:53:11 assistance
-rw-rw-r-- 80 2005/01/11 10:37:37 support/Makefile
La seule option qui affecte ce style de sortie est (à partir de la version 3.1.0) l'option --human-readable (-h). La valeur par défaut est de
tailles de sortie en nombre d'octets avec séparateurs de chiffres (dans une colonne de 14 caractères de largeur). Spécifier au moins une opération -h
tion fait sortir les tailles avec des suffixes d'unité. Si vous souhaitez des tailles de nombre d'octets à l'ancienne sans séparateurs de chiffres (et
une colonne de 11 caractères de largeur) utilisez --no-h.
Note de compatibilité : lorsque vous demandez une liste à distance de fichiers à partir d'un rsync version 2.6.3 ou antérieure, vous pouvez
rencontrez une erreur si vous demandez un listing non récursif. En effet, une liste de fichiers implique l'option --dirs
sans --recursive, et les anciens rsyncs n'ont pas cette option. Pour éviter ce problème, spécifiez l'option --no-dirs
(si vous n'avez pas besoin d'étendre le contenu d'un répertoire), ou activez la récursion et excluez le contenu des sous-répertoires :
-r --exclude='/*/*'.
--bwlimit=TAUX
Cette option vous permet de spécifier le taux de transfert maximum pour les données envoyées via le socket, spécifié en unités par
deuxième. La valeur RATE peut être suffixée par une chaîne pour indiquer un multiplicateur de taille et peut être une valeur fractionnaire.
(par exemple --bwlimit=1,5m). Si aucun suffixe n'est spécifié, la valeur sera supposée être en unités de 1024 octets (comme si "K"
ou "KiB" avait été ajouté). Voir l'option --max-size pour une description de tous les suffixes disponibles. Une valeur de
0 ne spécifie aucune limite.
Pour des raisons de compatibilité descendante, la limite de débit sera arrondie à l'unité KiB la plus proche, donc aucun débit inférieur à
1024 octets par seconde sont possibles.
Rsync écrit les données sur le socket en blocs, et cette option limite à la fois la taille des blocs écrits par rsync,
et essaie de maintenir le taux de transfert moyen à la limite demandée. Une certaine rafale peut être observée là où rsync écrit
extrait un bloc de données, puis se met en veille pour mettre le débit moyen en conformité.
En raison de la mise en mémoire tampon interne des données, l'option --progress peut ne pas refléter avec précision la vitesse à laquelle les données sont traitées.
est envoyé. En effet, certains fichiers peuvent apparaître comme étant envoyés rapidement lorsque les données sont rapidement mises en mémoire tampon, alors que
d'autres peuvent apparaître comme très lents lors du vidage du tampon de sortie. Cela pourrait être corrigé dans une prochaine version.
Voir aussi la version démon de l'option --bwlimit.
--stop-after=MINS, (--time-limit=MINS)
Cette option indique à rsync d'arrêter la copie lorsque le nombre de minutes spécifié s'est écoulé.
Pour une flexibilité maximale, rsync ne communique pas cette option au rsync distant puisqu'il suffit généralement que
un côté de la connexion se ferme comme spécifié. Cela permet d'utiliser l'option même lorsqu'un seul côté de la connexion
tion le soutient. Vous pouvez informer le côté distant du délai en utilisant --remote-option (-M), si nécessaire
surgir.
La version --time-limit de cette option est obsolète.
--stop-at=ym-dTh:m
Cette option indique à rsync d'arrêter la copie lorsque le moment spécifié a été atteint. La date et l'heure peuvent être
entièrement spécifié dans un format numérique année-mois-jourheure:minute (par exemple 2000-12-31T23:59) dans le fuseau horaire local. Toi
peut choisir de séparer les numéros de date à l'aide de barres obliques au lieu de tirets.
La valeur peut également être abrégée de diverses manières, par exemple en spécifiant une année à 2 chiffres et/ou en supprimant divers
valeurs. Dans tous les cas, la valeur sera considérée comme étant le prochain moment possible où les informations fournies
allumettes. Si la valeur spécifie l'heure actuelle ou une heure passée, rsync se termine avec une erreur.
Par exemple, "1-30" précise le 30 janvier prochain (à minuit, heure locale), "14:00" précise 14 heures, "1"
précise le 1er du mois suivant à minuit, "31" précise le mois suivant où l'on peut s'arrêter le 31ème jour, et
":59" spécifie la 59ème minute suivante après l'heure.
Pour une flexibilité maximale, rsync ne communique pas cette option au rsync distant puisqu'il suffit généralement que
un côté de la connexion se ferme comme spécifié. Cela permet d'utiliser l'option même lorsqu'un seul côté de la connexion
tion le soutient. Vous pouvez informer le côté distant du délai en utilisant --remote-option (-M), si nécessaire
surgir. Gardez à l’esprit que l’hôte distant peut avoir un fuseau horaire par défaut différent de celui de votre hôte local.
--fsync
Demandez au côté récepteur de synchroniser chaque fichier terminé. Cela peut ralentir le transfert, mais peut contribuer à rétablir la paix.
d'esprit lors de la mise à jour des fichiers critiques.
--write-batch=FICHIER
Enregistrez un fichier qui pourra ensuite être appliqué à une autre destination identique avec --read-batch. Voir le "MODE BATCH"
pour plus de détails, ainsi que l'option --only-write-batch.
Cette option remplace les listes de somme de contrôle et de compression négociées et négocie toujours un choix basé sur la vieille école.
choix md5/md4/zlib. Si vous souhaitez un choix plus moderne, utilisez --checksum-choice (--cc) et/ou --compress-choice
(--zc)options.
--only-write-batch=FICHIER
Fonctionne comme --write-batch, sauf qu'aucune mise à jour n'est effectuée sur le système de destination lors de la création du lot. Ce
vous permet de transporter les modifications vers le système de destination via d'autres moyens, puis d'appliquer les modifications via --read-
lot.
Notez que vous pouvez librement écrire le lot directement sur certains supports portables : si ce support se remplit à pleine capacité,
Avant la fin du transfert, vous pouvez simplement appliquer ce transfert partiel à la destination et répéter le tout.
processus pour obtenir le reste des modifications (tant que cela ne vous dérange pas un système de destination partiellement mis à jour pendant que le
un cycle de plusieurs mises à jour est en cours).
Notez également que vous économisez uniquement de la bande passante lorsque vous transmettez des modifications à un système distant, car cela permet aux données par lots
être détourné de l'expéditeur vers le fichier batch sans avoir à passer par le câble jusqu'au destinataire (lorsque
en tirant, l'expéditeur est distant et ne peut donc pas écrire le lot).
--read-batch=FICHIER
Appliquez toutes les modifications stockées dans FILE, un fichier précédemment généré par --write-batch. Si FILE est -, les données du lot
sera lu à partir de l’entrée standard. Voir la section « MODE PAR LOT » pour plus de détails.
--protocole=NUM
Forcer l'utilisation d'une ancienne version du protocole. Ceci est utile pour créer un fichier batch compatible avec un
ancienne version de rsync. Par exemple, si rsync 2.6.4 est utilisé avec l'option --write-batch, mais que rsync 2.6.3 est
ce qui sera utilisé pour exécuter l'option --read-batch, vous devez utiliser "--protocol=28" lors de la création du fichier batch pour
forcer l'utilisation de l'ancienne version du protocole dans le fichier batch (en supposant que vous ne puissiez pas mettre à niveau le rsync lors de la lecture
système).
--iconv=CONVERT_SPEC
Rsync peut convertir les noms de fichiers entre les jeux de caractères en utilisant cette option. En utilisant un CONVERT_SPEC de "." dit à rsync de
recherchez le jeu de caractères par défaut via les paramètres régionaux. Alternativement, vous pouvez spécifier entièrement la conversion à effectuer
en donnant un jeu de caractères local et distant séparés par une virgule dans l'ordre --iconv=LOCAL,REMOTE, par exemple
--iconv=utf8,iso88591. Cet ordre garantit que l'option restera la même, que vous poussiez ou tiriez
des dossiers. Enfin, vous pouvez spécifier soit --no-iconv, soit un CONVERT_SPEC de "-" pour désactiver toute conversion. Le défaut
le réglage de cette option est spécifique au site et peut également être affecté via la variable d'environnement RSYNC_ICONV.
Pour une liste des noms de jeux de caractères pris en charge par votre bibliothèque iconv locale, vous pouvez exécuter "iconv --list".
Si vous spécifiez l'option --seulated-args (-s), rsync traduira les noms de fichiers que vous spécifiez sur la ligne de commande
qui sont envoyés à l’hôte distant. Voir aussi l'option --files-from.
Notez que rsync n'effectue aucune conversion des noms dans les fichiers de filtre (y compris les fichiers d'inclusion/exclusion). C'est à
vous assurer que vous spécifiez des règles de correspondance qui peuvent correspondre des deux côtés du transfert. Par exemple, vous
peut spécifier des règles d'inclusion/exclusion supplémentaires s'il existe des différences de nom de fichier des deux côtés qui doivent être prises en compte
pour.
Lorsque vous transmettez une option --iconv à un démon rsync qui l'autorise, le démon utilise le jeu de caractères spécifié dans son
Paramètre de configuration "charset" quel que soit le jeu de caractères distant que vous transmettez réellement. Ainsi, vous pouvez vous sentir libre de
spécifiez uniquement le jeu de caractères local pour un transfert de démon (par exemple --iconv=utf8).
--ipv4, -4 ou --ipv6, -6
Indique à rsync de préférer IPv4/IPv6 lors de la création de sockets ou de l'exécution de ssh. Cela affecte les sockets que rsync a directement
contrôle, comme le socket sortant lors du contact direct avec un démon rsync, ainsi que le transfert du
Option -4 ou -6 pour ssh lorsque rsync peut déduire que ssh est utilisé comme shell distant. Pour les autres shells distants
vous devrez spécifier directement l'option "--rsh SHELL -4" (ou quelles que soient les options d'indice IPv4/IPv6 qu'elle utilise).
Voir aussi la version démon de ces options.
Si rsync a été compilé sans prise en charge d'IPv6, l'option --ipv6 n'aura aucun effet. La sortie rsync --version
contiendra "pas d'IPv6" si c'est le cas.
--checksum-seed=NUM
Définissez la valeur de départ de la somme de contrôle sur l'entier NUM. Cette graine de contrôle de 4 octets est incluse dans chaque bloc et dans la somme de contrôle du fichier MD4.
calcul (les sommes de contrôle des fichiers MD5 les plus modernes n'utilisent pas de graine). Par défaut, la valeur de départ de la somme de contrôle est générée par le
serveur et par défaut l'heure actuelle (). Cette option est utilisée pour définir une valeur de départ de somme de contrôle spécifique, ce qui est utile pour
les applications qui souhaitent des sommes de contrôle de bloc répétables, ou dans le cas où l'utilisateur souhaite une valeur de départ de somme de contrôle plus aléatoire.
Définir NUM sur 0 oblige rsync à utiliser la valeur par défaut de time() pour la graine de contrôle.
OPTIONS DU DÉMON
Les options autorisées lors du démarrage d'un démon rsync sont les suivantes :
--démon
Cela indique à rsync qu'il doit s'exécuter en tant que démon. Le démon que vous démarrez est accessible à l'aide d'un client rsync
en utilisant la syntaxe host::module ou rsync://host/module/.
Si l'entrée standard est une socket, rsync supposera qu'elle est exécutée via inetd, sinon elle se détachera de
le terminal actuel et devenez un démon d'arrière-plan. Le démon lira le fichier de configuration (rsyncd.conf) sur chaque connexion.
nect effectué par un client et répondre aux demandes en conséquence.
Consultez la page de manuel rsyncd.conf(5) pour plus de détails.
--adresse=ADRESSE
Par défaut, rsync se liera à l'adresse générique lorsqu'il sera exécuté en tant que démon avec l'option --daemon. L'opération --address
tion vous permet de spécifier une adresse IP (ou un nom d'hôte) spécifique à laquelle vous lier. Cela rend l'hébergement virtuel possible dans
en conjonction avec l'option --config.
Voir également l'option globale d'adresse dans la page de manuel rsyncd.conf et la version client de l'option --address.
--bwlimit=TAUX
Cette option vous permet de spécifier le taux de transfert maximum pour les données que le démon envoie via le socket. Le
le client peut toujours spécifier une valeur --bwlimit plus petite, mais aucune valeur plus grande ne sera autorisée.
Voir la version client de l'option --bwlimit pour quelques détails supplémentaires.
--config=FICHIER
Ceci spécifie un fichier de configuration alternatif à celui par défaut. Ceci n'est pertinent que lorsque --daemon est spécifié. Le dé‐
L'erreur est /etc/rsyncd.conf sauf si le démon s'exécute sur un programme shell distant et que l'utilisateur distant n'est pas le su‐
par utilisateur ; dans ce cas, la valeur par défaut est rsyncd.conf dans le répertoire courant (généralement $HOME).
--dparam = REMPLACEMENT, -M
Cette option peut être utilisée pour définir un paramètre daemon-config lors du démarrage de rsync en mode démon. C'est équivalent à
ajout du paramètre à la fin des paramètres globaux avant la définition du premier module. Les noms des paramètres
peut être spécifié sans espaces, si vous le désirez. Par exemple:
rsync --daemon -M pidfile=/path/rsync.pid
--pas de détachement
Lorsqu'elle est exécutée en tant que démon, cette option indique à rsync de ne pas se détacher et de devenir un processus en arrière-plan. Cette opération
tion est requise lors de l'exécution en tant que service sur Cygwin, et peut également être utile lorsque rsync est supervisé par un programme
tels que daemontools ou le contrôleur de ressources système d'AIX. --no-detach est également recommandé lorsque rsync est exécuté sous un
débogueur. Cette option n'a aucun effet si rsync est exécuté depuis inetd ou sshd.
--port=PORT
Ceci spécifie un autre numéro de port TCP sur lequel le démon doit écouter plutôt que le numéro par défaut de 873.
Consultez également la version client de l'option --port et le paramètre global de port dans la page de manuel rsyncd.conf.
--log-file=FICHIER
Cette option indique au démon rsync d'utiliser le nom du fichier journal donné au lieu d'utiliser le paramètre "fichier journal" dans la configuration.
fichier fig.
Voir aussi la version client de l'option --log-file.
--log-file-format=FORMAT
Cette option indique au démon rsync d'utiliser la chaîne FORMAT donnée au lieu d'utiliser le paramètre "format de journal" dans le fichier
fichier de configuration. Il active également la « journalisation des transferts » sauf si la chaîne est vide, auquel cas la journalisation des transferts est activée
désactivé.
Voir également la version client de l'option --log-file-format.
--sockopts
Cela remplace le paramètre des options de socket dans le fichier rsyncd.conf et a la même syntaxe.
Voir aussi la version client de l'option --sockopts.
--verbeux, -v
Cette option augmente la quantité d'informations enregistrées par le démon pendant sa phase de démarrage. Une fois le client connecté,
le niveau de verbosité du démon sera contrôlé par les options utilisées par le client et le paramètre « verbosité maximale »
dans la section de configuration du module.
Voir aussi la version client de l'option --verbose.
--ipv4, -4 ou --ipv6, -6
Indique à rsync de préférer IPv4/IPv6 lors de la création des sockets entrants que le démon rsync utilisera pour écouter les connexions.
connexions. L'une de ces options peut être requise dans les anciennes versions de Linux pour contourner un bogue IPv6 dans le noyau.
(si vous voyez une erreur "adresse déjà utilisée" alors que rien d'autre n'utilise le port, essayez de spécifier --ipv6 ou --ipv4
au démarrage du démon).
Voir aussi la version client de ces options.
Si rsync a été compilé sans prise en charge d'IPv6, l'option --ipv6 n'aura aucun effet. La sortie rsync --version
contiendra "pas d'IPv6" si c'est le cas.
--aide, -h
Lorsqu'il est spécifié après --daemon, imprime une courte page d'aide décrivant les options disponibles pour démarrer un démon rsync.
RÈGLES DE FILTRE
Les règles de filtrage permettent un contrôle personnalisé de plusieurs aspects de la façon dont les fichiers sont traités :
o Contrôler les fichiers que le côté expéditeur place dans la liste de fichiers qui décrit la hiérarchie de transfert
o Contrôler quels fichiers le côté destinataire protège contre la suppression lorsque le fichier ne figure pas dans la liste de fichiers de l'expéditeur
o Contrôler quels noms d'attributs étendus sont ignorés lors de la copie de xattrs
Les règles sont soit directement spécifiées via des arguments d'option, soit elles peuvent être lues à partir d'un ou plusieurs fichiers. La règle du filtre
les fichiers peuvent même faire partie de la hiérarchie des fichiers copiés, affectant différentes parties de l'arborescence de différentes manières.
RÈGLES SIMPLES D'INCLUSION/EXCLUSION
Nous aborderons d'abord les bases de la façon dont les règles d'inclusion et d'exclusion affectent les fichiers transférés, en ignorant tout côté de suppression.
effets. Les règles de filtrage affectent principalement le contenu des répertoires dans lesquels rsync effectue une « récursion », mais elles peuvent également affecter un
élément de niveau supérieur dans le transfert qui a été spécifié comme argument.
La valeur par défaut pour tout fichier/répertoire sans correspondance est qu'il soit inclus dans le transfert, ce qui place le fichier/répertoire dans le répertoire de l'expéditeur.
liste de fichiers. L'utilisation d'une règle d'exclusion entraîne l'exclusion d'un ou plusieurs fichiers/répertoires correspondants de la liste de fichiers de l'expéditeur. Un
La règle d'inclusion peut être utilisée pour limiter l'effet d'une règle d'exclusion qui correspond à trop de fichiers.
L’ordre des règles est important car la première règle qui correspond est celle qui entre en vigueur. Ainsi, si un début
La règle exclut un fichier, aucune règle d'inclusion qui vient après ne peut avoir d'effet. Cela signifie que vous devez placer n'importe quel include
remplace quelque part avant l'exclusion qu'il est censé limiter.
Lorsqu'un répertoire est exclu, tous ses contenus et sous-contenus sont également exclus. L'expéditeur ne parcourt aucun des
pas du tout, ce qui peut faire gagner beaucoup de temps en sautant de gros sous-arbres inutiles.
Il est également important de comprendre que les règles d'inclusion/exclusion sont appliquées à chaque fichier et répertoire auquel l'expéditeur appartient.
récurrent dans. Ainsi, si vous souhaitez qu'un fichier profond particulier soit inclus, vous devez vous assurer qu'aucun des répertoires
qui doivent être parcourus en descendant vers ce fichier sont exclus, sinon le fichier ne sera jamais découvert pour être inclus.
A titre d'exemple, si le répertoire "a/path" a été donné comme argument de transfert et que vous souhaitez vous assurer que le fichier
"a/path/down/deep/wanted.txt" fait partie du transfert, alors l'expéditeur ne doit pas exclure les répertoires "a/path",
"a/path/down" ou "a/path/down/deep" car il permet d'analyser l'arborescence des fichiers.
Lorsque vous travaillez sur les règles, il peut être utile de demander à rsync de vous indiquer ce qui est exclu/inclus et pourquoi.
Spécifier --debug=FILTER ou (lors de l'extraction de fichiers) -M--debug=FILTER active le niveau 1 des informations de débogage FILTER qui
affichera un message chaque fois qu'un fichier ou un répertoire est inclus ou exclu et à quelle règle il correspond. Commençant en
3.2.4 il avertira également si une règle de filtrage a un espace à la fin, puisqu'une exclusion de "foo " (avec un espace à la fin)
n'exclut pas un fichier nommé "foo".
Les règles d'exclusion et d'inclusion peuvent spécifier des RÈGLES DE CORRESPONDANCE DE MOTIFS génériques (similaires aux caractères génériques shell) qui vous permettent de faire correspondre
des choses comme un suffixe de fichier ou une partie d'un nom de fichier.
Une règle peut être limitée à affecter uniquement un répertoire en plaçant une barre oblique finale sur le nom de fichier.
EXEMPLE SIMPLE D’INCLUSION/EXCLUSION
Avec l'arborescence de fichiers suivante créée du côté expéditeur :
mkdirx/
touchez x/file.txt
mkdir x/y/
touchez x/y/file.txt
touchez x/y/zzz.txt
mkdir x/z/
touchez x/z/file.txt
Ensuite, la commande rsync suivante transférera le fichier "x/y/file.txt" et les répertoires nécessaires pour le contenir, ce qui entraînera
le chemin "/tmp/x/y/file.txt" existant sur l'hôte distant :
rsync -ai -f'+ x/' -f'+ x/y/' -f'+ x/y/file.txt' -f'- *' x hôte:/tmp/
A part : cette copie aurait également pu être réalisée en utilisant l'option -R (bien que les 2 commandes se comportent différemment si elles sont supprimées).
sont activées) :
rsync -aiR x/y/file.txt hôte :/tmp/
La commande suivante ne nécessite pas d'inclusion du répertoire "x" car elle ne fait pas partie du transfert (notez le
barre oblique finale). L'exécution de cette commande copierait uniquement "/tmp/x/file.txt" car les répertoires "y" et "z" seraient exclus :
rsync -ai -f'+ fichier.txt' -f'- *' x/ hôte:/tmp/x/
Cette commande omettrait le fichier zzz.txt lors de la copie de "x" et de tout ce qu'il contient :
rsync -ai -f'- zzz.txt' x hôte :/tmp/
RÈGLES DE FILTRE LORS DE LA SUPPRESSION
Par défaut, les règles de filtrage d'inclusion et d'exclusion affectent à la fois l'expéditeur (lorsqu'il crée sa liste de fichiers) et le destinataire (lorsqu'il crée sa liste de fichiers).
crée ses listes de fichiers pour calculer les suppressions). Si aucune option de suppression n'est active, le récepteur ignore la création du
listes de fichiers liées à la suppression. Cette valeur par défaut bilatérale peut être remplacée manuellement afin que vous spécifiiez uniquement les règles de l'expéditeur.
ou les règles du récepteur, comme décrit dans la section RÈGLES DE FILTRE EN PROFONDEUR.
Lors de la suppression, une exclusion protège un fichier contre la suppression du côté récepteur tandis qu'une inclusion remplace cette protection.
tion (ce qui expose le fichier à un risque de suppression). Par défaut, un fichier est à risque : sa sécurité dépend de sa correspondance avec un
fichier correspondant de l'expéditeur.
Un exemple de l’effet d’exclusion double face peut être illustré par la copie d’un répertoire de développement C entre 2 systèmes.
Lorsque vous effectuez une copie de retouche, vous souhaiterez peut-être ignorer la copie de l'exécutable construit et des fichiers .o (masquer l'expéditeur) afin que le
Le côté récepteur peut créer le sien et ne perdre aucun fichier objet déjà correct (protection du récepteur). Par exemple:
rsync -ai --del -f'- *.o' -f'- cmd' hôte src :/dest/
Notez qu'utiliser -f'-p *.o' est encore mieux que -f'- *.o' s'il y a un risque que la structure des répertoires ait changé.
Le modificateur « p » est abordé dans MODIFICATEURS DE RÈGLES DE FILTRE.
Une dernière remarque, si votre shell ne craint pas les caractères génériques non développés, vous pouvez nous simplifier la saisie des options de filtre.
mettre un trait de soulignement à la place de l'espace et laisser de côté les guillemets. Par exemple, -f -_*.o -f -_cmd (et similaire) pourrait être
utilisé à la place des options de filtre ci-dessus.
RÈGLES DE FILTRAGE EN PROFONDEUR
Rsync prend en charge les règles d'inclusion/exclusion d'ancien style et les règles de filtre de nouveau style. Les anciennes règles sont spécifiées en utilisant --include
et --exclude ainsi que --include-from et --exclude-from. Leur comportement est limité mais ils ne nécessitent pas de "-"
ou le préfixe "+". Une règle d'exclusion à l'ancienne est transformée en une règle de filtre "- nom" (sans modificateur) et une règle d'inclusion à l'ancienne
La règle est transformée en règle de filtre "+ nom" (sans modificateurs).
Rsync crée une liste ordonnée de règles de filtrage comme spécifié sur la ligne de commande et/ou lu à partir des fichiers. Nouveau filtre de style
les règles ont la syntaxe suivante :
RÈGLE [PATTERN_OR_FILENAME]
RÈGLE, MODIFICATEURS [PATTERN_OR_FILENAME]
Vous avez le choix d'utiliser des noms de RÈGLE courts ou longs, comme décrit ci-dessous. Si vous utilisez une règle avec un nom court, le ','
séparer la RÈGLE des MODIFICATEURS est facultatif. Le PATTERN ou FILENAME qui suit (lorsqu'il est présent) doit venir après ei‐
il y a un seul espace ou un trait de soulignement (_). Tous les espaces et/ou traits de soulignement supplémentaires sont considérés comme faisant partie du texte.
nom de sterne. Voici les préfixes de règles disponibles :
exclure, '-'
spécifie un modèle d'exclusion qui (par défaut) est à la fois un masquage et une protection.
inclure, '+'
spécifie un modèle d'inclusion qui (par défaut) est à la fois une exposition et un risque.
fusionner, '.'
spécifie un fichier de fusion côté client à lire pour plus de règles.
répertoire-fusion, ':'
spécifie un fichier de fusion par répertoire. L'utilisation de ce type de règle de filtrage nécessite que vous fassiez confiance au fil du côté expéditeur.
après vérification, cela a donc l'effet secondaire mentionné sous l'option --trust-sender.
cacher, 'H'
spécifie un modèle pour masquer les fichiers du transfert. Équivalent à une exclusion de l'expéditeur uniquement, donc -f'H foo' pourrait également
être spécifié comme -f'-s foo'.
montre'
les fichiers qui correspondent au modèle ne sont pas masqués. Équivalent à une inclusion réservée à l'expéditeur, donc -f'S foo' pourrait également être spécifique
classé comme -f'+s foo'.
protéger, 'P'
spécifie un modèle pour protéger les fichiers contre la suppression. Équivalent à une exclusion réservée au récepteur, donc -f'P foo' pourrait
également être spécifié comme -f'-r foo'.
risque, 'R'
les fichiers qui correspondent au modèle ne sont pas protégés. Équivalent à une inclusion réservée au récepteur, donc -f'R foo' pourrait également être
spécifié comme -f'+r foo'.
clair, '!'
efface la liste d'inclusion/exclusion actuelle (ne prend aucun argument)
Lorsque les règles sont lues à partir d'un fichier (à l'aide d'une fusion ou d'une fusion de répertoire), les lignes vides sont ignorées, tout comme les commentaires sur des lignes entières qui
commencez par un « # » (les règles de nom de fichier contenant un caractère dièse ne sont pas affectées).
Notez également que les options --filter, --include et --exclude prennent chacune une règle/un modèle. Pour en ajouter plusieurs, vous pouvez re‐
Choisissez les options sur la ligne de commande, utilisez la syntaxe de fichier de fusion de l'option --filter ou l'option --include-from / --exclude-
à partir des options.
RÈGLES DE CORRESPONDANCE DE MODÈLE
La plupart des règles mentionnées ci-dessus prennent un argument qui spécifie à quoi la règle doit correspondre. Si rsync est récurrent via
une hiérarchie de répertoires, gardez à l'esprit que chaque modèle est comparé au nom de chaque répertoire dans le chemin de descente, comme
rsync trouve les noms de fichiers à envoyer.
Les règles de correspondance pour l'argument modèle prennent plusieurs formes :
o Si un modèle contient un / (sans compter une barre oblique finale) ou un "**" (qui peut correspondre à une barre oblique), alors le modèle est
comparé au chemin d'accès complet, y compris les répertoires principaux du transfert. Si le modèle ne correspond pas
contient un (sans fin) / ou un "**", alors il est comparé uniquement au composant final du nom de fichier ou du chemin d'accès.
nom. Par exemple, foo signifie que le composant final du chemin doit être "foo" alors que foo/bar correspondrait aux 2 derniers éléments.
éléments du chemin (tant que les deux éléments sont dans le transfert).
o Un modèle qui se termine par un / correspond uniquement à un répertoire, pas à un fichier, un lien symbolique ou un périphérique normal.
o Un motif qui commence par un / est ancré au début du chemin de transfert plutôt qu'à la fin. Par exemple,
/foo/** ou /foo/bar/** correspondent uniquement aux éléments de début du chemin. Si la règle est lue à partir d'un filtre par répertoire
fichier, le chemin de transfert correspondant commencera au niveau du fichier filtre au lieu du début du transfert.
Voir la section sur l'ANCRAGE DES MOTIFS D'INCLUDE/EXCLUDE pour une discussion complète sur la façon de spécifier un modèle qui correspond
à l'origine du transfert.
Rsync choisit entre une simple correspondance de chaîne et une correspondance de caractères génériques en vérifiant si le modèle contient l'un de ces éléments.
trois caractères génériques : '*', '?' et '[' :
ouais '?' correspond à n’importe quel caractère à l’exception d’une barre oblique (/).
oa '*' correspond à zéro ou plusieurs caractères autres que des barres obliques.
oa '**' correspond à zéro ou plusieurs caractères, y compris les barres obliques.
oa '[' introduit une classe de caractères, telle que [az] ou [[:alpha:]], qui doit correspondre à un caractère.
oa *** de fin dans le modèle est un raccourci qui vous permet de faire correspondre un répertoire et tout son contenu à l'aide d'un seul
règle. Par exemple, spécifier "nom_rép/***" fera correspondre à la fois le répertoire "nom_rép" (comme si "nom_rép/" avait été
spécifié) et tout ce qui se trouve dans le répertoire (comme si "nom_rép/**" avait été spécifié).
o une barre oblique inverse peut être utilisée pour échapper à un caractère générique, mais elle n'est interprétée comme un caractère d'échappement que si au moins
un caractère générique est présent dans le modèle de correspondance. Par exemple, le motif "foo\\bar" correspond à ce seul arrière-plan.
slash littéralement, alors que le motif "foo\\bar*" devrait être remplacé par "foo\\\\bar*" pour éviter que le "\\b" ne devienne simplement
"b".
Voici quelques exemples de correspondance exclure/inclure :
o L'option -f'- *.o' exclurait tous les noms de fichiers se terminant par .o
o L'option -f'- /foo' exclurait un fichier (ou répertoire) nommé foo dans le répertoire racine du transfert
o L'option -f'- foo/' exclurait tout répertoire nommé foo
o L'option -f'- foo/*/bar' exclurait tout fichier/répertoire nommé bar qui se trouve à deux niveaux en dessous d'un répertoire nommé foo (si
foo est dans le transfert)
o L'option -f'- /foo/**/bar' exclurait tout fichier/répertoire nommé bar qui se trouvait à deux niveaux ou plus en dessous d'un répertoire de niveau supérieur.
nommé foo (notez que /foo/bar n'est pas exclu par ceci)
o Options -f'+ */' -f'+ *.c' -f'- *' inclurait tous les répertoires et fichiers sources .c mais rien d'autre
o Options -f'+ foo/' -f'+ foo/bar.c' -f'- *' inclurait uniquement le répertoire foo et foo/bar.c (le répertoire foo doit
être explicitement inclus ou il serait exclu par le "- *")
MODIFICATEURS DE RÈGLES DE FILTRE
Les modificateurs suivants sont acceptés après une règle d'inclusion (+) ou d'exclusion (-) :
o A / spécifie que la règle d'inclusion/exclusion doit être comparée au nom de chemin absolu de l'élément actuel. Pour
Par exemple, -f'-/ /etc/passwd' exclurait le fichier passwd à chaque fois que le transfert envoyait des fichiers depuis le répertoire "/etc".
rectory, et "-/ subdir/foo" exclurait toujours "foo" lorsqu'il se trouve dans un répertoire nommé "subdir", même si "foo" est au
racine du transfert en cours.
oUn ! spécifie que l'inclusion/exclusion doit prendre effet si le modèle ne correspond pas. Par exemple, -f'-! */'
exclurait tous les non-répertoires.
o AC est utilisé pour indiquer que toutes les règles globales d'exclusion CVS doivent être insérées comme exclusions à la place du "-C".
Aucun argument ne devrait suivre.
o Un s est utilisé pour indiquer que la règle s'applique au côté expéditeur. Lorsqu'une règle affecte le côté expéditeur, elle affecte
quels fichiers sont placés dans la liste de fichiers de l'expéditeur. Par défaut, une règle affecte les deux côtés, sauf si --delete-ex‐
clus a été spécifié, auquel cas les règles par défaut deviennent uniquement du côté de l'expéditeur. Voir aussi les règles cacher (H) et afficher (S),
qui constituent une autre manière de spécifier les inclusions/exclusions côté envoi.
o Un r est utilisé pour indiquer que la règle s'applique au côté récepteur. Lorsqu'une règle affecte le camp qui reçoit, elle
empêche la suppression des fichiers. Voir le modificateur s pour plus d'informations. Voir aussi les règles de protection (P) et de risque (R),
qui constituent une autre manière de spécifier les inclusions/exclusions côté récepteur.
o Un p indique qu'une règle est périssable, ce qui signifie qu'elle est ignorée dans les répertoires en cours de suppression. Pour en‐
position, les règles par défaut de l'option --cvs-exclude (-C) qui excluent des éléments comme "CVS" et "*.o" sont marquées comme périssables.
capable, et n’empêchera pas qu’un répertoire qui a été supprimé sur la source soit supprimé sur la destination.
o Un x indique qu'une règle affecte les noms xattr dans les opérations de copie/suppression xattr (et est donc ignorée lors de la correspondance
noms de fichiers/répertoires). Si aucune règle de correspondance xattr n'est spécifiée, une règle de filtrage xattr par défaut est utilisée (voir le paramètre --xattrs
option).
RÈGLES DE FILTRE DE FUSION DE FICHIERS
Vous pouvez fusionner des fichiers entiers dans vos règles de filtre en spécifiant une règle de filtre de fusion (.) ou de fusion de répertoire (:) (en guise d'introduction).
(voir la section RÈGLES DE FILTRE ci-dessus).
Il existe deux types de fichiers fusionnés : à instance unique ('.') et par répertoire (':'). Un fichier de fusion à instance unique est lu
une fois, et ses règles sont incorporées dans la liste de filtres à la place du "." règle. Pour les fichiers de fusion par répertoire,
rsync analysera chaque répertoire qu'il traverse pour le fichier nommé, fusionnant son contenu lorsque le fichier existe dans le
liste actuelle des règles héritées. Ces fichiers de règles par répertoire doivent être créés du côté expéditeur car il s'agit du serveur d'envoi.
côté ing qui est analysé pour les fichiers disponibles à transférer. Ces fichiers de règles devront peut-être également être transférés vers le
côté réception si vous souhaitez qu'ils affectent les fichiers qui ne sont pas supprimés (voir RÈGLES PAR RÉPERTOIRE ET SUPPRESSION ci-dessous).
Quelques exemples:
fusionner /etc/rsync/default.rules
. /etc/rsync/default.rules
fusion de répertoires .per-dir-filter
dir-merge,n- .non-inherited-per-dir-exclus
:n- .non-inherited-per-dir-exclus
Les modificateurs suivants sont acceptés après une règle de fusion ou de fusion de répertoire :
o A - spécifie que le fichier doit être constitué uniquement de modèles d'exclusion, sans aucune autre analyse de règles, à l'exception des modèles intégrés au fichier.
commentaires.
o A + spécifie que le fichier doit être constitué uniquement de modèles d'inclusion, sans autre analyse de règles, à l'exception de celles contenues dans le fichier.
commentaires.
o AC est un moyen de spécifier que le fichier doit être lu d'une manière compatible CVS. Cela active 'n', 'w' et '-',
mais permet également de spécifier le jeton d'effacement de liste (!). Si aucun nom de fichier n'est fourni, ".cvsignore" est supposé.
o A e exclura le nom du fichier de fusion du transfert ; par exemple, "dir-merge,e .rules" est comme "dir-merge .rules" et "-
.règles".
o An n précise que les règles ne sont pas héritées par les sous-répertoires.
o A w spécifie que les règles sont divisées en mots sur des espaces au lieu de la division de ligne normale. Cela s'éteint également
commentaires. Remarque : l'espace qui sépare le préfixe de la règle est traité spécialement, donc "- foo + bar" est analysé
comme deux règles (en supposant que l'analyse des préfixes n'a pas également été désactivée).
o Vous pouvez également spécifier n'importe lequel des modificateurs pour les règles "+" ou "-" (ci-dessus) afin que les règles lues
dans la valeur par défaut du fichier, ce modificateur est défini (sauf pour le modificateur !, qui ne serait pas utile). Pour en‐
position, "merge,-/ .excl" traiterait le contenu de .excl comme un chemin absolu exclu, tandis que "dir-merge,s .filt" et
":sC" ferait en sorte que toutes leurs règles par répertoire s'appliquent uniquement du côté expéditeur. Si la règle de fusion spécifie
côtés à affecter (via le modificateur s ou r ou les deux), alors les règles du fichier ne doivent pas spécifier de côtés (via un modificateur
ou un préfixe de règle tel que hide).
Les règles par répertoire sont héritées dans tous les sous-répertoires du répertoire où le fichier de fusion a été trouvé, sauf si la modification 'n'
le feu a été utilisé. Les règles de chaque sous-répertoire sont préfixées aux règles héritées par répertoire de ses parents, ce qui donne
les règles les plus récentes ont une priorité plus élevée que les règles héritées. L'ensemble des règles de fusion de répertoires est regroupé dans le
l'endroit où le fichier de fusion a été spécifié, il est donc possible de remplacer les règles de fusion de répertoires via une règle spécifiée précédemment
dans la liste des règles globales. Lorsque la règle d'effacement de liste ("!") est lue à partir d'un fichier par répertoire, elle efface uniquement l'héritage.
règles définies pour le fichier de fusion actuel.
Une autre façon d'empêcher l'héritage d'une seule règle d'un fichier de fusion de répertoires consiste à l'ancrer avec une barre oblique de début. Un-
les règles chorées dans un fichier de fusion par répertoire sont relatives au répertoire du fichier de fusion, donc un modèle "/foo" ne correspondrait qu'à
le fichier "foo" dans le répertoire où le fichier de filtre de fusion de répertoires a été trouvé.
Voici un exemple de fichier de filtre que vous spécifieriez via --filter=". file" :
fusionner /home/user/.global-filter
- *.gz
dir-merge .rules
+ *.[ch]
- *.o
-foo*
Cela fusionnera le contenu du fichier /home/user/.global-filter au début de la liste et transformera également le ".rules".
filename dans un fichier de filtre par répertoire. Toutes les règles lues avant le début de l'analyse du répertoire suivent l'analyse globale.
règles de choring (c'est-à-dire qu'une barre oblique correspond à la racine du transfert).
Si un fichier de fusion par répertoire est spécifié avec un chemin qui est un répertoire parent du premier répertoire de transfert, rsync
analysera tous les répertoires parents de ce point de départ vers le répertoire de transfert pour le fichier par répertoire indiqué. Pour
Par exemple, voici un filtre commun (voir -F) :
--filter=': /.rsync-filter'
Cette règle indique à rsync de rechercher le fichier .rsync-filter dans tous les répertoires, de la racine au répertoire parent.
du transfert avant le début de l'analyse normale des répertoires du fichier dans les répertoires envoyés dans le cadre de
le transfert. (Remarque : pour un démon rsync, la racine est toujours la même que le "chemin" du module.)
Quelques exemples de cette pré-analyse des fichiers par répertoire :
rsync -avF /src/chemin/ /dest/rép
rsync -av --filter=': ../../.rsync-filter' /src/path/ /dest/dir
rsync -av --filter=' : .rsync-filter' /src/path/ /dest/dir
Les deux premières commandes ci-dessus rechercheront ".rsync-filter" dans "/" et "/src" avant que l'analyse normale ne commence à rechercher le
fichier dans "/src/path" et ses sous-répertoires. La dernière commande évite l'analyse du répertoire parent et recherche uniquement le ".rsync-fil‐
ter" dans chaque répertoire faisant partie du transfert.
Si vous souhaitez inclure le contenu d'un ".cvsignore" dans vos modèles, vous devez utiliser la règle ":C", qui crée un répertoire.
fusion du fichier .cvsignore, mais analysé de manière compatible CVS. Vous pouvez l'utiliser pour affecter l'emplacement du --cvs-exclude
(-C) l'inclusion du fichier .cvsignore par répertoire est placée dans vos règles en plaçant le ":C" partout où vous
comme dans vos règles de filtrage. Sans cela, rsync ajouterait la règle de fusion de répertoires pour le fichier .cvsignore à la fin de tous vos fichiers.
d'autres règles (en lui donnant une priorité inférieure à vos règles de ligne de commande). Par exemple:
chat ≶sortie.dat
puis regardez out.dat. Si tout fonctionne correctement, out.dat devrait être un fichier de longueur nulle. Si vous obtenez le
erreur ci-dessus de rsync, vous constaterez probablement que out.dat contient du texte ou des données. Regardez le contenu et essayez de
déterminer ce qui le produit. La cause la plus courante est la configuration incorrecte des scripts de démarrage du shell (tels que .cshrc ou
.profile) qui contiennent des instructions de sortie pour les connexions non interactives.
Si vous rencontrez des difficultés pour déboguer les modèles de filtre, essayez de spécifier l'option -vv. À ce niveau de verbosité, rsync
montrera pourquoi chaque fichier individuel est inclus ou exclu.
VALEURS DE SORTIE
o 0 - Succès
o 1 - Erreur de syntaxe ou d'utilisation
o 2 - Incompatibilité de protocole
o 3 - Erreurs lors de la sélection des fichiers d'entrée/sortie, répertoires
o 4 - Action demandée non prise en charge. Soit:
o une tentative a été faite pour manipuler des fichiers 64 bits sur une plate-forme qui ne peut pas les prendre en charge
o une option a été spécifiée et est prise en charge par le client et non par le serveur
o 5 - Erreur lors du démarrage du protocole client-serveur
o 6 - Démon incapable d'ajouter au fichier journal
o 10 - Erreur dans le socket I/O
o 11 - Erreur dans les E/S du fichier
o 12 - Erreur dans le flux de données du protocole rsync
o 13 - Erreurs avec les diagnostics du programme
o 14 - Erreur dans le code IPC
o 20 - SIGUSR1 ou SIGINT reçu
o 21 - Une erreur renvoyée par waitpid()
o 22 - Erreur lors de l'allocation des tampons de mémoire principale
o 23 - Transfert partiel dû à une erreur
o 24 - Transfert partiel en raison de fichiers sources disparus
o 25 - La limite --max-delete a arrêté les suppressions
o 30 - Délai d'expiration dans l'envoi/réception de données
o 35 - Délai d'attente pour la connexion du démon
VARIABLES D'ENVIRONNEMENT
CVSIGNEUR
La variable d'environnement CVSIGNORE complète tous les modèles d'ignorance dans les fichiers .cvsignore. Voir l'option --cvs-exclude
pour plus de détails.
RSYNC_ICONV
Spécifiez un paramètre --iconv par défaut à l'aide de cette variable d'environnement. Pris en charge pour la première fois dans la version 3.0.0.
RSYNC_OLD_ARGS
Spécifiez un "1" si vous souhaitez que l'option --old-args soit activée par défaut, un "2" (ou plus) si vous souhaitez qu'elle soit activée.
activé dans l'état d'option répétée, ou un "0" pour vous assurer qu'il est désactivé par défaut. Lorsque cet environnement varie
able est défini sur une valeur non nulle, il remplace la variable RSYNC_PROTECT_ARGS.
Cette variable est ignorée si --old-args, --no-old-args ou --seulated-args est spécifié sur la ligne de commande.
Pris en charge pour la première fois en 3.2.4.
RSYNC_PROTECT_ARGS
Spécifiez une valeur numérique différente de zéro si vous souhaitez que l'option --seulated-args soit activée par défaut, ou une valeur zéro pour
assurez-vous qu'il est désactivé par défaut.
Cette variable est ignorée si --seulated-args, --no-seulated-args ou --old-args est spécifié sur la ligne de commande.
Pris en charge pour la première fois dans la version 3.1.0. À partir de la version 3.2.4, cette variable est ignorée si RSYNC_OLD_ARGS est défini sur une valeur non nulle.
RSYNC_RSH
Cette variable d'environnement vous permet de remplacer le shell par défaut utilisé comme transport pour rsync. Opération de ligne de commande
Les options sont autorisées après le nom de la commande, tout comme dans l'option --rsh (-e).
RSYNC_PROXY
Cette variable d'environnement vous permet de rediriger votre client rsync pour utiliser un proxy Web lors de la connexion à un rsync
démon. Vous devez définir RSYNC_PROXY sur une paire nom d'hôte:port.
RSYNC_PASSWORD
Cette variable d'environnement vous permet de définir le mot de passe pour une connexion au démon rsync, ce qui évite le mot de passe
rapide. Notez que cela ne fournit pas de mot de passe à un transport shell distant tel que ssh (consultez sa documentation
pour savoir comment faire cela).
UTILISATEUR ou LOGNAME
Les variables d'environnement USER ou LOGNAME sont utilisées pour déterminer le nom d'utilisateur par défaut envoyé à un démon rsync. Si
ni l'un ni l'autre n'est défini, le nom d'utilisateur par défaut est "nobody". Si les deux sont définis, USER est prioritaire.
RSYNC_PARTIAL_DIR
Cette variable d'environnement spécifie le répertoire à utiliser pour un transfert --partial sans impliquer que ce transfert soit partiel.
les transferts soient activés. Voir l'option --partial-dir pour plus de détails.
RSYNC_COMPRESS_LIST
Cette variable d'environnement permet de personnaliser la négociation de l'algorithme de compression en spécifiant un al‐
ordre alterné ou liste réduite de noms. Utilisez la commande rsync --version pour voir les noms de compression disponibles.
Voir l'option --compress pour plus de détails.
RSYNC_CHECKSUM_LIST
Cette variable d'environnement vous permet de personnaliser la négociation de l'algorithme de somme de contrôle en spécifiant une modification.
un ordre précis ou une liste réduite de noms. Utilisez la commande rsync --version pour voir les noms de somme de contrôle disponibles. Voir le
--checksum-choice option pour plus de détails.
RSYNC_MAX_ALLOC
Cette variable d'environnement définit une allocation maximale comme si vous aviez utilisé l'option --max-alloc.
RSYNC_PORT
Cette variable d'environnement n'est pas lue par rsync, mais est définie dans son sous-environnement lorsque rsync exécute le
shell distant en combinaison avec une connexion démon. Cela permet à un script tel que rsync-ssl de connaître le
numéro de port que l'utilisateur a spécifié sur la ligne de commande.
HOME Cette variable d'environnement est utilisée pour trouver le fichier .cvsignore par défaut de l'utilisateur.
RSYNC_CONNECT_PROG
Cette variable d'environnement est principalement utilisée dans les configurations de débogage pour définir le programme à utiliser lors de l'établissement d'une connexion démon.
Voir CONNEXION À UN DÉMON RSYNC pour plus de détails.
RSYNC_SHELL
Cette variable d'environnement est principalement utilisée dans les configurations de débogage pour définir le programme à utiliser pour exécuter le programme spécifié par
RSYNC_CONNECT_PROG. Voir CONNEXION À UN DÉMON RSYNC pour plus de détails.
DES DOSSIERS
/etc/rsyncd.conf ou rsyncd.conf
VOIR ÉGALEMENT
rsync-ssl(1), rsyncd.conf(5), rrsync(1)
BUGS
- Les temps sont transférés sous forme de valeurs * nix time_t.
- Lors du transfert vers des systèmes de fichiers FAT, rsync peut resynchroniser les fichiers non modifiés. Voir les commentaires sur l'opération --modify-window tion.
- Les autorisations de fichiers, les appareils, etc. sont transférés sous forme de valeurs numériques natives.
- Voir aussi les commentaires sur l'option --delete.
Veuillez signaler les bugs ! Consultez le site Web à l'adresse https://rsync.samba.org/.
VERSION
Cette page de manuel est à jour pour la version 3.2.7 de rsync.
OPTIONS INTERNES
Les options --server et --sender sont utilisées en interne par rsync et ne doivent jamais être saisies par un utilisateur dans des circonstances normales. positions. Une certaine connaissance de ces options peut être nécessaire dans certains scénarios, par exemple lors de la configuration d'une connexion qui ne peut que exécutez une commande rsync. Par exemple, le répertoire support de la distribution rsync contient un exemple de script nommé rrsync (pour rsync restreint) qui peut être utilisé avec une connexion SSH restreinte.
CRÉDITS
Rsync est distribué sous la licence publique générale GNU. Voir le fichier COPIE pour plus de détails.
Un site Web rsync est disponible sur https://rsync.samba.org/. Le site comprend une FAQ-O-Matic qui peut couvrir des questions sans réponse par cette page de manuel.
Le projet github rsync est https://github.com/WayneD/rsync.
Nous serions ravis d’avoir de vos nouvelles si vous aimez ce programme. Veuillez contacter la liste de diffusion à rsync@lists.samba.org.
Ce programme utilise l'excellente bibliothèque de compression zlib écrite par Jean-loup Gailly et Mark Adler.
MERCI
Des remerciements particuliers vont à : John Van Essen, Matt McCutchen, Wesley W. Terpstra, David Dykstra, Jos Backus, Sebastian Krahmer, Martin Pool et notre compagnon disparu mais non oublié, JW Schultz. Merci également à Richard Brent, Brendan Mackay, Bill Waite, Stephen Rothwell et David Bell. J'ai probablement manqué certaines personnes ple, mes excuses si je l'ai fait.
AUTEUR
Rsync a été initialement écrit par Andrew Tridgell et Paul Mackerras. De nombreuses personnes y ont ensuite contribué. C'est curatif récemment entretenu par Wayne Davison.
Des listes de diffusion pour le support et le développement sont disponibles sur https://lists.samba.org/.
rsync 3.2.7 20 octobre 2022 rsync(1)