Bir klasörü kullanarak uzaktan kumandadan yerel ana bilgisayara nasıl kopyalarım scp?
sshSunucumda oturum açmak için kullanıyorum .
Ardından, uzak klasörü fooyerel 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?
sshSunucumda oturum açmak için kullanıyorum .
Ardından, uzak klasörü fooyerel 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
-Cbayrak sıkıştırma ekliyor ve -cbayrak scp -c blowfish a@b:something . , dimuthu'nun cevabında görüldüğü
Desktop/fooveya olacak Desktop/allcontentsofFooGoherescp 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 fooiçinde Desktopve tüm alt dirs fooaltı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 xxxxolduğ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/,pwdscp mevcut tüm dosyaların yerini alacakhostname ana bilgisayar adı veya IP adresi olacak-P portnumberNot: 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
pwdKonumu 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.311veya 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
-Cbayrak 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ü scpkomutla 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 sftpkomutu sadece yazın helpveya ?.