122 votes

Commande de copie ou rsync

La commande suivante fonctionne comme prévu...

cp -ur /home/abc/* /mnt/windowsabc/

Est-ce que rsync a un avantage quelconque sur lui ? Existe-t-il un meilleur moyen de synchroniser le dossier de sauvegarde toutes les 24 heures ?

7voto

Sachin Rastogi Points 211

Je préfère utiliser rsync avec les options suivantes

rsync -avhW --no-compress --progress --info=progress2 <src directory> <dst directory>

Les paramètres ci-dessus peuvent être définis comme suit :

-a for the archive to preserves ownership, permissions, etc.
-v for verbose
-h for human-readable
-W for copying whole files only
--no-compress as there's no lack of bandwidth between local devices
--progress to see the progress of large files
--info=progress2 to see the overall progress
source directory path
destination directory path

5voto

Nemo Points 32838

Pour une copie locale, le seul avantage de rsync est qu'il évitera de copier si le fichier existe déjà dans le répertoire de destination. La définition de "déjà existant" est (a) même nom de fichier (b) même taille (c) même horodatage. (Peut-être même propriétaire/groupe ; je ne suis pas sûr...)

L'algorithme "rsync" est excellent pour les mises à jour incrémentielles d'un fichier sur une liaison réseau lente, mais il ne vous apportera pas grand-chose pour une copie locale, car il doit lire le fichier existant (partiel) pour effectuer son calcul de "diff".

Donc, si vous exécutez fréquemment ce genre de commande, et que l'ensemble des fichiers modifiés est petit par rapport au nombre total de fichiers, vous devriez trouver que rsync est plus rapide que cp. (De plus, rsync a une fonction --delete que vous pourriez trouver utile).

5voto

Gardez à l'esprit que lors d'un transfert de fichiers en interne sur une machine, c'est-à-dire sans transfert réseau, l'utilisation de la fonction -z Le drapeau peut avoir une différence massive dans le temps pris pour le transfert.

Transfert dans la même machine

Case 1: With -z flag:
    TAR took: 9.48345208168
    Encryption took: 2.79352903366
    CP took = 5.07273387909
    Rsync took = 30.5113282204

Case 2: Without the -z flag:
    TAR took: 10.7535531521
    Encryption took: 3.0386879921
    CP took = 4.85565590858
    Rsync took = 4.94515299797

2voto

h3dkandi Points 38

Si vous utilisez cp ne sauvegarde pas les fichiers existants lors de la copie de dossiers de même nom. Disons que vous avez les dossiers suivants :

/myFolder
  someTextFile.txt

/someOtherFolder
  /myFolder
    wellHelloThere.txt

Puis vous copiez l'un sur l'autre :

cp /someOtherFolder/myFolder /myFolder

résultat :

/myFolder
  wellHelloThere.txt

C'est en tout cas ce qui se passe sous macOS et je voulais préserver les fichiers de différence, j'ai donc utilisé rsync.

1voto

dante Points 1

J'ai utilisé rsynk pour transférer 330G de données d'un disque dur local vers un disque dur externe via USB 3.0. Cela m'a pris trois jours. Le taux de transfert est descendu à 800 Kb/s et est remonté à 50 M/s pendant un certain temps, seulement après avoir mis le travail en pause. C'est un problème typique d'overbuffering. Mauvaise expérience pour les transferts de fichiers locaux : comme son nom l'indique, (R)sync signifie REMOTE-sync (optimisé pour les transferts via le réseau). Comme cela arrive souvent, je n'ai découvert le drapeau "-z" qu'après m'être interrogé sur le problème et avoir cherché une explication.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X