Cara Menggunakan Perintah SCP dalam Linux

Tutorial mudah untuk membantu anda memindahkan fail ke sistem jauh dari sistem Linux anda menggunakan arahan scp.

SCP bermaksud 'Salinan Selamat'. scp ialah utiliti baris arahan yang ditawarkan oleh Linux yang membenarkan pemindahan fail dan direktori dari satu mesin ke mesin lain melalui rangkaian yang tidak selamat.

Jika anda ingin menyalin fail dari satu sistem ke sistem yang lain, maka scp boleh menjadi pilihan yang sangat baik untuk membuat pemindahan selamat bagi fail dan direktori. Apabila kedua-dua mesin berkomunikasi disambungkan melalui rangkaian yang sama, kemudian menggunakan scp menjadi mungkin.

Anda boleh sangat bergantung pada scp perintah untuk kerahsiaan dan integriti kerana fail yang sedang dipindahkan dan kata laluan yang digunakan untuk pemindahan kedua-duanya disulitkan. Tiada maklumat sensitif akan didedahkan walaupun sesiapa cuba mengintip trafik semasa pemindahan ini sedang berjalan.

Dalam tutorial ini, kita akan melihat contoh yang berbeza scp perintah. Kami juga akan melihat beberapa pilihan yang sering digunakan dengan scp perintah.

Bermula dengan arahan scp

Menggunakan scp arahan anda boleh memindahkan fail/direktori:

  • Daripada mesin tempatan anda kepada mesin jauh.
  • Antara dua mesin jauh.
  • Daripada mesin jauh ke mesin tempatan anda.

Sintaks umum:

scp [Pilihan] [nama_fail_sumber] [pengguna@Hos_destinasi]:folder_destinasi

Marilah kita memahami sifat-sifat asas perintah ini satu persatu.

  • [nama_fail_sumber] Ini ialah fail sumber yang anda ingin salin.
  • [pengguna@destination_Host] Ini ialah nama pengguna sistem jauh tempat anda ingin menyalin fail. Alamat IP mesin jauh juga digunakan dalam atribut ini selepas '@‘simbol.
  • [folder destinasi] Ini ialah direktori tempat anda ingin menyimpan fail yang disalin.

Nota: kolon (:) simbol digunakan dalam sintaks kerana ia membezakan antara lokasi tempatan dan terpencil. Kami menggunakan kolon (:) dengan sistem jauh untuk menentukan direktori yang mana fail harus disalin. Sekiranya kami tidak menentukan direktori sasaran, maka fail akan disalin ke direktori rumah pengguna sistem jauh.

Pilihan yang digunakan dengan scp

Beberapa pilihan yang paling popular digunakan dengan scp arahan disenaraikan di bawah.

PilihanPenerangan
-Cmembenarkan pemampatan fail dipindahkan
-vberikan output verbose
-rsalin fail dan direktori secara rekursif
-hlmmengekalkan kebenaran, mod dan masa capaian fail
-Ptukar port lalai yang digunakan oleh scp perintah

Kami akan melihat contoh pilihan ini, selanjutnya dalam tutorial.

Menyalin fail dari tempatan ke sistem jauh

scp membolehkan anda memindahkan fail dari sistem setempat anda ke sistem jauh menggunakan sintaks berikut. Ini membolehkan anda memindahkan atau memuat naik fail anda ke pelayan yang diletakkan dari jauh.

Sintaks Umum:

scp [nama_fail] remote_user@host:[destination_folder]

Contoh:

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

Dalam contoh ini, kami menyalin fail 'apache-tomcat-9.0.8.tar.gz' daripada sistem setempat ke sistem jauh yang alamat IPnya ialah '143.110.178.221'.

Pada sistem jauh, fail kini akan disalin pada direktori bernama 'gaurav'.

Pengeluaran:

gaurav@ubuntu:~$ scp apache-tomcat-9.0.8.tar.gz [email protected]:gaurav [email protected]'s password: apache-tomcat-9.0.8.tar.gz 100KB% 9989KB /s 02:00 gaurav@ubuntu:~$ 

Mari kita semak output pada sistem jauh untuk fail.

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

Oleh itu, fail berjaya disalin ke sistem jauh menggunakan scp perintah.

Menyalin berbilang fail ke sistem jauh

