1 votes

Comment maintenir un répertoire cloné à distance avec rsync ?

J'ai un accès SSH (en utilisant une paire de clés SSH) à une machine distante. Je veux maintenir un répertoire sur la machine distante exactement égal à un répertoire local donné (synchronisation unidirectionnelle). La vérification de l'égalité des fichiers doit être basée sur un hachage du contenu binaire des fichiers (pas sur la taille/la date).

  1. Quelle est la commande rsync correcte pour cela (pas le service rsync)?
  2. Comment les autorisations de fichier sont-elles gérées?
  3. Comment les dates de modification des fichiers sont-elles gérées?
  4. Comment rsync réagit-il aux échecs et quel est le code de sortie?

1voto

ugaciaka Points 51

Rsync vérifie le contenu du fichier, pas la date et/ou la taille du fichier. Si le contenu est différent mais avec le même chemin et le même nom, alors le fichier sera écrasé.

La syntaxe pour rsync est rsync options source destination donc si vous voulez synchroniser un répertoire distant avec un répertoire local, cela devrait fonctionner :

rsync -azh dossier_local utilisateur@serveur_distant:/chemin/vers/destination/

Si vous voulez utiliser SSH comme protocole de transfert, alors cela fonctionne pour moi :

rsync -azhe ssh dossier_local utilisateur@serveur_distant:/chemin/vers/destination

Comment gère-t-on les permissions de fichiers ? Comment gère-t-on les dates de modification des fichiers ?

Le paramètre a préserve les liens symboliques, les autorisations de fichiers, les horodatages... si vous ne voulez pas transférer ces informations, excluez-les simplement de la commande, elles seront la propriété de l'utilisateur avec lequel vous vous êtes connecté dans la session SSH.

Comment réagit rsync en cas d'échec et quel est le code de sortie ?

La plupart des commandes/programmes renvoient 0 en cas de succès et tout autre numéro en cas d'erreur. Voici une liste des codes de sortie de rsync pour référence

0 votes

La déclaration dans le premier paragraphe de cette réponse, "Rsync vérifie le contenu du fichier, pas la date et/ou la taille du fichier", est fausse. Selon la page man de rsync, "normalement, rsync sautera tout fichier qui a déjà la même taille et la même horodatage de modification". Vérifiez la page man pour les options --ignore-times, --size-only, --checksum, etc.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X