Étape 3: Rsync
rsync est utilisé pour effectuer l’opération de sauvegarde sous UNIX / Linux.
utilitaire rsync est utilisé pour synchroniser les fichiers et répertoires d’un endroit à l’autre de manière efficace. Emplacement de sauvegarde pourrait être sur le serveur local ou sur serveur distant.
Caractéristiques importantes de rsync
- Vitesse: première fois, rsync réplique tout le contenu entre les répertoires source et de destination. La prochaine fois, rsync transfère uniquement les blocs modifiés ou les octets à l’emplacement de destination, ce qui rend le transfert très rapide.
- Sécurité: rsync permet le chiffrement des données en utilisant ssh Protocole pendant le transfert.
- Moins de bande passante: rsync utilise la compression et décompression de données bloc par bloc à l’envoi et la réception de fin respectivement. Ainsi la bande passante utilisée par rsync sera toujours qu'inférieure par rapport aux autres protocoles de transfert de fichiers.
- Privilèges: aucun des privilèges spéciaux ne sont requis pour installer et exécuter rsync
Syntaxe
destination de source $ rsync options
Source et destination peuvent être local ou distant. En cas de distance, spécifiez le nom du serveur distant, le nom de connexion et l’emplacement.
Exemple 1. Synchroniser deux répertoires dans un serveur Local
Pour synchroniser deux répertoires dans un ordinateur local, utilisez la commande suivante du numéro - rsync.
$ rsync - numéro/var/opt/installation/inventaire//root/temp construction fichier liste... fait sva.xml svB.xml. envoyé 26385 octets reçus 1098 octets, 54966,00 octets/s Taille totale est 44867 speedup est 1,63 $
Dans l’exemple ci-dessus de rsync :
- z - consiste à activer la compression
- -v verbose
- -r indique récursive
Maintenant voyons l’horodatage sur un des fichiers qui a été copié de source vers la destination. Comme vous voyez ci-dessous, rsync ne préserver horodateurs au cours de la synchronisation.
$ ls -l /var/opt/installation/inventory/sva.xml /root/temp/sva.xml - r--r--r--1 bin bin 949 /var/opt/installation/inventory/sva.xml 18 juin 2009 - r--r--r--1 root bin 949 Sep 2 2009 /root/temp/sva.xml
Exemple 2. Préserver les horodatages au cours de la synchronisation à l’aide de rsync - un
rsync option - une indique le mode de l’archive. -une option effectue les opérations suivantes,
- Mode récursif
- Préserve les liens symboliques
- Conserve les autorisations
- Conserve l’horodatage
- Préserve le propriétaire et le groupe
Maintenant, d’exécuter la même commande fournie dans l’exemple 1 (mais avec rsync option-a) comme indiqué ci-dessous :
$ rsync - azv/var/opt/installation/inventaire / / root/temp/liste des fichiers de construction... fait. / sva.xml svB.xml. envoyé 26499 octets reçus 1104 octets, 55206,00 octets/s Taille totale est 44867 speedup est 1,63 $
Comme vous voyez ci-dessous, rsync préservé horodateurs au cours de la synchronisation.
$ ls -l /var/opt/installation/inventory/sva.xml /root/temp/sva.xml - r--r--r--1 chutier racine 949 /var/opt/installation/inventory/sva.xml 18 juin 2009 - r--r--r--1 root bin 949 18 juin 2009 /root/temp/sva.xml
Exemple 3. Synchroniser un seul fichier
Pour copier un seul fichier, spécifiez le nom du fichier de commande rsync, comme indiqué ci-dessous.
$ rsync - v /var/lib/rpm/Pubkeys/root/temp/Pubkeys envoyé 42 octets reçus 12380 octets, 3549,14 octets/s Taille totale est 12288 speedup est 0.99
Exemple 4. Synchroniser des fichiers du niveau Local à distance
rsync permet de synchroniser les fichiers/répertoires entre les systèmes locaux et distants.
$ rsync - avz/root/temp/thegeekstuff mot de passe : construire la liste de fichiers... fait. / tr/min / tr/min/Basenames tours/min/Conflictname envoyé 15810261 octets reçus 412 octets, 2432411.23 octets/s Taille totale est 45305958 speedup est 2,87
Tout en faisant la synchronisation avec le serveur distant, vous devez spécifier le nom d’utilisateur et adresse ip du serveur distant. Vous devez également spécifier le répertoire de destination sur le serveur distant. Le format est le nom d’utilisateur
Comme vous le voyez ci-dessus, il demande mot de passe tout en faisant de rsync de serveur local à distance.
Parfois vous ne voulez pas entrer le mot de passe lors de sauvegarde de fichiers du niveau local à un serveur distant. Par exemple, si vous avez un script shell de sauvegarde, qui copie les fichiers du niveau local à un serveur distant en utilisant rsync, vous devez pouvoir rsync sans avoir à entrer le mot de passe.
Pour ce faire, configurer ssh moins login mot de passe comme nous l’avons expliqué plus tôt.
Exemple 5. Synchroniser des fichiers de télécommande au niveau Local
Lorsque vous souhaitez synchroniser des fichiers à distance au niveau local, spécifier le chemin d’accès distant dans source et chemin d’accès local dans la cible, comme indiqué ci-dessous.
$ rsync - avz thegeekstuff /root/temp mot de passe : réception de fichier liste... fait tr/min / tr/min/Basenames. envoyés de 406 octets reçus 15810230 octets, 2432405.54 octets/s Taille totale est 45305958 speedup est 2,87
Exemple 6. Shell distant pour la synchronisation
rsync permet de spécifier le shell distant que vous souhaitez utiliser. Vous pouvez utiliser rsync ssh pour permettre la connexion à distance sécurisée.
Utiliser rsync -e ssh pour spécifier quel shell distant à utiliser. Dans ce cas, rsync utilisera ssh.
$ rsync - avz-e ssh thegeekstuff/root/temp mot de passe : réception de fichier liste... fait tr/min / tr/min/Basenames envoyé 406 octets reçus 15810230 octets, 2432405.54 octets/s Taille totale est 45305958 speedup est 2,87
Exemple 7. Ne pas écraser les fichiers modifiés à Destination
Dans une situation typique de synchronisation, si un fichier est modifié à la destination, nous pourrions vouloir pas à remplacer le fichier avec l’ancien fichier de la source.
Option -u rsync permet de faire exactement cela. (c’est à dire ne remplacent pas un fichier au lieu de destination, si celui-ci est modifié). Dans l’exemple suivant, le fichier appelé Basenames est déjà modifié à destination. Donc, il ne sera pas écrasé avec rsync -u.
$ ls -l /root/temp/Basenames totale 39088 - rwxr-xr-x 1 root root 4096 2 Sep 11:35 Basenames $ rsync - avzu thegeekstuff /root/temp mot de passe : réception de fichier liste... fait tr/min / 122 octets envoyés reçu 505 octets 114,00 octets/s Taille totale est 45305958 speedup est 72258.31 $ ls - lrt total 39088 - rwxr-xr-x 1 root root 4096 2 Sep 11:35 Basenames
Exemple 8. Synchroniser uniquement la Structure d’arborescence répertoire (pas les fichiers)
Rsync -d option permet de synchroniser uniquement arborescence de source vers la destination. L’exemple ci-dessous, synchroniser uniquement les arborescence de répertoires de manière récursive, pas les fichiers dans les répertoires.
$ rsync - v -d thegeekstuff. Mot de passe : réception de fichier liste... fait logrotate.status CAM / YaST2 / acpi / envoyé 240 octets reçus 1830 octets, 318,46 octets/s Taille totale est de 956 speedup est 0,46
Exemple 9. Découvre la rsync progrès pendant le transfert
Lorsque vous utilisez rsync pour la sauvegarde, vous pouvez connaître l’état d’avancement de la sauvegarde. C’est à dire combien de fichiers sont des copies, à quel taux il est de copier le fichier, etc..
rsync-progrès option affiche l’avancement détaillé d’exécution rsync comme indiqué ci-dessous.
$ rsync - avz--progress thegeekstuff/root/temp/mot de passe : recevoir la liste de fichiers... 19 fichiers à envisager. / Basenames 5357568 100 % 14.98 Mo/s 0:00:00 (xfer #1, à cocher-= 17/19) Conflictname 12288 100 % 35,09 kB/s 0:00:00 (xfer #2, à cocher-= 16/19)... envoyé 406 octets reçus 15810211 octets, 2108082.27 octets/s Taille totale est 45305958 speedup est 2,87
Vous pouvez également utiliser rsnapshot utilitaire (qui utilise rsync) de sauvegarde locale linux serveurou serveur de sauvegarde distant linux.
Exemple 10. Supprimer les fichiers créés sur la cible
Si un fichier n’est pas présent à la source, mais présent à la cible, vous pouvez supprimer le fichier dans la cible au cours de rsync.
Dans ce cas, utilisez – option supprimer comme indiqué ci-dessous. option de suppression de rsync supprime les fichiers qui n’existent pas dans le répertoire source.
# Source et cible sont synchronisés. Maintenant créer nouveau fichier sur la cible. $ > nouvelles-fichier.txt $ rsync - avz--supprimer thegeekstuff. Mot de passe : réception de fichier liste... fait supprimer nouveau-fichier.txt. / envoyé 26 octets reçus 390 octets 48,94 octets/s Taille totale est 45305958 speedup est 108908.55
Cible a le nouveau fichier appelé nouvelle-fichier.txt, quand synchroniser avec la source avec – option delete, il supprimé le fichier nouveau-fichier.txt
Exemple 11. Do pas créer nouveau fichier sur la cible
Si vous le souhaitez, vous pouvez mettre à jour les fichiers (Sync) seulement l’existant sur la cible. Dans le cas où source a de nouveaux fichiers, qui n’est pas là à la cible, vous pouvez éviter la création de ces fichiers à la cible. Si vous souhaitez que cette fonctionnalité, utilisez – existant option avec commande rsync.
Tout d’abord, ajoutez un fichier.txt-nouveau à la source.
[/ var/lib/rpm] $ > fichier.txt-nouveau
Ensuite, exécutez la rsync de la cible.
rsync - avz $--racine existante. mot de passe root : réception de fichier liste... fait. / envoyé 26 octets reçus 419 octets 46,84 octets/s Taille totale est 88551424 speedup est 198991.96
Si vous voyez la sortie ci-dessus, il n’a pas reçu le nouveau-nouveau fichier fichier.txt
Exemple 12. Afficher les modifications entre la Source et de Destination
Cette option est utile pour afficher la différence dans les fichiers ou les répertoires source et de destination.
À la source :
$ ls -l /var/lib/rpm - rw-r--r--1 root root 5357568 2010-06-24 08:57 Basenames - rw-r--r--1 root root 12288 2008-05-28 22:03 Conflictname - rw-r--r--1 root root 1179648 2010-06-24 08:57 Dirnames
Au lieu de destination :
$ ls -l/root/temp - rw-r--r--1 root root 12288 28 mai 2008 Conflictname - rw-r--r--1 bin bin 1179648 24 juin à 05:27 Dirnames - rw-r--r--1 root root 0 Sep 3 06:39 Basenames
Dans l’exemple ci-dessus, entre la source et la destination, il existe deux différences. Tout d’abord, propriétaire et le groupe du fichier Dirname diffère. Ensuite, la taille diffère pour le fichier Basenames.
Maintenant voyons comment rsync affiche cette différence. -i option affiche l’élément change.
$ rsync - avzi thegeekstuff/root/temp/mot de passe : réception de fichier liste... fait > f.st... Basenames. f...og. Dirnames envoyé 48 octets reçus 2182544 octets, 291012,27 octets/s Taille totale est 45305958 speedup est 20,76
Dans la sortie, il affiche quelques 9 lettres devant le nom de fichier ou de répertoire indiquant les changements.
Dans notre exemple, les lettres devant les Basenames (et Dirnames) dit ce qui suit :
> spécifie qu’un fichier est transféré vers l’hôte local. f représente qu’il s’agit d’un fichier. s représente la taille, sont a-t-il des changements. t représente l’horodatage, sont a-t-il des changements. o modifier propriétaire groupe g changé.
Exemple 13. Include et Exclude modèle pendant le transfert de fichier
rsync permet de donner le modèle que vous voulez inclure et exclure des fichiers ou des répertoires tout en faisant de la synchronisation.
$ rsync - avz--inclure « P * »--exclure ' *' thegeekstuff/root/temp/mot de passe : réception de fichier liste... fait. / envoi de paquets Providename Provideversion Pubkeys 129 octets reçus 10286798 octets, 2285983.78 octets/s Taille totale est 32768000 speedup est 3.19
Dans l’exemple ci-dessus, il inclut uniquement les fichiers ou les répertoires commençant par « P » (en utilisant rsync incluent) et exclut tous les autres fichiers. (à l’aide de rsync exclure ' *')
Exemple 14. Ne transférez pas les gros fichiers
Vous pouvez le dire pas à transférer des fichiers supérieurs à une taille spécifique en utilisant rsync rsync – max-option relative au format.
$ rsync - avz--max-taille = « 100 K » thegeekstuff/root/temp/mot de passe : réception de fichier liste... fait. / Conflictname groupe Installtid nom Sha1header Sigmd5 Triggername envoyé 252 octets reçus 123081 octets, 18974,31 octets/s Taille totale est 45305958 speedup est 367.35
taille maximale = 100K fait rsync pour transférer uniquement les fichiers qui sont inférieures ou égales à 100K. Vous pouvez indiquer M pour mΘga-octets et G pour gigaoctets.
Exemple 15. Transférer le fichier entier
Une des caractéristiques principales de rsync est qu’il transfère seulement le bloc modifié vers la destination, au lieu d’envoyer la totalité du fichier.
Si de bande passante n’est pas un problème pour vous (mais est CPU), vous pouvez transférer la totalité du fichier, en utilisant rsync option -W. Cela va accélérer le processus de rsync, car il n’a pas à effectuer la somme de contrôle à la source et la destination.
# rsync - avzW thegeekstuff /root/temp mot de passe : réception de fichier liste... fait. / Basenames Conflictname Dirnames Filemd5s groupe Installtid nom envoyé 406 octets reçus 15810211 octets, 2874657.64 octets/s Taille totale est 45305958 speedup est 2,87