Linux'ta SCP Komutu Nasıl Kullanılır

scp komutunu kullanarak dosyaları Linux sisteminizden uzak bir sisteme aktarmanıza yardımcı olacak kolay bir eğitim.

SCP, 'Güvenli Kopyalama' anlamına gelir. scp Linux tarafından sunulan ve güvenli olmayan bir ağ üzerinden bir makineden diğerine dosya ve dizin aktarımına izin veren bir komut satırı yardımcı programıdır.

Dosyaları bir sistemden diğerine kopyalamak istiyorsanız, scp dosya ve dizinlerin güvenli bir şekilde aktarılmasını sağlamak için çok iyi bir seçenek olabilir. İletişim kuran iki makine aynı ağ üzerinden bağlandığında, scp mümkün hale gelir.

büyük ölçüde güvenebilirsiniz scp Hem aktarılmakta olan dosya hem de aktarım için kullanılan parola şifrelendiğinden gizlilik ve bütünlük için komut verilir. Bu aktarım devam ederken herhangi biri trafiği gözetlemeye çalışsa bile hiçbir hassas bilgi ifşa edilmeyecektir.

Bu derste, farklı örneklerini göreceğiz. scp emretmek. Ayrıca, sık kullanılan seçeneklerden bazılarına da göz atacağız. scp emretmek.

scp komutunu kullanmaya başlama

Kullanmak scp komut dosyaları/dizinleri aktarabilirsiniz:

  • Yerel makinenizden uzak bir makineye.
  • İki uzak makine arasında.
  • Uzak bir makineden yerel makinenize.

Genel sözdizimi:

scp [Option] [source_file_name] [user@destination_Host]:destination_folder

Bu komutun temel özelliklerini tek tek anlayalım.

  • [kaynak_dosya_adı] Bu, kopyalamak istediğiniz kaynak dosyadır.
  • [user@destination_Host] Bu, dosyayı kopyalamak istediğiniz uzak sistemin kullanıcı adıdır. Uzak makinenin IP adresi de bu öznitelikte kullanılır.@' sembolü.
  • [Hedef klasör] Bu, kopyalanan dosyayı kaydetmek istediğiniz dizindir.

Not: kolon (:) sembolü, yerel ve uzak konumlar arasında ayrım yaptığı için sözdiziminde kullanılır. iki nokta üst üste kullanıyoruz (:) dosyaların kopyalanacağı dizini belirtmek için uzak sistemle. Hedef dizini belirlemememiz durumunda, dosyalar uzak sistem kullanıcısının ana dizinine kopyalanacaktır.

İle kullanılan seçenekler scp

ile kullanılan en popüler seçeneklerden bazıları scp komutu aşağıda listelenmiştir.

SeçenekAçıklama
-Caktarılacak dosyanın sıkıştırılmasına izin ver
-vayrıntılı çıktıyı ver
-rdosyaları ve dizinleri yinelemeli olarak kopyalayın
-Pdosyaların izinlerini, modlarını ve erişim sürelerini koruyun
-Ptarafından kullanılan varsayılan bağlantı noktasını değiştirin scp emretmek

Bu seçeneklerin örneklerini öğreticinin ilerleyen bölümlerinde göreceğiz.

Dosyayı yerelden uzak bir sisteme kopyalama

scp aşağıdaki sözdizimini kullanarak dosyaları yerel sisteminizden uzak bir sisteme aktarmanıza olanak tanır. Bu, dosyalarınızı uzaktan yerleştirilmiş bir sunucuya aktarmanıza veya yüklemenize olanak tanır.

Genel Sözdizimi:

scp [dosya_adı] remote_user@host:[destination_folder]

Örnek:

scp apache-tomcat-9.0.8.tar.gz [email protected]:gaurav

Bu örnekte, yerel sistemden 'apache-tomcat-9.0.8.tar.gz' dosyasını IP adresi '143.110.178.221' olan uzak sisteme kopyalıyoruz.

