Beranda » bagaimana » Cara Menggunakan rsync untuk Mencadangkan Data Anda di Linux

    Cara Menggunakan rsync untuk Mencadangkan Data Anda di Linux

    rsync adalah protokol yang dibuat untuk sistem mirip Unix yang memberikan fleksibilitas luar biasa untuk membuat cadangan dan menyinkronkan data. Ini dapat digunakan secara lokal untuk membuat cadangan file ke direktori yang berbeda atau dapat dikonfigurasi untuk menyinkronkan di Internet ke host lain.

    Ini dapat digunakan pada sistem Windows tetapi hanya tersedia melalui berbagai port (seperti Cygwin), jadi dalam tutorial 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 itu "sudo apt-get install rsync."


    Perintah pada Red Hat / CentOS, setelah login sebagai root (perhatikan bahwa beberapa distribusi Red Hat baru-baru ini mendukung metode sudo).


    Perintah pada Debian / Ubuntu.

    Menggunakan rsync untuk cadangan lokal

    Di bagian pertama tutorial ini, kita akan mencadangkan file dari Directory1 ke Directory2. Kedua direktori ini berada di hard drive yang sama, tetapi ini akan bekerja sama persis jika direktori ada pada dua drive yang berbeda. Ada beberapa cara kami dapat melakukan pendekatan ini, tergantung pada jenis cadangan yang ingin Anda konfigurasi. Untuk sebagian besar tujuan, baris kode berikut akan cukup:

    $ rsync -av --delete / Directory1 / / Directory2 /

    Kode di atas akan menyinkronkan konten 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 saklar berbeda yang dapat Anda gunakan untuk rsync untuk mempersonalisasikannya untuk kebutuhan spesifik Anda. Berikut adalah apa yang diminta kode rsync untuk melakukan backup dengan yang disebutkan di atas:

    1. -a = rekursif (berulang ke direktori), tautan (salin symlink sebagai symlink), perms (pertahankan izin), waktu (pertahankan waktu modifikasi), grup (pertahankan grup), pemilik (simpan pemilik), simpan file perangkat, dan pertahankan file khusus.
    2. -v = verbose. Alasan saya pikir verbose penting adalah agar Anda dapat melihat persis apa yang dicadangkan rsync. Pikirkan ini: Bagaimana jika hard drive Anda rusak, dan mulai menghapus file tanpa sepengetahuan Anda, maka Anda menjalankan skrip rsync Anda dan mendorong perubahan itu ke cadangan Anda, dengan demikian menghapus semua contoh file yang Anda tidak ingin dapatkan menyingkirkan?
    3. -delete = Ini memberitahu rsync untuk menghapus semua file 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 membuat cadangan Directory1 ke Directory2. Perhatikan bahwa tanpa sakelar verbose, Anda tidak akan menerima informasi terperinci tersebut.

    Tangkapan layar di atas memberi tahu kita bahwa File1.txt dan File2.jpg dideteksi sebagai baru atau diubah dari salinan yang ada di Directory2, dan karenanya mereka dicadangkan. Kiat noob: Perhatikan garis miring di akhir direktori dalam perintah rsync saya - itu perlu, pastikan untuk mengingatnya.

    Kami akan membahas beberapa switch yang lebih praktis menjelang akhir tutorial ini, tetapi ingatlah bahwa untuk melihat daftar lengkap Anda dapat mengetik “man rsync” dan melihat daftar switch yang lengkap untuk digunakan..

    Itu tentang mencakup sejauh backup lokal yang bersangkutan. Seperti yang Anda tahu, rsync sangat mudah digunakan. Itu menjadi sedikit lebih kompleks ketika menggunakannya untuk menyinkronkan data dengan host eksternal melalui Internet, tetapi kami akan menunjukkan kepada Anda cara sederhana, cepat, dan aman untuk melakukan itu.

    Menggunakan rsync untuk backup eksternal

    rsync dapat dikonfigurasi dalam beberapa cara berbeda untuk backup eksternal, tetapi kami akan membahas metode yang paling praktis (juga yang paling mudah dan paling aman) untuk melakukan 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 dicadangkan 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), perlu diteruskan pada peralatan jaringan apa pun di sisi server..

    Di server (komputer yang akan menerima cadangan), pastikan SSH dan rsync diinstal.

    # yum -y menginstal ssh rsync

    # sudo apt-get install ssh rsync

    Selain menginstal SSH dan rsync di server, semua yang benar-benar perlu dilakukan adalah mengatur repositori di server di mana Anda ingin file dicadangkan, dan pastikan SSH terkunci. Pastikan pengguna yang Anda rencanakan untuk menggunakan kata sandi yang kompleks, dan mungkin juga merupakan ide bagus untuk mengganti port yang didengarkan SSH (standarnya adalah 22).

    Kami akan menjalankan perintah yang sama yang kami lakukan untuk menggunakan rsync pada komputer lokal, tetapi termasuk penambahan yang diperlukan untuk tunneling rsync melalui SSH ke server di jaringan lokal saya. Untuk pengguna "geek" yang terhubung ke "192.168.235.137" dan menggunakan sakelar yang sama seperti di atas (-av -delete) kami akan menjalankan yang berikut:

    $ rsync -av -delete -e ssh / Directory1 / [email protected]: / Directory2 /

    Jika Anda memiliki SSH mendengarkan pada beberapa port selain 22, Anda perlu 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 dapat Anda lihat dari tangkapan layar di atas, output yang diberikan saat membuat cadangan di jaringan hampir sama dengan saat membuat cadangan secara lokal, satu-satunya hal yang berubah adalah perintah yang Anda gunakan. Perhatikan juga bahwa itu meminta kata sandi. Ini untuk mengautentikasi dengan SSH. Anda dapat mengatur kunci RSA untuk melewati proses ini, yang juga akan menyederhanakan rsync otomatis.

    Mengotomatiskan cadangan rsync

    Cron dapat digunakan di Linux untuk mengotomatiskan eksekusi perintah, seperti rsync. Dengan menggunakan Cron, kami dapat membuat sistem Linux kami menjalankan backup malam hari, atau seberapa sering Anda ingin menjalankannya.

    Untuk mengedit file tabel cron untuk pengguna yang Anda masuki, jalankan:

    $ crontab -e

    Anda harus terbiasa dengan vi untuk mengedit file ini. Ketik "I" untuk disisipkan, dan kemudian mulai mengedit file tabel cron.

    Cron menggunakan sintaksis berikut: menit dalam satu jam, jam dalam sehari, hari dalam sebulan, bulan dalam setahun, hari dalam seminggu, perintah.

    Awalnya bisa sedikit membingungkan, jadi izinkan saya memberi Anda sebuah contoh. Perintah berikut akan menjalankan perintah rsync setiap malam jam 10 malam:

    0 22 * ​​* * rsync -av --delete / Directory1 / / Directory2 /

    "0" pertama menentukan menit dari jam tersebut, dan "22" menentukan 10 malam. Karena kita ingin perintah ini dijalankan setiap hari, kita akan meninggalkan sisa kolom dengan tanda bintang dan kemudian menempelkan perintah rsync.

    Setelah Anda selesai mengkonfigurasi Cron, tekan escape, lalu ketik ": wq" (tanpa tanda kutip) dan tekan enter. Ini akan menyimpan perubahan Anda di vi.

    Cron bisa mendapatkan jauh lebih mendalam dari ini, tetapi untuk melanjutkannya akan berada di luar cakupan tutorial ini. Kebanyakan orang hanya ingin cadangan mingguan atau harian sederhana, dan apa yang telah kami tunjukkan dapat Anda capai dengan mudah. Untuk info lebih lanjut tentang Cron, silakan lihat halaman manual.

    Fitur bermanfaat lainnya

    Hal lain yang bermanfaat yang dapat Anda lakukan adalah memasukkan cadangan Anda ke dalam file zip. Anda harus menentukan di mana Anda ingin menempatkan file zip, dan kemudian rsync direktori itu ke direktori cadangan 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 cadangan besar, mengingat file zip akan berubah setiap kali perubahan sekecil apa pun dibuat untuk 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 itu semua yang Anda tambahkan (meskipun itu dalam zip) dan mentransfer hanya beberapa kilobyte dari data yang diubah.

    Ada beberapa cara berbeda untuk mengenkripsi cadangan rsync Anda. Metode termudah adalah menginstal enkripsi pada hard drive itu sendiri (salah satu yang didukung file Anda). Cara lain adalah dengan mengenkripsi file Anda sebelum mengirimnya ke server jauh (atau hard drive lain, apa pun yang Anda buat cadangannya). 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 Anda.