GNU/Linux >> Belajar Linux >  >> Linux

Cara Menggunakan Rsync untuk Menyalin/Menyinkronkan File Antar Server

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.


Linux
  1. Bagaimana Cara Selektif Membungkam Rsync?

  2. Cara menyalin direktori secara rekursif menggunakan rsync sambil mengecualikan file tertentu

  3. Bagaimana cara menggunakan rsync dari PC Windows ke server Linux jarak jauh?

  1. Cara Menggunakan Rsync untuk Menyinkronkan File Baru atau Berubah/Dimodifikasi di Linux

  2. Cara menggunakan rsyslog untuk membuat server agregasi log Linux

  3. Bagaimana cara rsync file / folder dari tanggal tertentu ke depan?

  1. Cara Mentransfer File Antar Server di Linux menggunakan SCP dan FTP

  2. Bagaimana Cara Rsync File Antara Dua Remote?

  3. Bagaimana cara menggunakan perintah Rsync di linux?