Uzak sistemde, dosya şimdi 'gaurav' adlı dizine kopyalanacaktır.

Çıktı:

gaurav@ubuntu:~$ scp apache-tomcat-9.0.8.tar.gz [email protected]:gaurav [email protected]'in parolası: apache-tomcat-9.0.8.tar.gz %100 9589KB 79.8KB /s 02:00 gaurav@ubuntu:~$ 

Dosya için uzak sistemdeki çıktıyı kontrol edelim.

root@ubuntu-s-1vcpu-1gb-blr1-01:~/gaurav# ls apache-tomcat-9.0.8.tar.gz root@ubuntu-s-1vcpu-1gb-blr1-01:~/gaurav#

Böylece dosya, uzak sisteme başarıyla kopyalanır. scp emretmek.

Birden çok dosyayı uzak bir sisteme kopyalama

Önceki örnekte, uzak sisteme bir dosya aktarmayı öğrendik. scp emretmek. Şimdi bu komutu kullanarak yerel sisteminizden uzak bir sisteme birden fazla dosya aktarma yöntemini göreceğiz.

Genel Sözdizimi:

scp [dosya 1] [dosya 2] [dosya n] remote_username@remote_host:[belirli dizin]

Bu basit işlemi bir örnekle anlayalım.

Örnek:

scp ath.html abc.txt ppa-purge_0.2.8+bzr56_all.deb [email protected]:gaurav

Burada, uzaktaki sisteme kopyalanacak komutta birden fazla dosyadan bahsedilir.

Çıktı:

gaurav@ubuntu:~$ scp ath.html abc.txt ppa-purge_0.2.8+bzr56_all.deb [email protected]:gaurav [email protected]'in şifresi: ath.html %100 199KB 94.7KB/s 00: 02 abc.txt 100% 0 0.0KB/s 00:00 ppa-purge_0.2.8+bzr56_all.deb 100% 4360 42.2KB/s 00:00 gaurav@ubuntu:~$

Uzak sistemde:

root@ubuntu-s-1vcpu-1gb-blr1-01:~/gaurav# ls -l toplam 9800 -rw-r--r-- 1 kök kök 0 5 Ekim 08:58 abc.txt -rw-r-- r-- 1 kök kök 9818695 5 Ekim 08:35 apache-tomcat-9.0.8.tar.gz -rw-r--r-- 1 kök kök 204057 5 Ekim 08:58 ath.html -rw-r-- r-- 1 kök kök 4360 5 Ekim 08:58 ppa-purge_0.2.8+bzr56_all.deb root@ubuntu-s-1vcpu-1gb-blr1-01:~/gaurav#

Her üç dosya da artık uzak sisteme kopyalanmıştır.

Uzak sisteme bir dizini kopyalama

Kullanabilirsiniz scp yerel sisteminizden uzak sisteme bir dizini kopyalama komutu. İşlem, bir dosyayı kopyalamaya benzer. Dizinin içeriğini de kopyalamak için -r seçeneği ile scp emretmek.

bu -r seçeneği, bir dizini yinelemeli olarak kopyalamak için kullanılır. Bu, dizindeki tüm alt klasör ve dosyaların da kopyalanacağı anlamına gelir.

Genel sözdizimi:

scp -r [dizin yolu] remote_username@remote_host:[target_directory]

Örnek:

scp -r PycharmProjects [email protected]:gaurav

Çıktı:

gaurav@ubuntu:~$ scp -r PycharmProjects [email protected]:gaurav [email protected]'in parolası: __main__.py %100 623 7.8KB/sn 00:00 __init__.py %100 23 0.4KB/sn 00 :00 tamamlama.py %100 2929 28,1KB/sn 00:00 search.py ​​%100 4728 38,7KB/sn 00:00 uninstall.py %100 2963 32,5KB/sn 00:00 hash.py %100 1681 21.3KB/ s 00:00 check.py 100% 1430 16.8KB/sn 00:00 configuration.py 100% 7125 50.4KB/sn 00:00 show.py 100% 6289 49.8KB/sn 00:00 download.py 100% 6623 48,2 KB/sn 00:00 gaurav@ubuntu:~$ 

