Tutorial mudah untuk membantu Anda mentransfer file ke sistem jarak jauh dari sistem Linux Anda menggunakan perintah scp.
SCP adalah singkatan dari 'Salinan Aman'. scp
adalah utilitas baris perintah yang ditawarkan oleh Linux yang memungkinkan transfer file dan direktori dari satu mesin ke mesin lain melalui jaringan yang tidak aman.
Jika Anda ingin menyalin file dari satu sistem ke sistem lain, maka scp
bisa menjadi pilihan yang sangat baik untuk melakukan transfer file dan direktori dengan aman. Ketika dua mesin yang berkomunikasi terhubung melalui jaringan yang sama, maka gunakan scp
menjadi mungkin.
Anda dapat sangat mengandalkan scp
perintah untuk kerahasiaan dan integritas sebagai file yang sedang ditransfer dan kata sandi yang digunakan untuk transfer keduanya dienkripsi. Tidak ada informasi sensitif yang akan terungkap bahkan jika ada yang mencoba mengintip lalu lintas saat transfer ini sedang berlangsung.
Dalam tutorial ini, kita akan melihat berbagai contoh dari scp
memerintah. Kami juga akan melihat beberapa opsi yang sering digunakan dengan scp
memerintah.
Memulai dengan perintah scp
Menggunakan scp
perintah Anda dapat mentransfer file/direktori:
- Dari mesin lokal Anda ke mesin jarak jauh.
- Antara dua mesin jarak jauh.
- Dari mesin jarak jauh ke mesin lokal Anda.
Sintaks umum:
scp [Opsi] [source_file_name] [user@destination_Host]:folder_destinasi
Mari kita pahami atribut dasar dari perintah ini satu per satu.
- [nama_file_sumber] Ini adalah file sumber yang ingin Anda salin.
- [pengguna@destinasi_Host] Ini adalah nama pengguna sistem jarak jauh tempat Anda ingin menyalin file. Alamat IP mesin jarak jauh juga digunakan dalam atribut ini setelah tanda '
@
' simbol. - [folder tujuan] Ini adalah direktori tempat Anda ingin menyimpan file yang disalin.
Catatan: usus besar (:
) simbol digunakan dalam sintaks karena membedakan antara lokasi lokal dan jarak jauh. Kami menggunakan titik dua (:
) dengan sistem jarak jauh untuk menentukan direktori tempat file akan disalin. Jika kita tidak menentukan direktori target, maka file akan disalin ke direktori home dari pengguna sistem jarak jauh.
Opsi yang digunakan dengan scp
Beberapa opsi paling populer yang digunakan dengan scp
perintah tercantum di bawah ini.
Pilihan | Keterangan |
-C | memungkinkan kompresi file yang akan ditransfer |
-v | berikan output verbose |
-R | salin file dan direktori secara rekursif |
-P | pertahankan izin, mode, dan waktu akses file |
-P | ubah port default yang digunakan oleh scp memerintah |
Kita akan melihat contoh opsi ini, lebih lanjut dalam tutorial.
Menyalin file dari lokal ke sistem jarak jauh
scp
memungkinkan Anda untuk mentransfer file dari sistem lokal Anda ke sistem jarak jauh menggunakan sintaks berikut. Ini memungkinkan Anda untuk mentransfer atau mengunggah file Anda ke server yang ditempatkan dari jarak jauh.
Sintaks Umum:
scp [nama_file] remote_user@host:[folder_tujuan]
Contoh:
scp apache-Tomcat-9.0.8.tar.gz [email protected]:gaurav
Dalam contoh ini, kami menyalin file 'apache-tomcat-9.0.8.tar.gz' dari sistem lokal ke sistem jarak jauh yang alamat IP-nya adalah '143.110.178.221'.
Pada sistem jarak jauh, file sekarang akan disalin pada direktori bernama 'gaurav'.
Keluaran:
gaurav@ubuntu:~$ scp apache-tomcat-9.0.8.tar.gz [email protected]:gaurav [email protected] kata sandi: apache-tomcat-9.0.8.tar.gz 100% 9589KB 79.8KB /s 02:00 gaurav@ubuntu:~$
Mari kita periksa output pada sistem jarak jauh untuk file tersebut.
root@ubuntu-s-1vcpu-1gb-blr1-01:~/gaurav# ls apache-Tomcat-9.0.8.tar.gz root@ubuntu-s-1vcpu-1gb-blr1-01:~/gaurav#
Dengan demikian, file berhasil disalin ke sistem jarak jauh menggunakan scp
memerintah.
Menyalin banyak file ke sistem jarak jauh
Pada contoh sebelumnya, kita belajar untuk mentransfer file ke sistem jarak jauh menggunakan scp
memerintah. Sekarang kita akan melihat metode untuk mentransfer banyak file dari sistem lokal Anda ke sistem jarak jauh menggunakan perintah ini.
Sintaks Umum:
scp [file 1] [file 2] [file n] remote_username@remote_host:[direktori spesifik]
Mari kita pahami proses sederhana ini dengan sebuah contoh.
Contoh:
scp ath.html abc.txt ppa-purge_0.2.8+bzr56_all.deb [email protected]:gaurav
Di sini, beberapa file disebutkan dalam perintah untuk disalin pada sistem jarak jauh.
Keluaran:
gaurav@ubuntu:~$ scp ath.html abc.txt ppa-purge_0.2.8+bzr56_all.deb [email protected]:gaurav [email protected] kata sandi: ath.html 100% 199KB 94.7KB/s 00: 02 abc.txt 100% 0 0.0KB/dtk 00:00 ppa-purge_0.2.8+bzr56_all.deb 100% 4360 42.2KB/dtk 00:00 gaurav@ubuntu:~$
Pada sistem jarak jauh:
root@ubuntu-s-1vcpu-1gb-blr1-01:~/gaurav# ls -l total 9800 -rw-r--r-- 1 root root 0 Okt 5 08:58 abc.txt -rw-r-- r-- 1 root root 9818695 5 Okt 08:35 apache-Tomcat-9.0.8.tar.gz -rw-r--r-- 1 root root 204057 5 Okt 08:58 ath.html -rw-r-- r-- 1 root root 4360 5 Okt 08:58 ppa-purge_0.2.8+bzr56_all.deb root@ubuntu-s-1vcpu-1gb-blr1-01:~/gaurav#
Ketiga file sekarang disalin pada sistem jarak jauh.
Menyalin direktori ke sistem jarak jauh
Kamu dapat memakai scp
perintah untuk menyalin direktori dari sistem lokal Anda ke sistem jarak jauh. Prosesnya mirip dengan menyalin file. Untuk menyalin konten direktori juga, Anda dapat menggunakan -R
pilihan dengan scp
memerintah.
Itu -R
option digunakan untuk menyalin direktori secara rekursif. Itu berarti, semua sub-folder dan file di dalam direktori juga akan disalin.
Sintaks umum:
scp -r [jalur direktori] remote_username@remote_host:[target_directory]
Contoh:
scp -r PycharmProjects [email protected]:gaurav
Keluaran:
gaurav@ubuntu:~$ scp -r PycharmProjects [email protected]:gaurav [email protected] Kata sandi: __main__.py 100% 623 7.8KB/dtk 00:00 __init__.py 100% 23 0,4KB/dtk 00 :00 complete.py 100% 2929 28.1KB/dtk 00:00 search.py 100% 4728 38.7KB/dtk 00:00 uninstall.py 100% 2963 32,5KB/dtk 00:00 hash.py 100% 1681 21.3KB/ d 00:00 check.py 100% 1430 16.8KB/d 00:00 konfigurasi.py 100% 7125 50.4KB/d 00:00 show.py 100% 6289 49.8KB/d 00:00 download.py 100% 6623 48.2 KB/s 00:00 gaurav@ubuntu:~$
Menggunakan -R
pilihan dengan scp
perintah menyalin semua sub-folder dan file dalam direktori dari mesin lokal ke sistem jarak jauh.
Menampilkan informasi rinci tentang proses scp
Anda dapat menggunakan -v
(huruf kecil v
) untuk menampilkan informasi tentang file yang sedang disalin pada sistem jarak jauh atau lokal Anda. Jenis keluaran ini juga disebut keluaran verbose.
Saat opsi ini digunakan, informasi debug lengkap tentang file ditampilkan ke layar.
Sintaks Umum:
scp -v [nama_file] nama_pengguna@host_pengguna:
Contoh:
scp -v apache-Tomcat-9.0.8.tar.gz [email protected]:tim
Keluaran:
gaurav@ubuntu:~$ scp -v apache-Tomcat-9.0.8.tar.gz [email protected]:team Pelaksana: program /usr/bin/ssh host 159.89.170.11, root pengguna, perintah scp -v -t tim OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 Des 2017 debug1: Membaca data konfigurasi /home/gaurav/.ssh/config debug1: Membaca data konfigurasi /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config baris 19: Menerapkan opsi untuk * debug1: Menghubungkan ke port 159.89.170.11 [159.89.170.11] 22. debug1: Koneksi dibuat. debug1: key_load_public: Tidak ada file atau direktori seperti itu debug1: file identitas /home/gaurav/.ssh/id_rsa ketik -1 Apache-Tomcat-9.0.8.tar.gz 100% 9589KB 99.8KB/s 01:36 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 Ditransfer: dikirim 9826736, diterima 4016 byte, dalam 97,2 detik Bytes per detik: terkirim 101133.9, menerima 41,3 debug1: Status keluar 0 gaurav@ubuntu:~$
Di sini, pada output, Anda dapat melihat bahwa informasi debug file sedang ditampilkan di terminal Anda ketika scp
perintah digunakan dengan -v
pilihan.
Mentransfer file antara dua host jarak jauh
Linux memungkinkan Anda untuk terhubung ke beberapa host jarak jauh. Anda dapat mentransfer file dan direktori antara dua host jarak jauh menggunakan scp
memerintah.
Sintaks Umum:
scp remote_user_1@host_1:/[nama_file] remote_user_2@host_2:[folder_to_save]
Sintaksnya mungkin tampak sedikit lebih lebar tetapi cukup sederhana. Di sini, bagian pertama dari perintah memberikan masukan tentang pengguna jarak jauh dari mana file akan disalin. titik dua (:) dan /
digunakan untuk menentukan nama file atau nama direktori yang akan ditransfer antara dua mesin jarak jauh.
Bagian kedua memberikan informasi tentang sistem jarak jauh target tempat file akan disalin.
Contoh:
scp -r [email protected]:gaurav [email protected]:/team
Di sini, kita akan menyalin direktori bernama 'gaurav' secara rekursif dari sistem lokal ke sistem jarak jauh. File akan disalin ke folder 'tim' di sistem jarak jauh.
Keluaran:
gaurav@ubuntu:~$ scp -r [email protected]:/gaurav [email protected]:/team [email protected] kata sandi: 1.py 100% 134 261.3KB/dtk 00:00 variabel.py 100% 377 949.2KB/dtk 00:00 abc.txt 100% 0 0,0KB/dtk 00:00 ath.html 100% 199KB 41,8MB/dtk 00:00 gaurav@ubuntu:~$
Di sini, kami menggunakan scp
perintah pada sistem lokal untuk mentransfer direktori bernama 'gaurav' dari satu server jauh ke yang lain.
Transfer file dari sistem jarak jauh ke sistem lokal Anda
Anda dapat dengan mudah mentransfer file atau direktori dari sistem jarak jauh ke sistem lokal Anda menggunakan scp
memerintah. Dengan kata yang lebih sederhana, Anda dapat mengunduh banyak file atau direktori dari server jauh ke sistem lokal Anda menggunakan scp
memerintah.
Sintaks Umum:
scp remote_username@user_host:/files/file.txt /[folder_of_local_system]
Keluaran:
gaurav@ubuntu:~$ scp [email protected]:how.txt . [email protected] kata sandi: how.txt 100% 11 0.1KB/s 00:00 gaurav@ubuntu:~$
Di sini, saya telah mengunduh (menyalin) file dari server jauh ke direktori home saya. Oleh karena itu, saya telah menggunakan titik (.
) untuk menentukan dalam perintah untuk menyalin file ke direktori home saya.
Contoh Keluaran:
gaurav@ubuntu:~$ ls -l how.txt -rw-r--r-- 1 gaurav gaurav 11 Okt 6 09:49 how.txt gaurav@ubuntu:~$
Di sini, file sekarang disalin ke direktori home saya dari server jauh.
Dengan cara yang sama, Anda dapat mengunduh banyak file atau direktori dari server jauh menggunakan scp
perintah dengan opsi yang sesuai.
Mengompresi file untuk membuat transfer lebih cepat
Terkadang, mentransfer file besar mungkin memakan waktu. Masalah ini dapat diatasi saat menggunakan scp
perintah dengan -C
(huruf besar C
) pilihan.
Menggunakan -C
opsi, kompres file ukuran lebih besar yang memfasilitasi transfer lebih cepat dan dengan demikian menghemat waktu.
Satu fakta menarik tentang opsi ini adalah, file disalin dengan ukuran aslinya di sistem tujuan tetapi selama proses transfer, ukurannya dikompresi untuk memungkinkan transfer yang lebih cepat. Dengan demikian, kompresi hanya dilakukan pada jaringan.
Sintaks Umum:
scp -C [nama_file] nama_pengguna@host_pengguna:[folder_target]
Mari kita lihat contoh perbandingan untuk memahami perbedaannya.
Transfer tanpa opsi -C:
gaurav@ubuntu:~$ scp -rv dlink [email protected]:team Pelaksana: program /usr/bin/ssh host 68.183.82.183, root pengguna, perintah scp -v -r -t team OpenSSH_7.6p1 Ubuntu-4ubuntu0. 3, OpenSSL 1.0.2n 7 Des 2017 debug1: Membaca data konfigurasi /home/trinity/.ssh/config debug1: Membaca data konfigurasi /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config baris 19: Menerapkan opsi untuk * debug1 : Menghubungkan ke port 68.183.82.183 [68.183.82.183] 22. debug1: Koneksi dibuat. 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 Ditransfer: dikirim 7516504, menerima 4008 byte, dalam 74,6 detik Bytes per detik: terkirim 100693.7, menerima 53,7 debug1: Status keluar 0 gaurav@ubuntu:~$
Dari output di atas kita dapat melihat bahwa waktu yang dibutuhkan untuk transfer adalah 74,6 detik. Kami akan mencoba mentransfer file yang sama menggunakan opsi -C dan mengamati perbedaannya.
Transfer dengan opsi -C:
gaurav@ubuntu:~$ scp -Crv dlink [email protected]:team Pelaksana: program /usr/bin/ssh host 68.183.82.183, root pengguna, perintah scp -v -r -t team OpenSSH_7.6p1 Ubuntu-4ubuntu0. 3, OpenSSL 1.0.2n 7 Des 2017 debug1: Membaca data konfigurasi /home/trinity/.ssh/config debug1: Membaca data konfigurasi /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config baris 19: Menerapkan opsi untuk * debug1 : Menghubungkan ke port 68.183.82.183 [68.183.82.183] 22. debug1: Koneksi dibuat. . . webupload.img 100% 1834KB 98.7KB/s 00:18 Mengirim file mode: C0664 1877552 router.img Sink: C0664 1877552 router.img router.img 100% 1834KB 100.3KB/s 00:18 Sink: E Mengirim file mode: C0664 3754103 DSL-2750U-Release-IN-T-01.00.07.zip Wastafel: 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 Sink: E 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 Ditransfer: terkirim 7518864, menerima 3828 byte, dalam 51,0 detik Bytes per detik: terkirim 100245.4, menerima 51,0 debug1: Status keluar 0 debug1: kompres keluar: data mentah 7511925, terkompresi 7513136, faktor 1,00 debug1: kompres masuk: data mentah 1467, terkompresi 999, faktor 0.68 gaurav@ubuntu:~$
Di sini, kita dapat dengan mudah mengamati bahwa menggunakan -C
pilihan dengan scp
perintah telah memungkinkan kami untuk mengompres file melalui jaringan sehingga terbukti menjadi opsi penghemat waktu.
Menggunakan port ssh yang berbeda untuk transfer file
Saat menggunakan scp
perintah port default yang digunakan adalah pelabuhan 22
. Pengguna memiliki kebebasan untuk menyesuaikan pilihan port ini. Anda dapat menggunakan -P
(opsi huruf besar P) dengan scp
perintah untuk menggunakan port pilihan Anda.
Sintaks Umum:
cp -P [nomor_port_baru] [nama_file/nama_direktori] remote_user@host:[folder_tujuan]
Contoh:
scp -P 4248 dlink [email protected]:tim
Menggunakan perintah di atas, file akan ditransfer ke server jauh. Tapi kali ini, port yang digunakan adalah pelabuhan 4248
alih-alih default pelabuhan 22
.
Kesimpulan
Setelah melalui tutorial ini, kita telah belajar tentang sifat dinamis dari scp
perintah yang digunakan untuk mentransfer atau menyalin file dari satu sistem ke sistem lainnya. Opsi ini juga dapat digunakan untuk mengunduh file atau direktori dari server jauh. Dengan demikian, kita dapat menyimpulkan bahwa scp
Perintah terbukti sangat membantu untuk transfer file ketika Anda harus menangani lebih dari satu sistem serta server jarak jauh secara bersamaan.