Sur la machine AI ont le dossier
/home/a/
Sur la machine BI, le dossier
/home/b/
Je souhaite transférer tous les fichiers, répertoires et sous-répertoires de / home / a dans / home / b avec sftp Sur la machine, AI a essayé les commandes:
sftp [email protected]
put /home/a/* /home/b/
mais cela ne fonctionne pas, j'obtiens le message d'erreur: "sauter un fichier non régulier / home / a / a1" ... [a1 est un sous-répertoire d'un]
Comment pourrais-je modifier l'instruction put?
Merci! :)
MODIFIER:
J'ai résolu en utilisant scp:
scp -r /home/a/ [email protected]:/home/b/
put -r
aurait aussi fonctionné.sftp
, reportez-vous au projet OpenSSH .Réponses:
Bien qu'il ne soit pas strictement équivalent à sftp, rsync est une alternative très puissante pour scp et sftp, en particulier lors de la mise à jour des copies de la machine A vers la machine B, car il ne copie pas les fichiers qui n'ont pas été modifiés; il est également capable de supprimer des fichiers de la machine B qui ont été supprimés de la machine A (uniquement lorsque cela est dit bien sûr).
Dans votre cas, la syntaxe serait
L'
-r
option est pour la copie récursive de fichiers,-z
active la compression pendant le transfert et-p
préserve les autorisations de fichier (création de fichier, modification, etc.) lors de la copie, ce que scp ne fait pas AFAIK. Beaucoup plus d'options sont possibles; comme d'habitude, lisez lesman
pages.la source
rsync
ne parle passftp
-Protocole. Donc , si vous configurez unsftp
-chroot en utilisantssh
la construction de » eninternal-sftp
puisrsync
échoue.Dans
sftp
cette commande télécharge récursivement le contenu du répertoire courant dans le répertoire courant distant:Tu vois
man sftp
.la source
-r
commutateur est pris en charge depuis OpenSSH 5.4 uniquement.-r
commutateur est côté client uniquement (partie de lasftp
commande). Ainsi, le côté serveur (ici: réception) n'a pas besoin d'OpenSSH 5.4, seul le client doit le prendre en charge.scp
(copie sécurisée) est le Linux de facto pour le transfert de fichiers sur un tunnel sécurisé. Dans votre cas, vous souhaitez utiliser le commutateur récursif, par exemple:la source
Essayez d'utiliser
pour plus d'informations consultez: ce
la source
-r
commutateur est pris en charge depuis OpenSSH 5.4 uniquement.-r
commutateur est côté client uniquement (partie de lasftp
commande). Ainsi, le côté serveur (ici: réception) n'a pas besoin d'OpenSSH 5.4, seul le client doit le prendre en charge. Et: Cela devrait être la réponse acceptée , car obtenir (éventuellement non pris en charge)rsync
la réponse à une question baliséesftp
est un peu déroutant.En fait, put -r devrait fonctionner. Mais le dossier de destination doit être présent sur votre hôte distant:
la source
Dans mon cas, ce
rsync
n'était pas possible, j'ai donc utilisé:la source
mput
commande dans OpenSSHsftp
. Vous parlez peut-êtrepsftp
?