Bagaimana cara menyalin folder dari remote ke host lokal menggunakan scp
?
Saya gunakan ssh
untuk masuk ke server saya.
Kemudian, saya ingin menyalin folder jarak jauh foo
ke lokal /home/user/Desktop
.
Bagaimana saya mencapai ini?
Bagaimana cara menyalin folder dari remote ke host lokal menggunakan scp
?
Saya gunakan ssh
untuk masuk ke server saya.
Kemudian, saya ingin menyalin folder jarak jauh foo
ke lokal /home/user/Desktop
.
Bagaimana saya mencapai ini?
Jawaban:
scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
Dengan tidak menyertakan trailing '/' di akhir foo, Anda akan memindahkan direktori itu sendiri (termasuk konten), daripada hanya isi direktori.
Dari man scp
(Lihat manual online )
-r Salin seluruh direktori secara rekursif
-C
bendera menambah kompresi dan -c
bendera memungkinkan Anda memasukkan tipe sandi lain untuk kinerja yang lebih baik, seperti yang scp -c blowfish a@b:something .
terlihat dalam jawaban dimuthu
Desktop/foo
atau akankah Anda memiliki Desktop/allcontentsofFooGohere
scp yang tampaknya bertingkah aneh kadang-kadang bagi saya itu melakukan satu dan lain hal
scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
Anda harus berakhir dengan Desktop/foo
. Dengan scp -r user@your.server.example.com:/path/to/foo/. /home/user/Desktop/
Anda akan berakhir dengan isi foo
di Desktop
dan semua sub-dirs dari foo
bertebaran di bawahDesktop
Untuk menggunakan kekuatan penuh scp Anda harus melalui langkah-langkah selanjutnya:
Kemudian, misalnya jika Anda memiliki ~ / .ssh / config ini :
Host test
User testuser
HostName test-site.com
Port 22022
Host prod
User produser
HostName production-site.com
Port 22022
Anda akan menyelamatkan diri dari entri kata sandi dan menyederhanakan sintaks scp seperti ini:
scp -r prod:/path/foo /home/user/Desktop # copy to local
scp -r prod:/path/foo test:/tmp # copy from remote prod to remote test
Terlebih lagi, Anda akan dapat menggunakan penyelesaian jalur jarak jauh:
scp test:/var/log/ # press tab twice
Display all 151 possibilities? (y or n)
Memperbarui:
Untuk mengaktifkan penyelesaian-bash jarak jauh, Anda perlu memiliki bash-shell di kedua <source>
dan <target>
host, dan penyelesaian-bash yang berfungsi dengan baik. Untuk informasi lebih lanjut, lihat pertanyaan terkait:
Bagaimana mengaktifkan pelengkapan otomatis untuk jalur jauh saat menggunakan scp?
Penyelesaian tab nama file SCP
Untuk menyalin semua dari Lokasi Lokal ke Lokasi Jarak Jauh (Unggah)
scp -r /path/from/destination username@hostname:/path/to/destination
Untuk menyalin semua dari Lokasi Jarak Jauh ke Lokasi Lokal (Unduh)
scp -r username@hostname:/path/from/destination /path/to/destination
Kustom Pelabuhan mana xxxx
adalah pelabuhan kustom nomor
scp -r -P xxxx username@hostname:/path/from/destination /path/to/destination
Salin pada direktori saat ini dari Remote ke Lokal
scp -r username@hostname:/path/from/file .
Tolong:
-r
Salin semua direktori dan file secara rekursif/
, Dapatkan lokasi lengkap olehpwd
scp
akan mengganti semua file yang adahostname
akan menjadi nama host atau alamat IP-P portnumber
Catatan: Terkadang port khusus tidak akan berfungsi karena port tidak diizinkan di firewall, jadi pastikan port custom diizinkan di firewall untuk koneksi masuk dan keluar
pwd
untuk mendapatkan lokasi dan menggunakan yang sama
Yang selalu saya gunakan adalah:
scp -r username@IP:/path/to/server/source/folder/ .
. (titik) : artinya current folder
. jadi salin dari server dan tempel di sini saja.
IP : bisa berupa alamat IP 125.55.41.311
atau bisa berupa host ns1.mysite.com
.
.
merujuk ke direktori saat ini!
Lebih baik mengompres katalog di server jauh:
tar czfP backup.tar.gz /path/to/catalog
Kedua, unduh dari jarak jauh:
scp user@your.server.example.com:/path/to/backup.tar.gz .
Pada akhirnya, ekstrak file:
tar -xzvf backup.tar.gz
-C
flag, seperti scp -C a@b:bigfile .
.
Dan jika Anda memiliki satu file yang sangat besar untuk diunduh dari lokasi yang jauh dan jika Anda tidak terlalu peduli dengan keamanan, coba ubah enkripsi default scp (Triple-DES) menjadi sesuatu seperti 'blowfish'.
Ini akan mengurangi waktu penyalinan file secara drastis.
scp -c blowfish -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
arcfour
menggantikan blowfish
, tetapi memiliki kelemahan keamanan.
Skenario khas,
scp -r -P port username@ip:/path-to-folder .
dijelaskan dengan sampel,
scp -r -P 27000 abc@10.70.12.12:/tmp/hotel_dump .
dimana,
port = 27000
username = "abc" , remote server username
path-to-folder = tmp/hotel_dump
. = current local directory
Pertanyaannya adalah bagaimana cara menyalin folder dari jarak jauh ke lokal dengan scp
perintah.
$ scp -r userRemote@remoteIp:/path/remoteDir /path/localDir
Tapi di sini adalah cara yang lebih baik untuk melakukannya dengan sftp
- SSH File Transfer Protocol (juga Secure File Transfer Protocol, atau SFTP) adalah protokol jaringan yang menyediakan akses file, transfer file, dan manajemen file melalui aliran data yang andal. (Wikipedia).
$ sftp user_remote@remote_ip
sftp> cd /path/to/remoteDir
sftp> get -r remoteDir
Fetching /path/to/remoteDir to localDir 100% 398 0.4KB/s 00:00
Untuk bantuan tentang sftp
perintah cukup ketik help
atau ?
.
Saya tidak tahu mengapa, tetapi saya harus menggunakan folder lokal sebelum direktif server sumber. untuk membuatnya bekerja
scp -r . root@888.888.888.888:/usr/share/nginx/www/example.org/
root@