Bir dosyayı scp kullanarak sunucudan nasıl çekebilirim?


31

A makinesindeyim ve B makinesinden bir dosya çekmek istiyorum

A$ scp <myuserid>@hostB:<path of file in B> .

diyor ki:

scp: <path of file in B>: No such file or directory

Ancak B makinesinde bu dosya bu yolda var.

Ne yanlış gidiyor?


Bu koştuğun komutun tam formatı mı? Veya ':' den sonra bir dosya adı var mıydı?
dtyler

Yanıtlar:


43

Herhangi bir dosya belirtmediniz: dosyayı kolondan sonra (yollu) eklemeniz gerekir:

A$ scp <myuserid>@hostB:/absolutepath/file .

veya

A$ scp <myuserid>@hostB:relativepath/file .

Giriş dizininize göre bir yol için

Farklı bir kullanıcı belirtmezseniz (yani, A ve B'deki kullanıcı aynıdır) @

A$ scp hostB:/path/file .

2
Sorudaki biçimlendirmeyi düzelttim, ancak belki de cevabınız hala geçerli. Sorun mutlak ve göreceli (evden eve) yolları arasındaki karışıklıktan kaynaklanabilir.
Stéphane Gimenez 12:11

@ StéphaneGimenez şimdi anladım düzenlenmiş cevabı görüyorum. Garip bir soru gibiydi :-)
Matteo

4
$ scp username@remoteip:remote_location_file /location/where/you/save

Bu sadece dosyayı kopyaladığınızda çalışır. Bir dizini kopyalamak istiyorsanız

$ scp -r username@remoteip:remote_location_directory /location/where/you/save

İsteğiniz üzerine kullanabileceğiniz seçenek

-P portu
Uzaktaki ana bilgisayara bağlanılacak portu belirtir. Bu seçeneğin büyük bir "P" harfiyle yazıldığını unutmayın, çünkü -p zaten dosyanın zamanlarını ve modlarını korumak için ayrılmıştır.

-p
Orijinal dosyadaki değişiklik zamanlarını, erişim zamanlarını ve modları korur.

-r
Dizinleri yinelemeli olarak kopyala.

-v

Ayrıntılı mod. Scp ve ssh'ın ilerlemeleri hakkında hata ayıklama mesajları yazdırmasına neden olur. Bu hata ayıklama bağlantı, kimlik doğrulama ve yapılandırma sorunları için yararlıdır.


1
OP, bir dizini değil bir dosyayı kopyalamayı istedi.
countermode

2

uygun scp yolunu kullan

scp ssh://user@hostname/tmp/foo.txt .

1

Giriş dizininize göre olan bir dosya yolu veya mutlak bir dosya yolu belirleyebilirsiniz. Örneğin, foo.txtadlı bir dizinde docsev dizini altında ve bar.txtiçindedir /var/tmp, yapabileceğiniz

scp username@host.example.com:docs/foo.txt .
scp username@host.example.com:/var/tmp/bar.txt .

Dosya adı, uzak kabuğa özel karakterler içeriyorsa (genellikle beyaz boşluk veya !"#$&'*;<>?[\]^`{|}~), yerel kabuğa kaçmak için, bunlardan uzak kabuk için kaçmanız gerektiğini unutmayın. Örneğin, dosya aranır foo bar.txtve giriş dizininizdeyse:

scp username@host.example.com:'foo\ bar.txt' .

Noktalama işaretleri içeren dosyalarda sorun yaşıyorsanız, bunları aktarmak sftpyerine kullanmayı deneyin scp. FUSE kullanabilirsiniz : ya da uzak makinenin dosya sistemini sshfs kullanarak bağlayın ve daha sonra sıradan dosya işleme komutları kullanın.

mkdir host.example.com
sshfs username@host.example.com:/ host.example.com
cp host.example.com/path/to/file .

1

Eğer biri DMZ kullanıcısı ve Parolasına sahipse, kolayca SCP yapabilirsiniz. Yerel makinedesiniz: DMZ'den yerel linux makinenize (çekme). Folder2 içindeki abc.text dosyasını mevcut giriş yapmış PWD'nize kopyalamak anlamına gelir.

scp user@111111:folder1/folder2/abc.txt .

Şifre isteyecek

bu kadar

Şimdi bir klasör göndermek istiyorsunuz, yerel makinenizdeki alt klasörler ve dosyalar DMZ'ye:

usr @ localmachine: ~ / abc / defs> scp -r klasörü / usr @ 111111: vkrishna / docker /

tekrar şifre sorulacak

: uzak makinenin kök klasörü ve vkrishna oradaki klasör ve tekrar docker alt klasörü. Yerel olarak defs klasörü, tamamen transfer etmek istediğimiz "klasör" adlı bir klasöre sahiptir.

/ Abc / defs / folder gibi

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.