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.
Pilihan | Penerangan |
-C | membenarkan pemampatan fail dipindahkan |
-v | berikan output verbose |
-r | salin fail dan direktori secara rekursif |
-hlm | mengekalkan kebenaran, mod dan masa capaian fail |
-P | tukar 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.