rsync adalah protokol yang dibangun untuk sistem mirip Unix yang menyediakan fleksibilitas luar biasa untuk membuat cadangan dan sinkronisasi data. Ini dapat digunakan secara lokal untuk membuat cadangan file ke berbagai direktori atau dapat dikonfigurasi untuk melakukan sinkronisasi di Internet ke host lain.
Ini dapat digunakan pada sistem Windows tetapi hanya tersedia melalui berbagai port (seperti Cygwin), sehingga dalam hal ini kita akan berbicara tentang pengaturannya di Linux. Pertama, kita perlu menginstal / memperbarui klien rsync. Pada distribusi Red Hat, perintahnya adalah "yum install rsync" dan pada Debian adalah "sudo apt-get install rsync."
Perintah pada Red Hat / CentOS, setelah masuk sebagai root (perhatikan bahwa beberapa distribusi Red Hat baru-baru ini mendukung metode sudo).
Perintah pada Debian / Ubuntu.
Pada bagian pertama dari tutorial ini, kami akan membuat cadangan file dari Directory1 ke Directory2. Kedua direktori ini berada di hard drive yang sama, tetapi ini akan bekerja persis sama jika direktori ada pada dua drive yang berbeda. Ada beberapa cara berbeda yang bisa kita dekati ini, tergantung pada jenis backup yang ingin Anda konfigurasikan. Untuk sebagian besar tujuan, baris kode berikut ini akan mencukupi:
$ rsync -av --delete / Directory1 / / Directory2 /
Kode di atas akan menyinkronkan isi Directory1 ke Directory2, dan tidak meninggalkan perbedaan di antara keduanya. Jika rsync menemukan bahwa Directory2 memiliki file yang Directory1 tidak, itu akan menghapusnya. Jika rsync menemukan file yang telah diubah, dibuat, atau dihapus di Directory1, itu akan mencerminkan perubahan yang sama ke Directory2.
Ada banyak switch yang berbeda yang dapat Anda gunakan untuk rsync untuk mempersonalisasikannya ke kebutuhan spesifik Anda. Berikut adalah apa yang dimaksud oleh kode rsync untuk dilakukan dengan backup:
1. -a = rekursif (rekursif ke dalam direktori), tautan (salin symlink sebagai symlink), perms (pertahankan izin), waktu (pertahankan waktu modifikasi), kelompok (pertahankan grup), pemilik (pertahankan pemilik), pertahankan file perangkat, dan simpan file khusus.
2. -v = verbose. Alasan saya pikir verbose penting adalah agar Anda dapat melihat dengan tepat apa rsync yang dicadangkan. Pikirkan tentang ini: Bagaimana jika hard drive Anda menjadi buruk, dan mulai menghapus file tanpa sepengetahuan Anda, maka Anda menjalankan skrip rsync Anda dan mendorong perubahan tersebut ke cadangan Anda, dengan demikian menghapus semua contoh file yang tidak Anda inginkan menyingkirkan?
3. -delete = Ini memberitahu rsync untuk menghapus file apa saja yang ada di Directory2 yang tidak ada di Directory1. Jika Anda memilih untuk menggunakan opsi ini, saya sarankan juga menggunakan opsi verbose, untuk alasan yang disebutkan di atas.
Menggunakan skrip di atas, inilah output yang dihasilkan dengan menggunakan rsync untuk mem-backup Directory1 ke Directory2. Perhatikan bahwa tanpa tombol verbose, Anda tidak akan menerima informasi terperinci seperti itu.
Tangkapan layar di atas memberi tahu kita bahwa File1.txt dan File2.jpg terdeteksi sebagai file baru atau diubah dari salinan yang ada di Directory2, dan karenanya dicadangkan. Noob tip: Perhatikan tanda garis miring di akhir direktori di perintah rsync saya - itu perlu, pastikan untuk mengingatnya.
Kita akan membahas beberapa tombol yang berguna pada akhir tutorial ini, tetapi ingatlah bahwa untuk melihat daftar lengkap Anda dapat mengetikkan “man rsync” dan melihat daftar lengkap switch yang akan digunakan.
Itu tentang menutupinya sejauh backup lokal yang bersangkutan. Seperti yang Anda ketahui, rsync sangat mudah digunakan. Ia menjadi sedikit lebih kompleks ketika menggunakannya untuk menyinkronkan data dengan host eksternal melalui Internet, tetapi kami akan menunjukkan kepada Anda cara yang sederhana, cepat, dan aman untuk melakukannya.
rsync dapat dikonfigurasi dengan beberapa cara berbeda untuk backup eksternal, tetapi kita akan membahas metode paling praktis (juga paling mudah dan paling aman) dari tunneling rsync melalui SSH. Sebagian besar server dan bahkan banyak klien sudah memiliki SSH, dan itu dapat digunakan untuk cadangan rsync Anda. Kami akan menunjukkan kepada Anda proses untuk mendapatkan satu mesin Linux untuk cadangan ke yang lain di jaringan lokal. Prosesnya akan sama persis jika satu host keluar di internet di suatu tempat, cukup perhatikan bahwa port 22 (atau port apa pun yang Anda konfigurasikan SSH), akan perlu diteruskan pada peralatan jaringan apa pun di sisi server.
Di server (komputer yang akan menerima backup), pastikan SSH dan rsync diinstal.
# yum -y install ssh rsync
# sudo apt-get install ssh rsync
Selain menginstal SSH dan rsync pada server, semua yang benar-benar perlu dilakukan adalah mengatur repositori di server di mana Anda ingin file di-backup, dan memastikan bahwa SSH terkunci. Pastikan pengguna yang Anda rencanakan untuk menggunakan memiliki kata sandi yang rumit, dan mungkin juga merupakan ide yang baik untuk mengganti port yang SSH dengarkan (defaultnya adalah 22).
Kami akan menjalankan perintah yang sama yang kami lakukan untuk menggunakan rsync pada komputer lokal, tetapi menyertakan tambahan yang diperlukan untuk tunneling rsync melalui SSH ke server di jaringan lokal saya. Untuk pengguna "geek" yang menghubungkan ke "192.168.235.137" dan menggunakan switch yang sama seperti di atas (-av -delete), kita akan menjalankan yang berikut:
$ rsync -av -delete -e ssh / Directory1 / [email protected]: / Directory2 /
Jika Anda memiliki SSH mendengarkan pada beberapa port selain 22, Anda harus menentukan nomor port, seperti dalam contoh ini di mana saya menggunakan port 12345:
$ rsync -av -delete -e 'ssh -p 12345' / Directory1 / [email protected]: / Directory2 /
Seperti yang Anda lihat dari gambar di atas, output yang diberikan saat mencadangkan di seluruh jaringan hampir sama dengan saat mencadangkan secara lokal, satu-satunya hal yang berubah adalah perintah yang Anda gunakan. Perhatikan juga bahwa itu diminta untuk kata sandi. Ini untuk mengotentikasi dengan SSH.Anda dapat mengatur kunci RSA untuk melewati proses ini, yang juga akan menyederhanakan mengotomatiskan rsync.
Cron dapat digunakan di Linux untuk mengotomatisasi eksekusi perintah, seperti rsync. Dengan menggunakan Cron, kita dapat memiliki sistem Linux kita menjalankan pencadangan setiap malam, atau seberapa sering Anda ingin mereka menjalankannya.
Untuk mengedit file tabel cron untuk pengguna yang Anda masuki, jalankan:
$ crontab -e
Anda harus mengenal vi untuk mengedit file ini. Ketik "I" untuk menyisipkan, dan kemudian mulai mengedit file tabel cron.
Cron menggunakan sintaks berikut: menit dari jam, jam hari, hari bulan, bulan dalam setahun, hari dalam seminggu, perintah.
Ini bisa sedikit membingungkan pada awalnya, jadi izinkan saya memberi Anda sebuah contoh. Perintah berikut ini akan menjalankan perintah rsync setiap malam jam 10 malam:
0 22 * * * rsync -av --delete / Directory1 / / Directory2 /
"0" pertama menentukan menit dari jam, dan "22" menetapkan jam 10 malam. Karena kita ingin perintah ini dijalankan setiap hari, kita akan meninggalkan sisa kolom dengan tanda bintang dan kemudian menempel perintah rsync.
Setelah Anda selesai mengkonfigurasi Cron, tekan escape, dan kemudian ketik ": wq" (tanpa tanda kutip) dan tekan enter. Ini akan menyimpan perubahan Anda di vi.
Cron bisa mendapatkan lebih banyak dari ini, tetapi untuk melanjutkan tentang itu akan berada di luar lingkup tutorial ini. Kebanyakan orang hanya menginginkan cadangan mingguan atau harian sederhana, dan apa yang telah kami tunjukkan dapat Anda lakukan dengan mudah. Untuk info lebih lanjut tentang Cron, silakan lihat halaman manual.
Hal lain yang bermanfaat yang dapat Anda lakukan adalah meletakkan backup Anda ke dalam file zip. Anda perlu menentukan di mana Anda ingin file zip ditempatkan, dan kemudian rsync direktori itu ke direktori backup Anda. Sebagai contoh:
$ zip /ZippedFiles/archive.zip / Directory1 / && rsync -av --delete / ZippedFiles / / Directory2 /
Perintah di atas mengambil file dari Directory1, menempatkannya di /ZippedFiles/archive.zip dan kemudian rsyncs direktori itu ke Directory2. Awalnya, Anda mungkin berpikir metode ini akan terbukti tidak efisien untuk backup besar, mengingat file zip akan berubah setiap kali perubahan sekecil apa pun dibuat ke file. Namun, rsync hanya mentransfer data yang diubah, jadi jika file zip Anda adalah 10 GB, dan kemudian Anda menambahkan file teks ke Directory1, rsync akan tahu bahwa semua yang Anda tambahkan (meskipun itu dalam zip) dan transfer hanya beberapa kilobyte data yang diubah.
Ada beberapa cara berbeda yang dapat Anda lakukan untuk mengenkripsi cadangan rsync Anda. Metode termudah adalah menginstal enkripsi pada hard drive itu sendiri (yang membuat file Anda di-backup). Cara lain adalah dengan mengenkripsi file Anda sebelum mengirimnya ke server jauh (atau hard drive lain, apa pun yang Anda back up). Kami akan membahas metode ini di artikel selanjutnya.
Apa pun opsi dan fitur yang Anda pilih, rsync terbukti menjadi salah satu alat cadangan paling efisien dan serbaguna hingga saat ini, dan bahkan skrip rsync sederhana dapat menyelamatkan Anda dari kehilangan data.