Sebagai administrator sistem Linux, ada banyak cara berbeda untuk mentransfer file , aman atau tidak, antara dua host yang berbeda.
Selama pekerjaan harian Anda, Anda mungkin diminta untuk melakukan beberapa transfer besar antara dua server yang jauh.
Anda mungkin harus mencadangkan seluruh basis data pada drive berbagi yang aman, atau Anda mungkin hanya ingin mendapatkan file jarak jauh ke sistem Anda.
Akibatnya, Anda ingin mentransfer file , tetapi Anda ingin melakukannya dengan cara yang sangat aman dan terjamin.
Beruntung bagi Anda, ada banyak perintah berbeda yang dapat Anda gunakan untuk mencapainya.
Dalam tutorial ini, kita akan melihat semua cara berbeda untuk mentransfer file antar host di Linux menggunakan ftp, sftp, scp atau rsync.
Siap?
Berikut ini semua cara untuk mentransfer file di Linux :
Mentransfer file di Linux menggunakan ftp
Cara pertama untuk mentransfer file di Linux adalah dengan menggunakan ftp perintah .
Secara default, protokol FTP menggunakan protokol TCP yang tidak aman .
Ini berarti bahwa jika seseorang melacak data atau paket yang dikirim melalui jaringan, ia akan dapat melihat apa yang Anda kirim ke host jarak jauh.
Dalam kebanyakan kasus, ini bukanlah sesuatu yang Anda inginkan untuk transfer file Anda, terutama jika dilakukan melalui Internet.
Namun, kami masih akan menyediakan sintaks untuk perintah ftp karena dapat berguna untuk menggunakannya untuk kesederhanaan melalui jaringan lokal.
Secara default, distribusi Anda mungkin tidak menginstal perintah ftp secara default.
Untuk memeriksa apakah ftp diinstal pada host Anda, Anda dapat menjalankan perintah berikut
$ command -v ftp
Jika tidak ada output yang diberikan kepada Anda, itu berarti ftp tidak tersedia di sistem Anda.
Menginstal ftp pada distribusi berbasis Debian
Untuk menginstalnya di Debian -distribusi berbasis, jalankan perintah berikut
Untuk menginstal paket baru, Anda harus memiliki hak sudo pada distribusi Debian Anda
$ sudo apt-get install ftp
Setelah penginstalan, jalankan kembali perintah “perintah” untuk memastikan bahwa perintah tersebut tersedia dengan benar di sistem Anda.
$ command -v ftp
/usr/bin/ftp
Menginstal ftp pada distribusi berbasis Red Hat
Untuk menginstal ftp pada distribusi berbasis Red Hat, Anda harus menjalankan perintah berikut
Untuk menginstal paket baru di RHEL atau CentOS , Anda harus memiliki hak sudo pada distribusi CentOS Anda.
$ sudo yum install ftp
Sekali lagi, jalankan perintah “command” untuk memeriksa apakah paket Anda telah terinstal dengan benar
$ command -v ftp
/usr/bin/ftp
Hubungkan ke host jarak jauh dengan ftp
Untuk terhubung ke host jarak jauh menggunakan perintah ftp, Anda harus menggunakan sintaks berikut
$ ftp <destination_ip>
Saat menghubungkan, inilah yang akan Anda lihat jika Anda terhubung ke server FTP yang tidak dilindungi.
Ketik nama pengguna yang Anda tetapkan untuk terhubung ke server FTP ini.
Anda akan diminta untuk memasukkan kata sandi Anda. Jika kredensialnya benar, Anda seharusnya dapat langsung masuk ke server FTP Anda.
Mengunduh file di Linux menggunakan ftp
Saat Anda terhubung ke server FTP Anda, ada banyak cara bagi Anda untuk berinteraksi dengannya.
Pertama-tama, tekan “? ” untuk melihat semua perintah yang tersedia untuk Anda.
Seperti yang Anda lihat, perintah yang tersedia hampir sama dengan yang Anda temukan pada sistem Linux standar.
Secara default, pada server FTP Anda, Anda akan diberikan akses shell FTP langsung ke direktori home Anda.
Untuk melihat semua file yang tersedia untuk Anda di direktori saat ini, jalankan perintah berikut
$ ls
Seperti yang Anda lihat di sini, saya mencantumkan entri direktori home saya.
Untuk menavigasi di salah satu folder, tekan perintah “cd” standar dengan jalur yang ingin Anda navigasikan.
Untuk mengunduh file dari direktori saat ini, Anda harus menjalankan perintah berikut
$ get <file>
Lokal akan disalin ke direktori kerja Anda saat ini di mesin lokal, yang berarti jalur dari mana Anda meluncurkan perintah ftp di tempat pertama.
Sebagai catatan tambahan, jika Anda ingin mengunduh banyak file dari host jarak jauh Anda, Anda harus menggunakan perintah “mget” dengan sintaks berikut
$ mget <file1> <file2> ... <filen>
Selamat!
Anda berhasil mentransfer file dari mesin jauh Anda ke mesin lokal Anda menggunakan FTP.
Mengunggah file di Linux menggunakan ftp
Dengan FTP, Anda dapat mengunduh file dari host jauh Anda, tetapi Anda juga dapat mengunggah file ke host jarak jauh Anda.
Untuk mengupload file menggunakan ftp, Anda harus menggunakan perintah “put” dengan sintaks berikut
$ put <file>
File Anda sekarang seharusnya dapat diakses di host jarak jauh Anda, di direktori home pengguna yang Anda gunakan untuk mentransfer file Anda.
$ ls /home/<user>
file.txt
Demikian pula, jika Anda ingin mengunggah banyak file ke host jarak jauh, Anda dapat menggunakan "mput" dengan cara ini
$ mput <file1> <file2> ... <filen>
Selamat!
Anda berhasil mentransfer file dari host lokal ke host jarak jauh menggunakan ftp.
Mentransfer file menggunakan sftp di Linux
Cara yang lebih aman untuk mentransfer file antara dua host adalah dengan menggunakan perintah sftp.
Perintah sftp, yang merupakan singkatan dari “Secure File Transfer Protocol “, adalah cara untuk mentransfer file antara dua host dengan lalu lintas terenkripsi.
Akibatnya, meskipun seseorang menangkap lalu lintas antara Anda dan host jarak jauh, ia tidak akan dapat mendekripsinya tanpa memiliki akses ke kunci SSH Anda.
Saat menggunakan perintah sftp, host yang Anda coba unduh atau unggah file harus dilengkapi dengan server SSH.
Jika Anda menggunakan server OpenSSH pada host jarak jauh, Anda akan dapat terhubung ke server tersebut untuk melakukan transfer file.
Secara default, sftp seharusnya tersedia di sistem Anda, tetapi Anda dapat memverifikasinya dengan menjalankan perintah berikut.
$ command -v sftp
/usr/bin/sftp
Hubungkan ke host jarak jauh menggunakan sftp
Untuk terhubung ke host jarak jauh menggunakan sftp, Anda harus menggunakan sintaks berikut
$ sftp <destination_ip>
Secara default, jika ini adalah pertama kalinya Anda terhubung ke host jarak jauh, Anda akan diminta untuk menambahkan host ke daftar host tepercaya sistem Anda (terletak di /home/user/.ssh/known_hosts secara default)
Sekarang setelah Anda terhubung ke server SSH jarak jauh, sintaks untuk menavigasi atau mentransfer file sama dengan perintah ftp standar.
Mengunduh file di Linux menggunakan sftp
Pertama-tama, Anda dapat menekan "?" untuk melihat semua perintah yang tersedia untuk Anda di server SSH.
Pertama-tama, tekan perintah “ls” untuk melihat semua file dan folder yang tersedia untuk Anda di sistem jarak jauh.
$ ls
Seperti yang Anda lihat, perintah ini akan mencantumkan seluruh folder tempat saya duduk saat ini (yang merupakan direktori home dalam kasus ini).
Untuk menavigasi ke folder, tekan perintah “cd” yang biasanya dilakukan pada server FTP standar.
$ cd <path>
Untuk mengunduh file di server SFTP, gunakan perintah “get” menggunakan sintaks ini
$ get <file>
File akan disalin dari direktori jarak jauh saat ini ke direktori lokal tempat Anda menjalankan perintah sftp.
Selamat! Anda mentransfer file dengan benar dari host jarak jauh ke komputer lokal Anda.
Mengupload file di Linux menggunakan sftp
Atau, Anda dapat mentransfer file antara mesin lokal Anda ke host jarak jauh Anda.
Untuk mentransfer file menggunakan sftp, Anda harus menggunakan perintah “put”.
$ put <file>
Jika Anda mencantumkan entri direktori jarak jauh, Anda seharusnya dapat melihat file Anda.
$ sftp> ls -l
Selamat!
Anda berhasil mentransfer file dari host lokal ke mesin jarak jauh Anda.
Mentransfer file di Linux menggunakan scp
Salah satu cara lain untuk mentransfer file antara dua host di Linux adalah dengan menggunakan perintah scp.
$ scp <option> <source_user>@<source_host>:<file> <destination_user>@<destination_host>:<file>
Perintah scp membuat koneksi aman antara dua host dan menggunakan port SSH standar untuk mentransfer file.
Akibatnya, Anda harus memiliki server SSH yang berdiri di host tujuan Anda agar file dapat ditransfer.
Misalnya, untuk mentransfer file lokal dari mesin Anda saat ini ke host jarak jauh, Anda akan menjalankan perintah berikut
$ scp file [email protected]:file
Secara default, jika Anda tidak menentukan jalur absolut, file akan disalin langsung ke direktori home pengguna yang Anda hubungkan.
Sekarang jika saya memeriksa file di host jarak jauh saya, file tersebut akan berada di direktori home pengguna.
Mentransfer direktori di Linux menggunakan scp
Dengan perintah scp, dimungkinkan juga untuk mentransfer seluruh direktori ke host tujuan.
Untuk menyalin direktori, Anda perlu menentukan opsi “-r”.
Mari kita ambil contoh folder bernama “directory” dengan 3 file di dalamnya. Untuk menyalinnya, Anda harus menggunakan perintah berikut
$ scp -r directory [email protected]:.
Jika Anda memeriksa direktori pada host tujuan, Anda seharusnya dapat melihat direktori yang ditransfer.
Perhatikan bahwa jika Anda menentukan direktori khusus pada target, direktori itu akan dibuat jika tidak ada secara default.
Mentransfer file antara dua host jarak jauh
Pada contoh sebelumnya, kami menggunakan host lokal dengan host jauh yang kami hubungi menggunakan alamat IP-nya.
Sekarang, Anda mungkin harus mentransfer file antara dua host jarak jauh yang terletak di dua alamat IP yang berbeda.
Untuk mentransfer file antara kedua host tersebut, Anda akan menjalankan perintah berikut
$ scp <option> <source_user>@<source_host>:<file> <destination_user>@<destination_host>:<file>
Misalnya, itu akan mengarah ke
$ scp [email protected]:file [email protected]:file
Perhatikan bahwa dalam kasus ini, Anda akan memerlukan dua server SSH di kedua instance, jika tidak maka tidak akan berfungsi.
Menggunakan scp dengan bilah kemajuan
Untuk menampilkan statistik untuk proses scp, Anda perlu menentukan opsi “-v” (yang merupakan singkatan dari verbose)
$ scp -v <source_user>@<source_host>:<file> <destination_user>@<destination_host>:<file>
Mentransfer file di Linux menggunakan rsync
Terakhir, cara terakhir untuk mentransfer file antara dua host di Linux adalah dengan menggunakan perintah rsync.
Perintah rsync juga menggunakan protokol aman karena bergantung pada protokol SSH untuk mentransfer data. Ini dapat digunakan dalam berbagai cara, tetapi kami akan fokus pada transfer file untuk tutorial ini.
Perintah scp dan rsync sangat mirip tetapi rsync menyediakan lebih banyak fungsi untuk transfer file. Anda dapat memilih misalnya untuk memasukkan file tertentu sementara mengecualikan yang lain. Anda juga dapat memilih untuk menyimpan izin atau hardlink selama penyalinan.
Secara keseluruhan, rsync adalah superset dari perintah scp.
Secara default, perintah rsync mungkin tidak diinstal pada sistem Anda. Untuk menginstalnya, ikuti petunjuk tersebut.
Menginstal rsync pada distribusi berbasis Debian
Untuk menginstal rsync, Anda akan menjadi pengguna sudo di host Anda.
Untuk menginstal rsync, jalankan perintah berikut
$ sudo apt-get install rsync
Terakhir, jalankan perintah untuk memastikan bahwa itu diinstal dengan benar.
$ rsync --help
Menginstal rsync pada distribusi berbasis Red Hat
Untuk menginstal rsync di RHEL atau di CentOS, jalankan perintah berikut
$ sudo yum install rsync
Demikian pula, jalankan opsi bantuan untuk memastikan bahwa itu diinstal dengan benar.
$ rsync --help
Menggunakan rsync untuk mentransfer file di Linux
Sekarang rsync telah terinstal dengan benar di host Anda, Anda dapat menggunakannya dengan cara berikut
$ rsync <option> <source_user>@<source_host>:<file> <destination_user>@<destination_host>:<file>
Misalnya, untuk mentransfer file dari host lokal ke mesin jarak jauh, Anda akan menjalankan perintah berikut
$ rsync file [email protected]:file
Demikian pula, untuk menyalin file dari host jarak jauh ke mesin lokal, Anda akan menjalankan
$ rsync [email protected]:file file
Menggunakan rsync untuk mentransfer direktori di Linux
Dengan rsync, Anda juga dapat mentransfer direktori lengkap dari host lokal ke host jarak jauh.
Anda hanya perlu menambahkan opsi “-r” ke sintaks Anda saat ini
$ rsync -r <source_user>@<source_host>:<file> <destination_user>@<destination_host>:<file>
Saat menyalin direktori, ada aturan yang harus Anda perhatikan.
Saat menentukan direktori sumber, Anda memiliki opsi untuk menambahkan garis miring di akhir untuk menyalin konten direktori dan bukan direktori itu sendiri.
Untuk mengilustrasikannya, katakanlah Anda memiliki direktori bernama “directory”, yang ingin Anda transfer ke direktori jarak jauh bernama “directory” pada mesin jarak jauh Anda.
Menggunakan sintaks tambahan, inilah yang akan Anda dapatkan di host jarak jauh Anda
$ rsync directory/ [email protected]:directory
Di host jarak jauh
/home/user/
├── directory
├── file1
├── file2
├── file3
Namun, jika Anda menulis rsync tanpa garis miring, mis.
$ rsync directory [email protected]:directory
Di host jarak jauh
/home/user/
├── directory
├── directory
├── file1
├── file2
├── file3
Akibatnya, Anda mungkin ingin menyertakan garis miring secara default saat menyalin file dari satu host ke host lain untuk menghindari duplikat nama direktori.
Menggunakan rsync dengan bilah kemajuan
Salah satu cara yang sangat berguna untuk menggunakan rsync adalah dengan memiliki bilah kemajuan yang terkait dengannya untuk transfer yang lama.
Untuk memiliki bilah kemajuan saat menggunakan rsync, Anda harus menggunakan opsi “–kemajuan” (untuk dapat dibaca manusia)
$ rsync --progress <source_user>@<source_host>:<file> <destination_user>@<destination_host>:<file>
Kesimpulan
Dalam tutorial ini, Anda mempelajari bagaimana Anda dapat dengan mudah mentransfer file di Linux menggunakan perintah ftp, perintah sftp, scp atau rsync.
Anda melihat perbedaan antara perintah tersebut dan bagaimana perintah tersebut dapat digunakan untuk mentransfer direktori lengkap.