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 fail dan direktori yang selamat. Apabila kedua-dua mesin berkomunikasi disambungkan melalui rangkaian yang sama, maka penggunaan scp
menjadi mungkin.
Anda boleh sangat bergantung pada scp
arahan 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 scp
arahan yang berbeza. Kami juga akan melihat beberapa pilihan yang sering digunakan dengan scp
arahan.
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 [Option] [source_file_name] [[email protected]_Host]:destination_folder
Marilah kita memahami sifat-sifat asas perintah ini satu persatu.
- [source_file_name] Ini ialah fail sumber yang anda ingin salin.
- [ [email protected] _Host] Ini ialah nama pengguna sistem jauh tempat anda ingin menyalin fail. Alamat IP mesin jauh juga digunakan dalam atribut ini selepas
@
simbol ' '.
- [destination_folder] Ini ialah direktori tempat anda ingin menyimpan fail yang disalin.
Nota: Simbol bertindih ( :
) digunakan dalam sintaks kerana ia membezakan antara lokasi setempat dan terpencil. Kami menggunakan titik bertindih ( :
) 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 paling popular yang 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 |
-p |
mengekalkan kebenaran, mod dan masa capaian fail |
-P |
tukar port lalai yang digunakan oleh scp arahan |
Pilihan yang kerap digunakan dengan arahan scp
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 [file_name] [email protected]:[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:
[email protected]:~$ scp apache-tomcat-9.0.8.tar.gz [email protected]:gaurav
[email protected]'s password:
apache-tomcat-9.0.8.tar.gz 100% 9589KB 79.8KB/s 02:00
[email protected]:~$
Mari kita semak output pada sistem jauh untuk fail.
[email protected]:~/gaurav# ls
apache-tomcat-9.0.8.tar.gz
[email protected]:~/gaurav#
Oleh itu, fail berjaya disalin ke sistem jauh menggunakan scp
arahan.
Menyalin berbilang fail ke sistem jauh
Dalam contoh sebelumnya, kami belajar untuk memindahkan fail ke sistem jauh menggunakan scp
arahan. Kami kini akan melihat kaedah untuk memindahkan berbilang fail dari sistem setempat anda ke sistem jauh menggunakan arahan ini.
Sintaks Umum:
scp [file 1] [file 2] [file n] [email protected]_host:[specific directory]
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:
[email protected]:~$ scp ath.html abc.txt ppa-purge_0.2.8+bzr56_all.deb [email protected]:gaurav
[email protected]'s password:
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
[email protected]:~$
Pada sistem jauh:
[email protected]:~/gaurav# ls -l
total 9800
-rw-r--r-- 1 root root 0 Oct 5 08:58 abc.txt
-rw-r--r-- 1 root root 9818695 Oct 5 08:35 apache-tomcat-9.0.8.tar.gz
-rw-r--r-- 1 root root 204057 Oct 5 08:58 ath.html
-rw-r--r-- 1 root root 4360 Oct 5 08:58 ppa-purge_0.2.8+bzr56_all.deb
[email protected]:~/gaurav#
Ketiga-tiga fail kini disalin pada sistem jauh.
Menyalin direktori ke sistem jauh
Anda boleh menggunakan 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
arahan.
The -r
pilihan digunakan untuk menyalin direktori rekursif. Ini bermakna, semua sub-folder dan fail di dalam direktori juga akan disalin.
Sintaks umum:
scp -r [directory path] [email protected]_host:[target_directory]
Contoh:
scp -r PycharmProjects [email protected]:gaurav
Pengeluaran:
[email protected]:~$ scp -r PycharmProjects [email protected]:gaurav
[email protected]'s password:
__main__.py 100% 623 7.8KB/s 00:00
__init__.py 100% 23 0.4KB/s 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% 1681 21.3KB/s 00:00
check.py 100% 1430 16.8KB/s 00:00
configuration.py 100% 7125 50.4KB/s 00:00
show.py 100% 6289 49.8KB/s 00:00
download.py 100% 6623 48.2KB/s 00:00
[email protected]:~$
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 pilihan -v
(huruf kecil v
) untuk memaparkan maklumat tentang fail yang sedang disalin sama ada pada sistem jauh atau tempatan 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 [file_name] [email protected]_host:
Contoh:
scp -v apache-tomcat-9.0.8.tar.gz [email protected]:team
Pengeluaran:
[email protected]:~$ scp -v apache-tomcat-9.0.8.tar.gz [email protected]:team
Executing: program /usr/bin/ssh host 159.89.170.11, user root, command scp -v -t team
OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 Dec 2017
debug1: Reading configuration data /home/gaurav/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 159.89.170.11 [159.89.170.11] port 22.
debug1: Connection established.
debug1: key_load_public: No such file or directory
debug1: identity file /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: 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
Transferred: sent 9826736, received 4016 bytes, in 97.2 seconds
Bytes per second: sent 101133.9, received 41.3
debug1: Exit status 0
[email protected]:~$
Di sini, dalam output, anda boleh melihat bahawa maklumat nyahpepijat fail sedang dipaparkan pada terminal anda apabila 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
arahan.
Sintaks Umum:
scp [email protected]_1:/[file_name] [email protected]_2:[folder_to_save]
The syntax may seem a bit wider but is pretty simple. Here, the the first part of the command gives the input about the remote user from where the file is to be copied. colon (:) and /
is used to specify the file name or the directory name which is to be transferred between the two remote machines.
The second part gives information about the target remote system where the file is to be copied.
Example:
scp -r [email protected]:gaurav [email protected]:/team
Here, we will be copying a directory named ‘gaurav’ recursively from the local system to a remote system. The file will be copied to a folder ‘team’ on the remote system.
Output:
[email protected]:~$ scp -r [email protected]:/gaurav [email protected]:/team
[email protected]'s password:
1.py 100% 134 261.3KB/s 00:00
variables.py 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
[email protected]:~$
Here, we used the scp
command on the local system to transfer a directory named ‘gaurav’ from one remote server to another.
Transfer files from the remote system to your local system
Anda boleh memindahkan fail atau direktori dengan mudah dari sistem jauh ke sistem setempat anda menggunakan scp
arahan. Dalam perkataan yang lebih mudah, anda boleh memuat turun berbilang fail atau direktori dari pelayan jauh ke sistem tempatan anda menggunakan scp
arahan.
Sintaks Umum:
scp [email protected]_host:/files/file.txt /[folder_of_local_system]
Pengeluaran:
[email protected]:~$ scp [email protected]:how.txt .
[email protected]'s password:
how.txt 100% 11 0.1KB/s 00:00
[email protected]:~$
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:
[email protected]:~$ ls -l how.txt
-rw-r--r-- 1 gaurav gaurav 11 Oct 6 09:49 how.txt
[email protected]:~$
Di sini, fail kini disalin ke direktori rumah saya dari pelayan jauh.
Dengan cara yang sama, anda boleh memuat turun berbilang fail atau direktori dari pelayan jauh menggunakan scp
arahan 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
arahan dengan pilihan -C
(huruf besar C
).
Menggunakan -C
pilihan, memampatkan fail bersaiz 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 [file_name] [email protected]_host:[target_folder]
Mari kita lihat contoh perbandingan untuk memahami perbezaannya.
Pemindahan tanpa pilihan -C:
[email protected]:~$ scp -rv dlink [email protected]:team
Executing: 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 Dec 2017
debug1: Reading configuration data /home/trinity/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 68.183.82.183 [68.183.82.183] port 22.
debug1: Connection established.
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
Transferred: sent 7516504, received 4008 bytes, in 74.6 seconds
Bytes per second: sent 100693.7, received 53.7
debug1: Exit status 0
[email protected]:~$
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:
[email protected]:~$ scp -Crv dlink [email protected]:team
Executing: 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 Dec 2017
debug1: Reading configuration data /home/trinity/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 68.183.82.183 [68.183.82.183] port 22.
debug1: Connection established.
.
.
webupload.img 100% 1834KB 98.7KB/s 00:18
Sending file modes: C0664 1877552 router.img
Sink: C0664 1877552 router.img
router.img 100% 1834KB 100.3KB/s 00:18
Sink: E
Sending file modes: C0664 3754103 DSL-2750U-Release-IN-T-01.00.07.zip
Sink: 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
Transferred: sent 7518864, received 3828 bytes, in 51.0 seconds
Bytes per second: sent 100245.4, received 51.0
debug1: Exit status 0
debug1: compress outgoing: raw data 7511925, compressed 7513136, factor 1.00
debug1: compress incoming: raw data 1467, compressed 999, factor 0.68
[email protected]:~$
Di sini, kita boleh melihat dengan mudah bahawa menggunakan -C
pilihan dengan scp
arahan telah membolehkan kita 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 port 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 [new_port_number] [file_name/directory_name] [email protected]:[destination_folder]
Contoh:
scp -P 4248 dlink [email protected]:team
Menggunakan arahan di atas, fail akan dipindahkan ke pelayan jauh. Tetapi kali ini, port yang digunakan adalah port 4248
bukannya lalai port 22
.
Kesimpulan
Selepas melalui tutorial ini, kami telah mengetahui 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.