-
copier des fichiers d’un serveur à un autre avec scp
LOCAL > DISTANT
scp -P 123 fichier.txt toto@192.168.0.1:/chemin/distant
-P 123si le port est différent de 22 (par défaut)fichier.txt
fichier à transférertoto@10.10.0.2
is the server IP address./chemin/distant
chemin du dossier distant où copier le fichier. Si pas renseigné, le fichier sera copîer dans le dossier du user (/home/toto).Pour changer le nom du fichier dans le dossier distant :
scp fichier.txt toto@192.168.0.1:/chemin/distant/nouveauNom.txt
Pour copier un dossier complet :
-r
scp -r /chemin/dossier toto@192.168.0.1:/chemin/distant
DISTANT > LOCAL
scp -P 123 toto@192.168.0.3:/chemin/distant/* /chemin/local/
-P 123port à utiliser avec sshtoto@192.168.0.3utilisateur et machine du distant:/chemin/distant/*chemin où l’on récupère tous les fichiers (*)/chemin/localchemin local vers lequel on copie les fichiersOPTIONS
-P 123remote host ssh port
-ppréserver les dates de modification et d’access des fichiers
-qsuppress the progress meter and non-error messages
-C .compresses the data as it is sent to the destination machine-r
copy directories recursively:
is howscp
distinguish between local and remote locations.Pour copier des fichiers dans le dossier distant, il faut avoir les droits en écriture.
NOTE : scp écrase les fichiers de même nom sans avertissement.
NOTE : Pour copier des fichiers volumineux, il est conseillé d’utiliser scp avec une session de
screenoutmux.DISTANT > DISTANT
Copier le fichier /files/file.txt from the remote host host1.com to the directory /files on the remote host host2.com.
scp user1@host1.com:/files/file.txt user2@host2.com:/files
Pour router le traffic par la machine locale :
-3
scp -3 user1@host1:/files/file.txt user2@host2:/files
Conclusion
You may also want to set up an SSH key-based authentication and connect to your Linux servers without entering a password.
If you are regularly connecting to the same systems, you can simplify your workflow by defining all of your connections in the SSH config file.
Copier des répertoires entre machines avec ssh
cd repertoire_de_copie scp -rp user@host:/toto/titi_dir ./
-r permet de faire une copie récursive du répertoire titi_dir/
-p permet de préserver les droits et date des fichiers
Copie avec tar et ssh
on se loggue sur la machine destination et on tape :
(ssh user@host 'cd /data/dir_a_copier && tar cf - *') | (cd /xxx/dir_destination && tar -xf -)
et si vous voulez compresser, ajoutez dans les paramètres du tar la compression que vous souhaitez (z, j,…)
(ssh user@host 'cd /data/dir_a_copier && tar zcf - *') | (cd /xxx/dir_destination && tar -zxf -)
Pour lancer la tâche en arrière plan
nohup sh -c "(ssh user@host 'cd /data/dir_a_copier && tar zcf - *') | (cd /xxx/dir_destination && tar -zxf -)" &
Copie avec rsync et ssh
Pour synchroniser des répertoires entre 2 machines. rsync commence par regarder les différences entre les répertoires et ne copie que les fichiers qui ont été modifiés
aller sur la machine destination et lancer les commandes suivantes :
cd /data/dir_destination rsync -vazu -e ssh user@host:/data/dir_a_copier/ ./
Utilisation de rsync et ssh avec exclusion de fichiers
Avec rsync, on peut en plus séléctionner de façon assez fine la liste des fichiers/répertoires que l’on souhaite synchroniser ou non.
Utilisation de rsync avec exclusion dans cet exemple, on se loggue sur la machine source
rsync -vazu -e ssh \ --exclude "/**/CVS" \ --include "*/" \ --include "*.jsp" \ --exclude "*" \ /xxx/le_repertoire_a_copier/* user@host.com:/xxx/le_repertoire_destination_a_distance
rsync vers un ssh sur un port particulier
rsync -vazu -e "ssh -p 310" user@host.com:/data/dir_a_copier/ ./