Dalam contoh sebelumnya, kami belajar untuk memindahkan fail ke sistem jauh menggunakan scp perintah. Kami kini akan melihat kaedah untuk memindahkan berbilang fail dari sistem setempat anda ke sistem jauh menggunakan arahan ini.

Sintaks Umum:

scp [fail 1] [fail 2] [fail n] remote_username@remote_host:[direktori khusus]

Marilah kita memahami proses mudah ini dengan contoh.

Contoh:

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

Di sini, berbilang fail disebut dalam arahan untuk disalin pada sistem jauh.

Pengeluaran:

gaurav@ubuntu:~$ scp ath.html abc.txt ppa-purge_0.2.8+bzr56_all.deb [email protected]:gaurav [email protected]'s password: ath.html 100KB 100% 9.099KB 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:~$

Pada sistem jauh:

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

Ketiga-tiga fail kini disalin pada sistem jauh.

Menyalin direktori ke sistem jauh

Anda boleh gunakan scp arahan untuk menyalin direktori daripada sistem tempatan anda ke sistem jauh. Prosesnya serupa dengan menyalin fail. Untuk menyalin kandungan direktori juga, anda boleh menggunakan -r pilihan dengan scp perintah.

The -r pilihan digunakan untuk menyalin direktori secara rekursif. Ini bermakna, semua sub-folder dan fail di dalam direktori juga akan disalin.

Sintaks umum:

scp -r [laluan direktori] remote_username@remote_host:[target_directory]

Contoh:

scp -r PycharmProjects [email protected]:gaurav

Pengeluaran:

gaurav@ubuntu:~$ scp -r PycharmProjects [email protected]:gaurav [email protected]'s password: __main__.py 100% 623 7.8KB/s 00:00 __init__.00 KB/s 00:00 __init__.00 :00 completion.py 100% 2929 28.1KB/s 00:00 search.py ​​100% 4728 38.7KB/s 00:00 uninstall.py 100% 2963 32.5KB/s 00:00 hash.py 100% 2168KB s 00:00 check.py 100% 1430 16.8KB/s 00:00 konfigurasi.py 100% 7125 50.4KB/s 00:00 show.py 100% 6289 49.8KB/s 00:00 muat turun.py 1000% KB/s 00:00 gaurav@ubuntu:~$ 

Menggunakan -r pilihan dengan scp arahan menyalin semua sub-folder dan fail dalam direktori dari mesin tempatan ke sistem jauh.

Memaparkan maklumat terperinci tentang proses scp

Anda boleh menggunakan -v (huruf kecil v) pilihan untuk memaparkan maklumat tentang fail yang sedang disalin sama ada pada alat kawalan jauh atau sistem setempat anda. Output jenis ini juga dipanggil sebagai output verbose.

Apabila pilihan ini digunakan, maklumat nyahpepijat lengkap tentang fail dipaparkan pada skrin.

Sintaks Umum:

scp -v [nama_fail] nama_pengguna@hos_pengguna:

Contoh:

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

Pengeluaran:

gaurav@ubuntu:~$ scp -v apache-tomcat-9.0.8.tar.gz [email protected]:team Melaksanakan: program /usr/bin/ssh host 159.89.170.11, root user, command scp -v -t pasukan OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 Dis 2017 debug1: Membaca data konfigurasi /home/gaurav/.ssh/config debug1: Membaca data konfigurasi /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config baris 19: Menggunakan pilihan untuk * debug1: Menyambung ke 159.89.170.11 [159.89.170.11] port 22. debug1: Sambungan diwujudkan. debug1: key_load_public: Tiada fail atau direktori debug1 sedemikian: fail identiti /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: saluran 0 rtype keluar-status balasan 0 nyahpepijat1: saluran 0: percuma: klien-sesi, saluran 1 nyahpepijat1: fd 0 mengosongkan O_NONBLOCK nyahpepijat1: fd 1 mengosongkan O_NONBLOCK Dipindahkan: dihantar 9826736, diterima 4016 bait, dalam 97.2 saat: dihantar 101133.9, menerima 41.3 debug1: Keluar status 0 gaurav@ubuntu:~$ 

Di sini, dalam output, anda boleh melihat bahawa maklumat nyahpepijat fail sedang dipaparkan pada terminal anda apabila fail scp arahan digunakan dengan -v pilihan.

