La principale différence entre ces outils réside dans la façon dont ils copient les fichiers.
scplit essentiellement le fichier source et l'écrit dans la destination. Il effectue une copie linéaire simple, localement ou sur un réseau.
rsynccopie également les fichiers localement ou sur un réseau. Mais il utilise un algorithme de transfert delta spécial et quelques optimisations pour rendre l'opération beaucoup plus rapide. Considérez l'appel.
rsync A host:B
rsyncvérifiera la taille des fichiers et les horodatages de modification de A et B , et ignorera tout traitement supplémentaire s'ils correspondent.
Si le fichier de destination B existe déjà, l'algorithme de transfert delta s'assurera que seules les différences entre A et B sont envoyées sur le câble.
rsyncécrit les données dans un fichier temporaire T , puis remplacer le fichier de destination B avec T pour faire le look de mise à jour « atomique » à des processus qui pourraient utiliser B .
Une autre différence entre eux concerne l'invocation. rsynca une pléthore d'options de ligne de commande, permettant à l'utilisateur d'affiner son comportement. Il prend en charge des règles de filtrage complexes, s'exécute en mode batch, en mode démon, etc. scpne dispose que de quelques commutateurs.
En résumé, utilisez scppour vos tâches quotidiennes. Commandes que vous saisissez de temps en temps sur votre shell interactif. Il est plus simple à utiliser et, dans ces cas, les rsyncoptimisations n'aideront pas beaucoup.
Pour les tâches récurrentes, comme les crontravaux, utilisez rsync. Comme mentionné, lors de plusieurs invocations, il tirera parti des données déjà transférées, en effectuant très rapidement et en économisant des ressources. C'est un excellent outil pour garder deux répertoires synchronisés sur un réseau.
En outre, lorsque vous traitez des fichiers volumineux, utilisez rsyncl' -Poption. Si le transfert est interrompu, vous pouvez le reprendre là où il s'est arrêté en relançant la commande. Voir la réponse de Sid Kshatriya .