Pengantar
Rsync adalah cara yang bagus untuk menyinkronkan file antar server atau hanya memindahkan file antar server tanpa memerlukan FTP. Ini menghubungkan dua server melalui protokol SSH, memungkinkan transfer data di antara mereka. Daemon rsync, yang dibahas nanti dalam artikel ini, menggunakan protokolnya sendiri dan berjalan pada port tertentu. Di bawah ini kita akan membahas dasar-dasarnya; menyalin antar server, menyalin ke/dari daemon rsync, dan menjaga file tetap sinkron satu sama lain di server yang berbeda.
Prasyarat
– 2 server Linux yang keduanya telah menginstal rsync.
– Server yang melakukan inisiasi transfer harus dapat mengakses port SSH server penerima (atau port rsync, jika terhubung ke daemon rsync).
– Pengguna harus memiliki izin untuk menggunakan rsync (contoh di bawah ini akan dijalankan sebagai pengguna root).
Dasar-dasar Rsync
Rsync dapat mendorong file ke server lain atau menarik file dari server lain. Perbedaan keduanya terletak pada sintaks. Jika Anda menentukan file lokal Anda terlebih dahulu, itu akan memulai push. Jika Anda menentukan host jarak jauh Anda terlebih dahulu, itu akan memulai penarikan. Mari kita lihat jenis sintaks yang tepat di bawah ini.
rsync [-options] SOURCE [email protected]:DESTINATION
Tarik:
rsync [-options] [email protected]:SOURCE DESTINATION
[-options]
adalah semua opsi berbeda yang dapat digunakan. Beberapa akan saya rujuk dan jelaskan dalam contoh di bawah ini. Untuk daftar lengkap semua opsi, tinjau halaman manual.
SOURCE
singkatan dari /directory/path/to/the/file/or/directory
yang akan disalin.
DESTINATION
singkatan dari /directory/path/to/the/new/location
pada host penerima.
[email protected]
adalah pengguna di host jarak jauh untuk rsync untuk terhubung.
x.x.x.x
singkatan dari alamat IP dari remote host. Itu juga bisa menjadi nama host jika Anda memiliki DNS yang dikonfigurasi.
Sekarang, katakanlah Anda perlu menentukan port di luar port default 22 agar rsync dapat terhubung. Anda akan melakukan ini dengan opsi -e
. Lihat contoh di bawah ini (ganti PORT
dengan nomor port yang perlu Anda sambungkan).
Dorong:
rsync [-other options] -e 'ssh -p PORT' SOURCE [email protected]:DESTINATION
Tarik:
rsync [-other options] -e 'ssh -p PORT' [email protected]:SOURCE DESTINATION
Contoh Transfer File Sederhana
Pertama, kita akan memulai push file .txt dari satu server ke server lainnya.
rsync /home/simple.txt [email protected]:/home
Perintah ini akan menyalin file simple.txt
dari server lokal kami, ke /home
server jarak jauh kami direktori.
Rsync Transfer antara dua server.
Di sebelah kanan, kami melakukan ls
sebelum rsync dan kemudian lagi setelah dijalankan, sehingga kita dapat melihat file telah disalin.
Berikut adalah contoh tarikan:
rsync [email protected]:/home/pullme.txt /home
File pullme.txt
ada di server jauh (x.x.x.x) di /home
direktori. Perintah ini akan menyalin file ke /home
server lokal direktori.
Anda dapat mendorong/menarik satu file apa pun yang Anda tentukan menggunakan metode ini. Sekarang, mari masuk ke direktori.
Transfer File Direktori
Memindahkan direktori itu sederhana. Tambahkan -d
opsi, dan itu hanya akan memindahkan direktori. Jika Anda ingin memindahkan direktori dan isinya, gunakan -r
alih-alih menyalin secara rekursif semua file dan subfolder. Sementara kita melakukannya, mari kita gunakan -t
pilihan. Opsi ini akan menyalin tanggal dan waktu terakhir kali file diubah. Menggunakan -t
bagus untuk menyimpan catatan akurat tentang kapan file terakhir diedit. Opsi ini akan berfungsi dengan mendorong atau menarik.
Pada contoh di bawah ini, saya telah memindahkan pullme.txt
file ke dalam /transfer_me
direktori. Saya juga telah membuat direktori /simple
(yang berisi file simple.txt
) di dalam /transfer_me
. Saya kemudian mendorong /transfer_me
direktori ke server jauh.
rsync -rt /home/transfer_me [email protected]:/home
Direktori Rsync
Seperti yang Anda lihat, folder pada server jauh (penerima) berisi semua subdirektori dan file yang dilakukan folder lokal pada server yang memulai.
Menghubungkan ke Daemon Rsync
Bagian ini membutuhkan server yang menjalankan daemon rsync. Untuk menguji petunjuk ini, lihat artikel kami tentang menyiapkan daemon rsync.
Sekarang kita telah membahas transfer file/direktori dasar dengan rsync, kita dapat melanjutkan menghubungkan ke daemon rsync. Daemon rsync berjalan terus-menerus di server sehingga Anda dapat mendorong ke dan/atau menarik dari direktori daemon rsync yang ditetapkan server itu kapan saja. Ada dua format untuk menarik dan mendorong ke daemon rsync.
Tarik:
rsync [-options] rsync://[email protected][:PORT]SOURCE DESTINATION
Tarik (perhatikan titik dua ganda setelah alamat IP/nama host):
rsync [-options] [email protected]::SOURCE DESTINATION
Dorong:
rsync [-options] SOURCE rsync://[email protected][:PORT]DESTINATION
Tekan (perhatikan titik dua ganda setelah alamat IP/nama host):
rsync [-options] SOURCE [email protected]::DESTINATION
Lihat di bawah bagaimana saya menarik dari daemon rsync (penggunaan nomor port 873 di bawah ini berlebihan, karena itulah port koneksi daemon rsync default–saya menyertakannya untuk menunjukkan bagaimana Anda akan memformat perintah jika Anda telah menyiapkan port non-default pada daemon rsync Anda):
rsync -rt rsync://[email protected]:873/files/ /home/pulledfromdaemon
Tarik daemon Rsync
Di sini, files
adalah nama modul. Karena kami menarik semua yang ada di direktori itu (pullme.txt
dan simple.txt
) kita cukup meninggalkannya di nama modul untuk sumbernya.
Menyinkronkan File dengan Rsync
Sekarang kita akan membahas cara menyinkronkan file. Anda dapat melakukan sinkronisasi dengan satu perintah rsync, dengan opsi yang tepat. Anda dapat menempatkan perintah ini dalam skrip atau tugas cron untuk dijalankan sesuai permintaan atau secara otomatis. Perintahnya bervariasi jika Anda mendorong atau menarik atau menggunakan daemon, tetapi opsinya tetap sama.
rsync -rtu --delete SOURCE [email protected]:/DESTINATION
Dalam contoh ini, perhatikan -rtu --delete
pilihan. Kita telah membahas -r
dan -t
pilihan-salinan rekursif dan salinan stempel waktu. -u
opsi memberitahu rsync untuk memperbarui hanya file yang berbeda/diubah/ditambahkan dari SOURCE
ke DESTINATION
. Opsi --delete
akan menghapus file apa pun dari DESTINATION
bahwa SOURCE
mungkin tidak lagi memiliki. Dengan ini (dan opsi lain, seperti -l
untuk symlink) Anda dapat memperbarui direktori di beberapa lokasi dengan sumbernya.
Anda sekarang dapat melakukan rsync file antar server, rsync daemon, dan menjaga file tetap disinkronkan satu sama lain dengan mudah. Terima kasih telah mengikuti cara ini! Harap periksa kembali di sini untuk pembaruan lebih lanjut, atau lihat banyak layanan yang kami tawarkan termasuk hosting VPS.
Pelajari lebih lanjut tentang layanan hosting VPS dan server pribadi Virtual kami.