Memindahkan fail antara dua hos jauh

Linux membolehkan anda menyambung ke beberapa hos jauh. Anda boleh memindahkan fail dan direktori antara dua hos jauh menggunakan scp perintah.

Sintaks Umum:

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

Sintaks mungkin kelihatan lebih luas tetapi agak mudah. Di sini, bahagian pertama arahan memberikan input tentang pengguna jauh dari mana fail itu akan disalin. kolon (:) dan / digunakan untuk menentukan nama fail atau nama direktori yang akan dipindahkan antara dua mesin jauh.

Bahagian kedua memberikan maklumat tentang sistem jauh sasaran di mana fail akan disalin.

Contoh:

scp -r [email protected]:gaurav [email protected]:/pasukan

Di sini, kami akan menyalin direktori bernama 'gaurav' secara rekursif daripada sistem tempatan ke sistem jauh. Fail akan disalin ke folder 'pasukan' pada sistem jauh.

Pengeluaran:

gaurav@ubuntu:~$ scp -r [email protected]:/gaurav [email protected]:/team [email protected]'s password: 1.py 100% 134 261.3KB/s 000.py0: 100% 377 949.2KB/s 00:00 abc.txt 100% 0 0.0KB/s 00:00 ath.html 100% 199KB 41.8MB/s 00:00 gaurav@ubuntu:~$

Di sini, kami menggunakan scp arahan pada sistem tempatan untuk memindahkan direktori bernama 'gaurav' dari satu pelayan jauh ke pelayan lain.

Pindahkan fail dari sistem jauh ke sistem setempat anda

Anda boleh memindahkan fail atau direktori dengan mudah dari sistem jauh ke sistem tempatan anda menggunakan scp perintah. Dalam perkataan yang lebih mudah, anda boleh memuat turun berbilang fail atau direktori dari pelayan jauh ke sistem tempatan anda menggunakan scp perintah.

Sintaks Umum:

scp remote_username@user_host:/files/file.txt /[folder_of_local_system]

Pengeluaran:

gaurav@ubuntu:~$ scp [email protected]:how.txt . kata laluan [email protected]: how.txt 100% 11 0.1KB/s 00:00 gaurav@ubuntu:~$

Di sini, saya telah memuat turun (menyalin) fail dari pelayan jauh ke direktori rumah saya. Oleh itu, saya telah menggunakan titik (.) untuk menentukan dalam arahan untuk menyalin fail ke direktori rumah saya.

Contoh Output:

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

Di sini, fail kini disalin ke direktori rumah saya dari pelayan jauh.

Dengan cara yang sama, anda boleh memuat turun berbilang fail atau direktori daripada pelayan jauh menggunakan scp perintah dengan pilihan yang sesuai.

Memampatkan fail untuk membuat pemindahan lebih cepat

Kadangkala, pemindahan fail besar mungkin memakan masa. Isu ini boleh diatasi semasa menggunakan scp perintah dengan -C (huruf besar C) pilihan.

Menggunakan -C pilihan, memampatkan fail saiz yang lebih besar yang memudahkan pemindahan lebih pantas dan dengan itu menjimatkan masa.

Satu fakta menarik tentang pilihan ini ialah, fail disalin dengan saiz asalnya pada sistem destinasi tetapi semasa proses pemindahan, saiznya dimampatkan untuk membolehkan pemindahan lebih pantas. Oleh itu, pemampatan hanya dilakukan pada rangkaian.

Sintaks Umum:

scp -C [nama_fail] nama_pengguna@hos_pengguna:[folder_target]

Mari kita lihat contoh perbandingan untuk memahami perbezaannya.

Pemindahan tanpa pilihan -C:

gaurav@ubuntu:~$ scp -rv dlink [email protected]:team Melaksanakan: program /usr/bin/ssh host 68.183.82.183, user root, command scp -v -r -t team OpenSSH_7.6p1 Ubuntu-4ubuntu0. 3, OpenSSL 1.0.2n 7 Dis 2017 debug1: Membaca data konfigurasi /home/trinity/.ssh/config debug1: Membaca data konfigurasi /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config baris 19: Menggunakan pilihan untuk * debug1 : Menyambung ke port 68.183.82.183 [68.183.82.183] 22. nyahpepijat1: Sambungan diwujudkan. debug1: client_input_channel_req: channel 0 rtype exit-status reply 0 debug1: channel 0: free: client-session, nchannels 1 debug1: fd 0 clearing O_NONBLOCK debug1: fd 1 clearing O_NONBLOCK Dipindahkan: dihantar 7516504 bytes, diterima oleh 6 saat. sesaat: dihantar 100693.7, terima 53.7 debug1: Keluar status 0 gaurav@ubuntu:~$ 

