Bir klasörü kullanarak uzaktan kumandadan yerel ana bilgisayara nasıl kopyalarım scp
?
ssh
Sunucumda oturum açmak için kullanıyorum .
Ardından, uzak klasörü foo
yerel olarak kopyalamak istiyorum /home/user/Desktop
.
Bunu nasıl başarabilirim?
Bir klasörü kullanarak uzaktan kumandadan yerel ana bilgisayara nasıl kopyalarım scp
?
ssh
Sunucumda oturum açmak için kullanıyorum .
Ardından, uzak klasörü foo
yerel olarak kopyalamak istiyorum /home/user/Desktop
.
Bunu nasıl başarabilirim?
Yanıtlar:
scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
Foo'nun sonuna '/' karakterini dahil etmeyerek, sadece dizinin içeriğini değil, dizinin kendisini de (içindekiler dahil) taşıyacaksınız.
Gönderen man scp
( Çevrimiçi kılavuza bakın )
-r Tüm dizinleri özyinelemeli olarak kopyala
-C
bayrak sıkıştırma ekliyor ve -c
bayrak scp -c blowfish a@b:something .
, dimuthu'nun cevabında görüldüğü
Desktop/foo
veya olacak Desktop/allcontentsofFooGohere
scp bazen bana garip davranıyor gibi görünüyor bir şey daha sonra başka bir şey
scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
seninle bitmeli Desktop/foo
. İle scp -r user@your.server.example.com:/path/to/foo/. /home/user/Desktop/
size içeriğiyle ile sona erecek foo
içinde Desktop
ve tüm alt dirs foo
altında mayınlarıDesktop
SCP'nin tam gücünü kullanmak için aşağıdaki adımlardan geçmeniz gerekir:
Ardından, örneğin bu ~ / .ssh / config dosyasına sahipseniz :
Host test
User testuser
HostName test-site.com
Port 22022
Host prod
User produser
HostName production-site.com
Port 22022
kendinizi şifre girişinden koruyacak ve scp sözdizimini basitleştireceksiniz :
scp -r prod:/path/foo /home/user/Desktop # copy to local
scp -r prod:/path/foo test:/tmp # copy from remote prod to remote test
Dahası, uzaktan yol tamamlamayı kullanabilirsiniz:
scp test:/var/log/ # press tab twice
Display all 151 possibilities? (y or n)
Güncelleme:
Uzaktan bash tamamlama etkinleştirerek için, hem bash kabuğu olması gerekir <source>
ve <target>
ana ve düzgün çalışıyor bash tamamlama. Daha fazla bilgi için ilgili sorulara bakın:
Scp kullanırken uzak yollar için otomatik tamamlama nasıl etkinleştirilir?
SCP dosya adı sekmesinin tamamlanması
Tümünü Yerel Konumdan Uzak Konum'a kopyalamak için (Yükle)
scp -r /path/from/destination username@hostname:/path/to/destination
Tümünü Uzak Konum'dan Yerel Konum'a kopyalamak için (İndir)
scp -r username@hostname:/path/from/destination /path/to/destination
Özel Liman nerede xxxx
olduğunu özel liman sayısı
scp -r -P xxxx username@hostname:/path/from/destination /path/to/destination
Geçerli dizinde Uzaktan Yerel'e kopyala
scp -r username@hostname:/path/from/file .
Yardım:
-r
Tüm dizinleri ve dosyaları özyinelemeli olarak kopyala/
,pwd
scp
mevcut tüm dosyaların yerini alacakhostname
ana bilgisayar adı veya IP adresi olacak-P portnumber
Not: Bazen, güvenlik duvarında bağlantı noktasına izin verilmemesi nedeniyle özel bağlantı noktası çalışmaz, bu nedenle gelen ve giden bağlantı için güvenlik duvarında özel bağlantı noktasına izin verildiğinden emin olun
pwd
Konumu almak ve aynı şekilde kullanmak için kullanın
Her zaman kullandığım:
scp -r username@IP:/path/to/server/source/folder/ .
. (nokta) : anlamına gelir current folder
. bu yüzden sunucudan kopyalayın ve yalnızca buraya yapıştırın.
IP : gibi bir IP adresi olabilir 125.55.41.311
veya ana bilgisayar gibi olabilir ns1.mysite.com
.
.
Geçerli dizine atıfta bulunduğunuzu belirttiğiniz için teşekkür ederiz !
Kataloğu uzak sunucuda sıkıştırmak daha iyidir:
tar czfP backup.tar.gz /path/to/catalog
İkincisi, uzaktan kumandadan indirin:
scp user@your.server.example.com:/path/to/backup.tar.gz .
Sonunda dosyaları çıkarın:
tar -xzvf backup.tar.gz
-C
bayrak gibi sıkıştırma ekleyebilirsiniz scp -C a@b:bigfile .
.
Ve uzak konumdan indirmek için bir dosya cehenneminiz varsa ve güvenliği önemsemiyorsanız, scp varsayılan şifrelemesini (Triple-DES) 'balon balığı' gibi bir şeye değiştirmeyi deneyin.
Bu, dosya kopyalama süresini önemli ölçüde azaltır.
scp -c blowfish -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
arcfour
, yerine daha iyi performans elde edersiniz blowfish
, ancak güvenlik kusurları vardır.
Tipik senaryo,
scp -r -P port username@ip:/path-to-folder .
bir örnekle açıkladı,
scp -r -P 27000 abc@10.70.12.12:/tmp/hotel_dump .
nerede,
port = 27000
username = "abc" , remote server username
path-to-folder = tmp/hotel_dump
. = current local directory
Soru, bir klasörü scp
komutla uzaktan yerelden lokal olarak nasıl kopyalayacağımızdı .
$ scp -r userRemote@remoteIp:/path/remoteDir /path/localDir
Ancak burada bunu yapmanın en iyi yolu sftp
- SSH Dosya Aktarım Protokolü (ayrıca Güvenli Dosya Aktarım Protokolü veya SFTP), herhangi bir güvenilir veri akışı üzerinden dosya erişimi, dosya aktarımı ve dosya yönetimi sağlayan bir ağ protokolüdür. (Wikipedia).
$ sftp user_remote@remote_ip
sftp> cd /path/to/remoteDir
sftp> get -r remoteDir
Fetching /path/to/remoteDir to localDir 100% 398 0.4KB/s 00:00
Hakkında yardım için sftp
komutu sadece yazın help
veya ?
.