Différences entre les versions de « Copie de fichiers »
De BlaxWiki
Aller à la navigationAller à la recherche| (15 versions intermédiaires par 6 utilisateurs non affichées) | |||
| Ligne 1 : | Ligne 1 : | ||
=== Copie rapide via tar over ssh === | === Copie rapide over netcat === | ||
<pre> | |||
On peut copier des fichiers via netcat, ca peut etre jusqu à deux fois plus rapide que via ssh car pas d encryption : | |||
A faire dans cet ordre | |||
Sur la machine qui va recevoir le fichier : ncat -nlvp 8888 | dd of=/dev/vol_kvm2_san_noha/test bs=4M | |||
Sur la machine qui va envoyer le fichier : dd if=/dev/vol_kvm1_san_noha/test | ncat -nv 10.250.250.84 8888 | |||
</pre> | |||
=== Copie rapide via tar over ssh ou en local === | |||
<pre> | <pre> | ||
Pour faire une copie de fichier rapide entre 2 machines via ssh | Pour faire une copie de fichier rapide entre 2 machines via ssh | ||
A faire sur la machine qui va envoyer les données à copier. On va donc copier tout ce qui se trouve à l endroit où l'on fait le tar vers le serveur 212.43.194.2 dans le repertoire | A faire sur la machine qui va envoyer les données à copier. On va donc copier tout ce qui se trouve à l endroit où l'on fait le tar vers le serveur 212.43.194.2 dans le repertoire | ||
/home/benbis/test | /home/benbis/test (ou les données seront décompressées en arrivant) | ||
tar cvzf - . | ssh benj@212.43.194.2 "tar xvzf - -C /home/benbis/test" (ou tar -czvf - /mon_dossier_1 /dossier/dossier_2 | ssh user@votre-serveur.com ....) | tar cvzf - . | ssh benj@212.43.194.2 "tar xvzf - -C /home/benbis/test" (ou tar -czvf - /mon_dossier_1 /dossier/dossier_2 | ssh user@votre-serveur.com ....) | ||
Ou alors pour un dd : dd if=/dev/volimages/firewall_image_root | ssh root@192.168.10.12 "dd of=/dev/volimages/firewall_image_root" | Pour un tar sans décompression à l'arrivée : | ||
tar cvzf - . | ssh benj@212.43.194.2 "dd of=/backup/wwwdata.tar.gz" # source local vers 212.43.194.2 | |||
ssh root@10.253.6.25 "tar cvzf - /root/ben" | dd of=/root/test.tar.gz # source 10.253.6.25 vers local | |||
tar --exclude=.snapshot -czf - . 2> /root/tar_nfs_nfs2_20160824 | tar vxzf - -C /nfs2 # source local . vers local /nfs2, en mettant les erreurs dans un fichier | |||
Ou alors pour un dd : dd if=/dev/volimages/firewall_image_root | ssh root@192.168.10.12 "dd of=/dev/volimages/firewall_image_root bs=1M" | |||
Si le LV comporte pas mal de vide (l os prend peu de place par rapport à la taille du LV), on peut mettre un gzip pour gagner du temps) : | |||
dd if=/dev/vol_kvm2/centos7pxe_root | gzip | ssh root@10.253.6.4 "gunzip | dd of=/dev/vol_kvm2/tescopy bs=1M" | |||
Pour voir où en est la copie du dd, ouvrir une 2eme console et kill -USR1 pid_du_dd, on verra dans la console du dd : | |||
[root@kvm2-ins.agarik.com ~]# dd if=/dev/vol_kvm2/centos7pxe_root of=/dev/vol_kvm2/centos7pxe_rootnew | |||
4135821+0 records in | |||
4135820+0 records out | |||
2117539840 bytes (2.1 GB) copied, 13.9036 s, 152 MB/s | |||
</pre> | </pre> | ||
=== Copie via Rsync === | === Copie via Rsync === | ||
* Commande de base | * Commande de base (pour d'autres commanndes voir [https://{{SERVERNAME}}/index.php/Rsync ici]) | ||
<pre> | <pre> | ||
# rsync -av source cible (ex : rsync -av source cible) | # rsync -av source cible (ex : rsync -av source cible) | ||
-a équivaut à -rlptgoD, en détail, cela signifie que rsync copiera les répertoires, les liens symboliques (et non leur cible), ainsi que les fichiers spéciaux, le tout, en préservant les permissions, le propriétaire, le groupe, et l’horodatage des fichiers. | -a équivaut à -rlptgoD, en détail, cela signifie que rsync copiera les répertoires, les liens symboliques (et non leur cible), ainsi que les fichiers spéciaux, le tout, en préservant | ||
les permissions, le propriétaire, le groupe, et l’horodatage des fichiers. | |||
# rsync -av /foo/ /bar/ : copie les fichiers présents dans foo dans le répertoire bar | |||
# rsync -av /foo /bar/ : copie le répertoire foo dans bar | |||
# rsync -aAXv --delete --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/lost+found"} / root@10.0.0.5:/ | |||
Options : | Options : | ||
--delete : ce qui existe dans la cible mais pas dans la source sera supprimée | --delete : ce qui existe dans la cible mais pas dans la source sera supprimée | ||
--info=progress2 : permet de voir la vitesse de transfert, et le % d avancement de la copie globale | |||
</pre> | </pre> | ||
| Ligne 35 : | Ligne 65 : | ||
D : permet de copier les fichiers speciaux tel /dev/null | D : permet de copier les fichiers speciaux tel /dev/null | ||
--partial : permet de relancer la copie d'un fichier d'où il a échoué et non pas depuis le début du fichier | --partial : permet de relancer la copie d'un fichier d'où il a échoué et non pas depuis le début du fichier | ||
exclude : permet d'exclure des répertoires du backup en partant du répertoire source du backup. Dans la commande, le fait de spécifier ”.ssh/” exclut ”/home/user/backup/.ssh/”. | exclude : permet d'exclure des répertoires du backup en partant du répertoire source du backup. | ||
Dans la commande, le fait de spécifier ”.ssh/” exclut ”/home/user/backup/.ssh/”. | |||
stats : permet d'afficher un rapport de fin de backup | stats : permet d'afficher un rapport de fin de backup | ||
bwlimit : permet de limiter le débit. La valeur par défaut est en Kb [kilobytes = kilo octets] | bwlimit : permet de limiter le débit. La valeur par défaut est en Kb [kilobytes = kilo octets] | ||
Version actuelle datée du 29 mai 2019 à 15:25
Copie rapide over netcat[modifier]
On peut copier des fichiers via netcat, ca peut etre jusqu à deux fois plus rapide que via ssh car pas d encryption : A faire dans cet ordre Sur la machine qui va recevoir le fichier : ncat -nlvp 8888 | dd of=/dev/vol_kvm2_san_noha/test bs=4M Sur la machine qui va envoyer le fichier : dd if=/dev/vol_kvm1_san_noha/test | ncat -nv 10.250.250.84 8888
Copie rapide via tar over ssh ou en local[modifier]
Pour faire une copie de fichier rapide entre 2 machines via ssh A faire sur la machine qui va envoyer les données à copier. On va donc copier tout ce qui se trouve à l endroit où l'on fait le tar vers le serveur 212.43.194.2 dans le repertoire /home/benbis/test (ou les données seront décompressées en arrivant) tar cvzf - . | ssh benj@212.43.194.2 "tar xvzf - -C /home/benbis/test" (ou tar -czvf - /mon_dossier_1 /dossier/dossier_2 | ssh user@votre-serveur.com ....) Pour un tar sans décompression à l'arrivée : tar cvzf - . | ssh benj@212.43.194.2 "dd of=/backup/wwwdata.tar.gz" # source local vers 212.43.194.2 ssh root@10.253.6.25 "tar cvzf - /root/ben" | dd of=/root/test.tar.gz # source 10.253.6.25 vers local tar --exclude=.snapshot -czf - . 2> /root/tar_nfs_nfs2_20160824 | tar vxzf - -C /nfs2 # source local . vers local /nfs2, en mettant les erreurs dans un fichier Ou alors pour un dd : dd if=/dev/volimages/firewall_image_root | ssh root@192.168.10.12 "dd of=/dev/volimages/firewall_image_root bs=1M" Si le LV comporte pas mal de vide (l os prend peu de place par rapport à la taille du LV), on peut mettre un gzip pour gagner du temps) : dd if=/dev/vol_kvm2/centos7pxe_root | gzip | ssh root@10.253.6.4 "gunzip | dd of=/dev/vol_kvm2/tescopy bs=1M" Pour voir où en est la copie du dd, ouvrir une 2eme console et kill -USR1 pid_du_dd, on verra dans la console du dd : [root@kvm2-ins.agarik.com ~]# dd if=/dev/vol_kvm2/centos7pxe_root of=/dev/vol_kvm2/centos7pxe_rootnew 4135821+0 records in 4135820+0 records out 2117539840 bytes (2.1 GB) copied, 13.9036 s, 152 MB/s
Copie via Rsync[modifier]
- Commande de base (pour d'autres commanndes voir ici)
# rsync -av source cible (ex : rsync -av source cible)
-a équivaut à -rlptgoD, en détail, cela signifie que rsync copiera les répertoires, les liens symboliques (et non leur cible), ainsi que les fichiers spéciaux, le tout, en préservant
les permissions, le propriétaire, le groupe, et l’horodatage des fichiers.
# rsync -av /foo/ /bar/ : copie les fichiers présents dans foo dans le répertoire bar
# rsync -av /foo /bar/ : copie le répertoire foo dans bar
# rsync -aAXv --delete --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/lost+found"} / root@10.0.0.5:/
Options :
--delete : ce qui existe dans la cible mais pas dans la source sera supprimée
--info=progress2 : permet de voir la vitesse de transfert, et le % d avancement de la copie globale
- Changement de port
Rsync se base sur ssh donc sur le port 22. Si ssh écoute sur un autre port il faudra lancer la commande suivante
rsync -av -e "ssh -p 44230" --delete-before --exclude=.ssh/ /home/user/backup/ user@host_destination:/var/backup/user --stats --bwlimit=25
options :
a : permet d'activer la récursivité
v : permet à la commande d'être verbeuse
e : permet de disposer d'option ssh. Dans notre cas nous spécifions un port particulier (44230)
D : permet de copier les fichiers speciaux tel /dev/null
--partial : permet de relancer la copie d'un fichier d'où il a échoué et non pas depuis le début du fichier
exclude : permet d'exclure des répertoires du backup en partant du répertoire source du backup.
Dans la commande, le fait de spécifier ”.ssh/” exclut ”/home/user/backup/.ssh/”.
stats : permet d'afficher un rapport de fin de backup
bwlimit : permet de limiter le débit. La valeur par défaut est en Kb [kilobytes = kilo octets]