Daripada di atas, output kita dapat melihat bahawa masa yang diperlukan untuk pemindahan ialah 74.6 saat. Kami akan cuba memindahkan fail yang sama menggunakan pilihan -C dan perhatikan perbezaannya.

Pindahkan dengan pilihan -C:

gaurav@ubuntu:~$ scp -Crv dlink [email protected]:team Melaksanakan: program /usr/bin/ssh host 68.183.82.183, user root, command scp -v -r -t team OpenSSH_7.6p1 Ubuntu-4ubuntu0. 3, OpenSSL 1.0.2n 7 Dis 2017 debug1: Membaca data konfigurasi /home/trinity/.ssh/config debug1: Membaca data konfigurasi /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config baris 19: Menggunakan pilihan untuk * debug1 : Menyambung ke port 68.183.82.183 [68.183.82.183] 22. nyahpepijat1: Sambungan diwujudkan. . . webupload.img 100% 1834KB 98.7KB/s 00:18 Menghantar mod fail: C0664 1877552 router.img Sink: C0664 1877552 router.img router.img 100% 1834KB 1877552 router.img Sink: C0664 1877552 router.img router.img 100% 1834KB 100.3KB/s fail 3754103 DSL-2750U-Release-IN-T-01.00.07.zip Sinki: C0664 3754103 DSL-2750U-Release-IN-T-01.00.07.zip DSL-2750U-Release-IN-T.07. 100% 3666KB 218.5KB/s 00:16 Tenggelam: E nyahpepijat1: client_input_channel_req: saluran 0 rtype exit-status reply 0 nyahpepijat1: saluran 0: percuma: klien-sesi, saluran 1 nyahpepijat1: fd 0 mengosongkan O_NONBLOCK O_NBLOCK nyahpepijat Dipindahkan: dihantar 7518864, menerima 3828 bait, dalam 51.0 saat Bait sesaat: dihantar 100245.4, diterima 51.0 nyahpepijat1: Keluar status 0 nyahpepijat1: mampat keluar: data mentah 7511925, dimampatkan 7513136, dimampatkan 1.6 data, faktor pepijat1.6 dimampatkan 999, faktor 0.68 gaurav@ubuntu:~$

Di sini, kita boleh melihat dengan mudah bahawa menggunakan -C pilihan dengan scp arahan telah membenarkan kami memampatkan fail melalui rangkaian sekali gus terbukti menjadi pilihan penjimat masa.

Menggunakan port ssh yang berbeza untuk pemindahan fail

Semasa menggunakan scp arahan port lalai yang digunakan ialah pelabuhan 22. Pengguna mempunyai kebebasan untuk menyesuaikan pilihan port ini. Anda boleh menggunakan -P (pilihan P huruf besar) dengan scp arahan untuk menggunakan port pilihan anda.

Sintaks Umum:

cp -P [nombor_port_baharu] [nama_fail/nama_direktori] remote_user@host:[destination_folder]

Contoh:

scp -P 4248 dlink [email protected]:pasukan

Menggunakan arahan di atas, fail akan dipindahkan ke pelayan jauh. Tetapi kali ini, pelabuhan yang digunakan adalah pelabuhan 4248 bukannya lalai pelabuhan 22.

Kesimpulan

Selepas melalui tutorial ini, kami telah belajar tentang sifat dinamik scp arahan yang digunakan untuk memindahkan atau menyalin fail dari satu sistem ke sistem yang lain. Pilihan ini juga boleh digunakan untuk memuat turun fail atau direktori daripada pelayan jauh. Oleh itu, kita boleh membuat kesimpulan bahawa scp arahan terbukti sangat membantu untuk pemindahan fail apabila anda perlu mengendalikan lebih daripada satu sistem serta pelayan jauh secara serentak.