Kullanmak -r seçeneği ile scp komutu, dizindeki tüm alt klasörleri ve dosyaları yerel makineden uzak sisteme kopyalar.

scp işlemi hakkında ayrıntılı bilgi görüntüleme

kullanabilirsiniz -v (küçük harf v) uzak veya yerel sisteminizde kopyalanmakta olan dosyalar hakkındaki bilgileri görüntüleme seçeneği. Bu tür çıktı, ayrıntılı çıktı olarak da adlandırılır.

Bu seçenek kullanıldığında, dosyayla ilgili tam hata ayıklama bilgisi ekranda görüntülenir.

Genel Sözdizimi:

scp -v [dosya_adı] user_name@user_host:

Örnek:

scp -v apache-tomcat-9.0.8.tar.gz [email protected]:takım

Çıktı:

gaurav@ubuntu:~$ scp -v apache-tomcat-9.0.8.tar.gz [email protected]:team Yürütme: program /usr/bin/ssh ana bilgisayar 159.89.170.11, kullanıcı kökü, komut scp -v -t ekip OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 Aralık 2017 debug1: Yapılandırma verilerini okuma /home/gaurav/.ssh/config debug1: Yapılandırma verilerini okuma /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config satır 19: * debug1 için seçenekler uygulanıyor: 159.89.170.11 [159.89.170.11] bağlantı noktası 22'ye bağlanılıyor. debug1: Bağlantı kuruldu. debug1: key_load_public: Böyle bir dosya veya dizin yok debug1: kimlik dosyası /home/gaurav/.ssh/id_rsa type -1 apache-tomcat-9.0.8.tar.gz %100 9589KB 99.8KB/s 01:36 debug1: client_input_channel_req: kanal 0 rtype çıkış durumu yanıtı 0 hata ayıklama1: kanal 0: boş: istemci oturumu, nchannels 1 hata ayıklama1: fd 0 temizleniyor O_NONBLOCK hata ayıklama1: fd 1 temizleniyor O_NONBLOCK Aktarıldı: gönderildi 9826736, 4016 bayt, 97.2 saniyede alındı ​​Saniyede bayt: gönderildi 101133.9, 41.3 hata ayıklama alındı1: Çıkış durumu 0 gaurav@ubuntu:~$ 

Burada çıktıda, dosyanın hata ayıklama bilgilerinin terminalinizde görüntülendiğini görebilirsiniz. scp komutu ile birlikte kullanılır. -v seçenek.

Dosyaları iki uzak ana bilgisayar arasında aktarma

Linux, birden çok uzak ana bilgisayara bağlanmanıza izin verir. kullanarak iki uzak ana bilgisayar arasında dosya ve dizin aktarabilirsiniz. scp emretmek.

Genel Sözdizimi:

scp remote_user_1@host_1:/[file_name] remote_user_2@host_2:[folder_to_save]

Sözdizimi biraz daha geniş görünebilir ancak oldukça basittir. Burada, komutun ilk kısmı, dosyanın kopyalanacağı uzak kullanıcı hakkında girdi verir. iki nokta üst üste (:) ve / iki uzak makine arasında aktarılacak dosya adını veya dizin adını belirtmek için kullanılır.

İkinci kısım, dosyanın kopyalanacağı hedef uzak sistem hakkında bilgi verir.

Örnek:

scp -r [email protected]:gaurav [email protected]:/takım

Burada, yerel sistemden uzak bir sisteme özyinelemeli olarak 'gaurav' adlı bir dizini kopyalayacağız. Dosya, uzak sistemdeki bir "ekip" klasörüne kopyalanacaktır.

