Peut-on copyr les directorys de copy?

Maintenant, je ne peux que copyr un seul file tar, comment puis-je copyr les directorys de façon récursive avec scp ?

Oui, utilisez -r :

 scp -rp sourcedirectory user@dest:/path 
  • -r signifie récursif
  • -p conserve les time de modification, les time d'access et les modes du file d'origine.

Remarque: Cela crée le sourcedirectory intérieur /path donc les files seront dans /path/sourcedirectory

Bien que les réponses précédentes soient techniquement correctes, vous devriez également envisager d'utiliser rsync place. rsync compare datatables sur les côtés d'envoi et de réception avec un mécanisme diff, de sorte qu'il ne faut pas renvoyer datatables déjà envoyées précédemment.

Si vous allez copyr quelque chose sur une machine distante plus d'une fois, utilisez rsync . En fait, il est bon d'utiliser rsync chaque fois, car il a plus de controls pour des choses comme la copy de permissions de files et la propriété et à l'exclusion de certains files ou directorys. En général:

 $ rsync -av /local/dir/ server:/remote/dir/ 

synchronise un directory local avec un directory distant. Si vous l'exécutez une deuxième fois et que le contenu du directory local n'a pas changé, aucune donnée ne sera transférée – beaucoup plus efficace que l'exécution de scp et la copy de tout à chaque fois.

En outre, rsync vous permet de récupérer les transferts interrompus très facilement, contrairement au scp .

Enfin, les versions modernes de rsync par défaut s'exécutent sur ssh, donc si scp fonctionne déjà, rsync devrait plutôt être un rlocation déroulant.

C'est pour cela que va l'option -r . 🙂

Consultez la page man de scp pour plus d'informations si nécessaire.

Option de copy récursive '-r' (minuscule)

 scp -r 

Ce que je confond avec l'option de copy récursive locale régulière '-R' (majuscules)

 cp -R 

Après avoir recherché le drapeau de copy récursif et l'avoir utilisé avec succès grâce à cette publication, j'aimerais seulement publier une suggestion.

Si l'affaire est que vous copyz (récursivement) un directory. Peut-être que si les files sont envoyés compressés, vous pouvez gagner du time dans le transfert

Ce que j'ai fait à la fin était:

 local$ tar -czvf local.tar directory/ local$ scp local.tar user@remote:/directory ssh user@remote remote$ tar -xzvf local.tar 

J'espère que cela t'aides

Vous pouvez copyr de manière récursive un directory dans une archive compressée avec cette simple command:

 ssh -p 22 user@address-to-copy-from.com 'cd /parent/directory && tar zcvf - directory_to_copy' > /destination/on/your/machine/archive_name.tgz 

Par exemple, pour copyr le contenu de /var/log de domain.com vers ~/logs.tgz vous exécutez:

 ssh -p 22 user@domain.com 'cd /var && tar zcvf - log' > ~/logs.tgz 

Vous pouvez également extraire des files sur un système cible en utilisant des tuyaux. Cette command copyra le contenu de /var/log dans domain.com vers ~/destination/log sur votre système:

 ssh -p 22 user@domain.com 'cd /var && tar zcvf - log' | tar xzf - -C ~/destination 

Bien que pour refléter un directory, vous devriez probablement utiliser rsync

La meilleure façon est d'utiliser rsync sur SSH

 rsync -a -essh /source/ user@dest-server:/dest/ rsync -a -essh user@source-server:/source/ /dest/ 

Mes options favorites sont: -Pazvessh –delete:

  • -a: mode d'archivage (incluent beaucoup d'options communes par défaut, y compris la préservation des liens symboliques)
  • -z: compression
  • -v: verbose: afficher les files
  • -P: afficher les progess sous forme de files / files restants
  • -e ssh: rsync dans ssh protocole
  • –delever: supprimer des files dans la destination qui ne sont plus dans la source

Si vous préférez passer le mot de passe de l'user comme paramètre plutôt que de l'interagir de manière interactive, vous pouvez utiliser sshpass ( sudo apt-get install -y sshpass ).

Exemple:

 sshpass -p 'remote_password' scp -rp /src/folder myremoteusername@122.10.12.123:/dest/folder 

Une autre option (probablement meilleure pour l'utilisation répétée) est d'utiliser NFS – vérifier nfs-kernel-server et comment configurer les partages NFS.