Çıktı:

gaurav@ubuntu:~$ scp -r [email protected]:/gaurav [email protected]:/team [email protected]'ün şifresi: 1.py %100 134 261.3KB/sn 00:00 options.py %100 377 949.2KB/sn 00:00 abc.txt %100 0 0.0KB/sn 00:00 ath.html %100 199KB 41.8MB/sn 00:00 gaurav@ubuntu:~$

Burada, kullandık scp 'gaurav' adlı bir dizini bir uzak sunucudan diğerine aktarmak için yerel sistemdeki komut.

Dosyaları uzak sistemden yerel sisteminize aktarın

Dosyaları veya dizinleri uzak sistemden yerel sisteminize kolayca aktarabilirsiniz. scp emretmek. Daha basit bir deyişle, uzak sunucudan yerel sisteminize birden çok dosya veya dizin indirebilirsiniz. scp emretmek.

Genel Sözdizimi:

scp remote_username@user_host:/files/file.txt /[klasör_of_local_system]

Çıktı:

gaurav@ubuntu:~$ scp [email protected]:how.txt . [email protected]'in şifresi: how.txt 100% 11 0.1KB/sn 00:00 gaurav@ubuntu:~$

Burada, dosyayı uzak sunucudan ana dizine indirdim (kopyaladım). Bu nedenle, nokta kullandım (.) dosyayı ana dizine kopyalamak için komutta belirtmek için.

Örnek Çıktı:

gaurav@ubuntu:~$ ls -l how.txt -rw-r--r-- 1 gaurav gaurav 11 6 Ekim 09:49 how.txt gaurav@ubuntu:~$ 

Burada, dosya şimdi uzak sunucudan ana dizine kopyalandı.

Aynı şekilde, uzak sunucudan birden çok dosya veya dizin indirebilirsiniz. scp uygun seçeneklerle komut verin.

Daha hızlı aktarım yapmak için dosyaları sıkıştırma

Bazen büyük dosyaların aktarılması zaman alabilir. kullanılırken bu sorun giderilebilir. scp ile komut -C (büyük harf C) seçenek.

Kullanmak -C seçeneği, daha büyük boyutlu dosyaları sıkıştırarak daha hızlı aktarımı kolaylaştırır ve böylece zaman kazandırır.

Bu seçenekle ilgili ilginç bir gerçek, dosyanın hedef sistemde orijinal boyutuyla kopyalanması, ancak aktarım işlemi sırasında boyutun daha hızlı bir aktarım sağlamak için sıkıştırılmasıdır. Böylece sıkıştırma sadece ağ üzerinde yapılır.

Genel Sözdizimi:

scp -C [dosya_adı] user_name@user_host:[hedef_klasör]

Aradaki farkı anlamak için karşılaştırmalı bir örnek görelim.

-C seçeneği olmadan transfer:

gaurav@ubuntu:~$ scp -rv dlink [email protected]:team Yürütme: program /usr/bin/ssh ana bilgisayar 68.183.82.183, kullanıcı kökü, komut scp -v -r -t ekibi OpenSSH_7.6p1 Ubuntu-4ubuntu0. 3, OpenSSL 1.0.2n 7 Aralık 2017 debug1: /home/trinity/.ssh/config debug1 yapılandırma verilerinin okunması: /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config satır 19: * debug1 için seçeneklerin uygulanması : 68.183.82.183 [68.183.82.183] 22 numaralı bağlantı noktasına bağlanıyor. hata ayıklama1: Bağlantı kuruldu. debug1: client_input_channel_req: kanal 0 rtype çıkış durumu yanıtı 0 hata ayıklama1: kanal 0: boş: istemci oturumu, nchannels 1 hata ayıklama1: fd 0 temizleniyor O_NONBLOCK hata ayıklama1: fd 1 temizleniyor O_NONBLOCK Aktarıldı: 7516504, gönderildi, 74.6 saniyede 4008 bayt alındı ​​Bayt saniyede: 100693.7 gönderildi, 53,7 hata ayıklama alındı1: Çıkış durumu 0 gaurav@ubuntu:~$ 

Yukarıdakilerden, aktarım için gereken sürenin 74,6 saniye olduğunu görebiliriz. Aynı dosyayı -C seçeneğini kullanarak aktarmayı deneyeceğiz ve farkı gözlemleyeceğiz.

-C seçeneği ile transfer:

gaurav@ubuntu:~$ scp -Crv dlink [email protected]:team Yürütme: program /usr/bin/ssh ana bilgisayar 68.183.82.183, kullanıcı kökü, komut scp -v -r -t ekibi OpenSSH_7.6p1 Ubuntu-4ubuntu0. 3, OpenSSL 1.0.2n 7 Aralık 2017 debug1: /home/trinity/.ssh/config debug1 yapılandırma verilerinin okunması: /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config satır 19: * debug1 için seçeneklerin uygulanması : 68.183.82.183 [68.183.82.183] 22 numaralı bağlantı noktasına bağlanıyor. hata ayıklama1: Bağlantı kuruldu. . . webupload.img %100 1834KB 98.7KB/sn 00:18 Dosya gönderme modları: C0664 1877552 router.img Alıcı: C0664 1877552 router.img router.img %100 1834KB 100.3KB/sn 00:18 Alıcı: E Dosya gönderme modları: C0664 3754103 DSL-2750U-Release-IN-T-01.00.07.zip Alıcı: C0664 3754103 DSL-2750U-Release-IN-T-01.00.07.zip DSL-2750U-Release-IN-T-01.00.07.zip %100 3666KB 218.5KB/s 00:16 Havuz: E hata ayıklama1: client_input_channel_req: kanal 0 rtype çıkış durumu yanıtı 0 hata ayıklama1: kanal 0: boş: istemci oturumu, nchannels 1 hata ayıklama1: fd 0 temizleme O_NONBLOCK hata ayıklama1: fd 1 temizleme O_NONBLOCK Aktarıldı: 7518864 gönderildi, 3828 bayt, 51.0 saniyede alındı. 999, faktör 0.68 gaurav@ubuntu:~$

Burada, kullanarak kolayca gözlemleyebiliriz. -C seçeneği ile scp komutu, dosyayı ağ üzerinden sıkıştırmamıza izin vererek zaman kazandıran bir seçenek olduğunu kanıtladı.

Dosya aktarımı için farklı bir ssh bağlantı noktası kullanma

kullanırken scp dağıtılan varsayılan bağlantı noktası komutu 22 numaralı bağlantı noktası. Kullanıcı, bu bağlantı noktası seçimini kişiselleştirme özgürlüğüne sahiptir. kullanabilirsiniz -P (büyük harf P seçeneği) ile scp İstediğiniz bağlantı noktasını kullanmak için komut.

Genel Sözdizimi:

cp -P [yeni_port_numarası] [dosya_adı/dizin_adı] uzak_kullanıcı@anasistemi:[hedef_klasör]

Örnek:

scp -P 4248 dlink [email protected]:ekip

Yukarıdaki komutu kullanarak dosya uzak sunucuya aktarılacaktır. Ancak bu sefer kullanılan bağlantı noktası bağlantı noktası 4248 varsayılan yerine 22 numaralı bağlantı noktası.

Çözüm

Bu öğreticiden geçtikten sonra, dinamik doğası hakkında bilgi edindik. scp Dosyaları bir sistemden diğerine aktarmak veya kopyalamak için kullanılan komut. Bu seçenek, uzak sunucudan dosya veya dizin indirmek için de kullanılabilir. Böylece, şu sonuca varabiliriz: scp komutu, aynı anda birden fazla sistemi ve uzak sunucuları işlemeniz gerektiğinde dosya aktarımları için çok yararlı olduğunu kanıtlıyor.