17Aug

Panduan Non-Pemula untuk Menyelaraskan Data dengan Rsync

click fraud protection

Protokol rsync bisa sangat mudah digunakan untuk pekerjaan backup / sinkronisasi biasa, namun beberapa fitur yang lebih maju mungkin mengejutkan Anda. Pada artikel ini, kita akan menunjukkan bagaimana bahkan penimbun data terbesar dan penggemar cadangan dapat menggunakan rsync sebagai solusi tunggal untuk semua kebutuhan redundansi data mereka.

Peringatan: Advanced Geeks Only

Jika Anda duduk di sana berpikir "Apa itu rsync?" Atau "Saya hanya menggunakan rsync untuk tugas yang sangat sederhana," Anda mungkin ingin memeriksa artikel sebelumnya tentang cara menggunakan rsync untuk backupdata Anda di Linux, yang memberi pengenalan rsync, memandu Anda melalui instalasi, dan menampilkan fungsinya yang lebih mendasar. Begitu Anda memiliki pemahaman yang kuat tentang bagaimana menggunakan rsync( sejujurnya, bukan itu rumit) dan merasa nyaman dengan terminal Linux, Anda siap untuk beralih ke panduan lanjutan ini.

Menjalankan rsync di Windows

Pertama, mari kita bahas pembaca Windows kita di halaman yang sama dengan guru Linux kita. Meskipun rsync dibangun untuk berjalan pada sistem seperti Unix, tidak ada alasan bahwa Anda seharusnya tidak dapat menggunakannya dengan mudah di Windows. Cygwin menghasilkan API Linux yang indah yang dapat kita gunakan untuk menjalankan rsync, jadi tuju ke situs web mereka dan download versi 32-bit atau 64-bit, tergantung pada komputer Anda. Instalasi

instagram viewer

sangat mudah;Anda dapat menyimpan semua opsi pada nilai default sampai Anda mencapai layar "Select Packages".

Sekarang Anda perlu melakukan langkah yang sama untuk Vim dan SSH, namun paketnya akan terlihat sedikit berbeda saat Anda memilihnya, jadi berikut adalah beberapa tangkapan layar:

Memasang Vim:

Memasang SSH:

Setelah Anda selesaipilih ketiga paket tersebut, terus klik next sampai selesai instalasi. Kemudian Anda bisa membuka Cygwin dengan mengklik ikon installer yang diletakkan di desktop Anda. Perintah

rsync: Simple to Advanced

Sekarang pengguna Windows berada pada halaman yang sama, mari kita lihat perintah rsync yang sederhana, dan tunjukkan bagaimana penggunaan beberapa switch canggih dapat dengan cepat membuatnya rumit.

Katakanlah Anda memiliki banyak file yang perlu dicadangkan - siapa yang tidak akhir-akhir ini? Anda memasukkan hard drive portabel Anda sehingga Anda dapat membuat cadangan file komputer Anda, dan mengeluarkan perintah berikut:

rsync -a /home/geek/files/ /mnt/usb/files/

Atau, seperti yang terlihat pada komputer Windows dengan Cygwin:

rsync -a /cygdrive/c/files/ /cygdrive/e/files/

Cukup sederhana, dan padatitik itu benar-benar tidak perlu menggunakan rsync, karena Anda bisa drag dan drop file. Namun, jika harddisk Anda yang lain sudah memiliki beberapa file dan hanya memerlukan versi update ditambah file yang telah dibuat sejak sinkronisasi terakhir, perintah ini berguna karena hanya mengirimkan data baru ke hard drive. Dengan file besar, dan terutama mentransfer file melalui internet, itu adalah masalah besar.

Mencadangkan file Anda ke hard drive eksternal dan kemudian menjaga hard drive di lokasi yang sama dengan komputer Anda adalah ide yang sangat buruk, jadi mari kita lihat apa yang diperlukan untuk mulai mengirim file Anda melalui internet ke komputer lain.(yang telah Anda sewa, anggota keluarga, dll).

rsync -av --delete -e 'ssh -p 12345' /home/geek/files/ [email protected]: /home/geek2/files/

Perintah di atas akan mengirimkan file Anda ke komputer lain dengan alamat IP 10.1.1.1.Ini akan menghapus file asing dari tempat tujuan yang tidak lagi ada di direktori sumber, mengeluarkan namafile yang ditransfer sehingga Anda memiliki gagasan tentang apa yang terjadi, dan terowongan rsync melalui SSH di port 12345.

The -a -v -e --delete switch adalah beberapa yang paling dasar dan umum digunakan;Anda seharusnya sudah tahu banyak tentang mereka jika Anda membaca tutorial ini. Mari kita pergi ke beberapa switch lain yang kadang-kadang diabaikan tapi sangat berguna:

- kemajuan - Switch ini memungkinkan kita untuk melihat kemajuan transfer setiap file. Ini sangat berguna saat mentransfer file besar melalui internet, namun dapat menampilkan sejumlah informasi yang tidak masuk akal saat mentransfer file kecil ke jaringan yang cepat.

Perintah rsync dengan tombol - progres sebagai cadangan sedang berlangsung:

- bela diri - Ini adalah tombol lain yang sangat berguna saat mentransfer file besar melalui internet. Jika rsync terputus karena alasan apa pun di tengah transfer file, file yang ditransfer sebagian disimpan di direktori tujuan dan transfer dilanjutkan dari tempat yang ditinggalkan setelah perintah rsync dijalankan kembali. Saat mentransfer file besar melalui internet( katakanlah, beberapa gigabyte), tidak ada yang lebih buruk daripada melakukan beberapa pemadaman internet kedua, layar biru, atau kesalahan manusia dalam perjalanan mentransfer file Anda dan harus memulai dari awal lagi.

-P - switch ini menggabungkan - kemajuan dan - bela diri, jadi gunakan saja dan itu akan membuat perintah rsync Anda sedikit lebih rapi.

-z atau --compress - Switch ini akan membuat data file kompres rsync saat ditransfer, mengurangi jumlah data yang harus dikirim ke tempat tujuan. Ini sebenarnya adalah peralihan yang cukup umum namun jauh dari yang esensial, hanya memberi manfaat pada transfer antara koneksi lambat, dan tidak melakukan apa-apa untuk jenis berkas berikut ini: 7z, avi, bz2, deb, g, z iso, jpeg, jpg,mov, mp3, mp4, ogg, rpm, tbz, tgz, z, zip.

-h atau - bisa dibaca manusia - Jika Anda menggunakan tombol - progres, Anda pasti ingin menggunakan yang ini juga. Artinya, kecuali Anda ingin mengubah byte menjadi megabyte on the fly. Saklar -h mengubah semua nomor yang dikeluarkan menjadi format yang dapat dibaca manusia, sehingga Anda dapat benar-benar memahami jumlah data yang ditransfer.

-n atau --dry-run - Switch ini sangat penting untuk diketahui saat Anda pertama kali menulis skrip rsync Anda dan mengujinya. Ini melakukan uji coba namun tidak benar-benar membuat perubahan - perubahan yang diharapkan masih dipajang seperti biasa, sehingga Anda dapat membaca semua hal dan memastikannya terlihat baik sebelum menggulirkan naskah Anda ke dalam produksi.

-R atau --relative - Switch ini harus digunakan jika direktori tujuan belum ada. Kami akan menggunakan opsi ini nanti dalam panduan ini sehingga kami dapat membuat direktori pada mesin target dengan cap waktu dalam nama folder.

--exclude-from - Switch ini digunakan untuk menautkan ke daftar pengecualian yang berisi jalur direktori yang tidak ingin dicadangkan. Ini hanya membutuhkan file teks biasa dengan direktori atau path file pada setiap baris.

--include-from - Serupa dengan --exclude-from, namun terhubung ke file yang berisi direktori dan jalur file data yang ingin didukung.

--stats - Tidak benar-benar sebuah tombol penting dengan cara apapun, tapi jika Anda seorang sysadmin, dapat berguna untuk mengetahui statistik terperinci dari setiap cadangan, hanya agar Anda dapat memantau jumlah lalu lintas yang dikirim melalui jaringan Anda dan seperti itu.

--log-file - Ini memungkinkan Anda mengirim output rsync ke file log. Kami merekomendasikan hal ini untuk backup otomatis dimana Anda tidak berada di sana untuk membaca hasilnya sendiri. Selalu berikan file log sekali lagi di waktu luang Anda untuk memastikan semuanya bekerja dengan baik. Juga, ini adalah tombol penting bagi sysadmin untuk digunakan, jadi Anda tidak akan bertanya-tanya bagaimana backup Anda gagal saat Anda meninggalkan magang yang bertanggung jawab.

Mari kita lihat perintah rsync kita sekarang karena kita memiliki beberapa switch lagi:

rsync -avzhP --delete --stats --log-file = /home/geek/rsynclogs/ backup.log --exclude-from '/home/geek/ exclude.txt'-e 'ssh -p 12345' /home/geek/files/ [email protected]: /home/geek2/files/

Perintahnya masih cukup sederhana, namun kami masih belum membuat solusi backup yang layak. Meskipun file kita sekarang berada di dua lokasi fisik yang berbeda, cadangan ini tidak melakukan apapun untuk melindungi kita dari salah satu penyebab utama hilangnya data: kesalahan manusia.

Snapshot Backup

Jika Anda secara tidak sengaja menghapus sebuah file, virus akan merusak file Anda, atau sesuatu yang lain terjadi dimana file Anda tidak diinginkan diubah, dan kemudian Anda menjalankan skrip cadangan rsync Anda, data cadangan Anda akan ditimpa dengan perubahan yang tidak diinginkan. Bila hal seperti itu terjadi( tidak jika, tapi kapan), solusi cadangan Anda tidak melakukan apa pun untuk melindungi Anda dari kehilangan data Anda.

Pencipta rsync menyadari hal ini, dan menambahkan argumen --backup dan --backup-dir sehingga pengguna dapat menjalankan backup diferensial. Contoh pertama di situs web rsync menunjukkan skrip tempat penyimpanan penuh dijalankan setiap tujuh hari, dan kemudian perubahan pada file tersebut dicadangkan di direktori terpisah setiap hari. Masalah dengan metode ini adalah untuk memulihkan file Anda, Anda harus memulihkannya secara efektif tujuh kali berbeda. Selain itu, kebanyakan Geeks menjalankan backup mereka beberapa kali dalam sehari, sehingga Anda dapat dengan mudah memiliki 20+ direktori backup yang berbeda pada waktu tertentu. Tidak hanya memulihkan file Anda sekarang menjadi sakit, tapi bahkan hanya melihat melalui data cadangan Anda bisa sangat memakan waktu - Anda harus tahu kapan terakhir file diubah untuk menemukan salinan cadangan terbaru. Selain itu, tidak efisien menjalankan hanya beberapa mingguan( atau bahkan jarang dalam beberapa kasus) incremental backup.

Snapshot backup untuk menyelamatkannya! Backup snapshot tidak lebih dari incremental backup, tapi mereka menggunakan hardlink untuk mempertahankan struktur file dari sumber aslinya. Mungkin sulit untuk membungkus kepala Anda pada awalnya, jadi mari kita lihat sebuah contoh.

Berpura-pura kita memiliki skrip cadangan yang secara otomatis membuat cadangan data kita setiap dua jam. Setiap kali rsync melakukan ini, ia memberi nama setiap backup dalam format: Backup-month-day-year-time.

Jadi, pada akhir hari yang biasa, kita akan memiliki daftar folder di direktori tujuan kita seperti ini:

Saat melintasi salah satu direktori tersebut, Anda akan melihat setiap file dari direktori sumber persis seperti pada saat itu..Namun, tidak akan ada duplikat di dua direktori manapun.rsync menyelesaikan ini dengan menggunakan hardlinking melalui argumen --link-dest = DIR.

Tentu saja, untuk mendapatkan nama direktori yang bagus dan rapi ini, kita harus membuat skrip rsync kita sedikit. Mari kita lihat apa yang diperlukan untuk mencapai solusi cadangan seperti ini, dan kemudian kami akan menjelaskan skripnya secara lebih rinci:

#!/bin/ bash

#copy time.txt lama ke time2.txt

iya |cp ~ /backup/ time.txt ~ /backup/ time2.txt

#menghapus file time.txt lama dengan waktu baru

echo `date +"% F-% I% p "` & gt;~ /backup/ time.txt

#membuat file log

echo "" & gt;~ /backup/ rsync-`date + "% F-% I% p" `.log

#rsync perintah

rsync -avzhPR --chmod = Du = rwx, Dgo = rx, Fu = rw, Fgo = r - hapus --stats --log-file = ~ /backup/ rsync-`date + "% F-% I% p" `.log --exclude-from '~ / exclude.txt' --link-dest = /home/geek2/files/` cat ~ /backup/time2.txt` -e 'ssh -p 12345' /home/geek/files/ [email protected]: /home/geek2/files/ `date +"% F-% I% p "` /

# jangan lupa untuk memasukkan file log dan memasukkannya kebackup

scp -P 12345 ~ /backup/ rsync-`cat ~ /backup/ time.txt`.log [email protected]: /home/geek2/files/ `cat ~ /backup/ time.txt` / rsync-`cat ~ /backup/ time.txt`.log

Ituakan menjadi skrip rsync snapshot yang khas. Jika kita kehilangan Anda di suatu tempat, mari kita membedahnya secara sepotong demi sepotong:

Baris pertama naskah kita menyalin isi time.txt ke time2.txt. Ya pipa adalah untuk mengkonfirmasi bahwa kita ingin menimpa file. Selanjutnya, kita mengambil waktu sekarang dan memasukkannya ke time.txt. File-file ini akan berguna nantinya.

Baris berikutnya membuat file log rsync, menamainya rsync-date.log( di mana tanggal adalah tanggal dan waktu yang sebenarnya).

Sekarang, perintah rsync kompleks yang telah kami peringatan tentang:

-avzhPR, -e, --delete, --stats, --log-file, --exclude-from, --link-dest - Justswitch yang kita bicarakan tadi;gulir ke atas jika Anda memerlukan penyegaran.

--chmod = Du = rwx, Dgo = rx, Fu = rw, Fgo = r - Ini adalah hak akses untuk direktori tujuan. Karena kita membuat direktori ini di tengah skrip rsync kita, kita perlu menentukan hak akses sehingga pengguna kita dapat menulis file ke dalamnya.

Penggunaan tanggal dan perintah kucing

Kita akan membahas setiap penggunaan perintah tanggal dan kucing di dalam perintah rsync, sesuai urutannya. Catatan: Kami menyadari bahwa ada cara lain untuk mencapai fungsi ini, terutama dengan penggunaan variabel yang menyatakan, namun untuk tujuan panduan ini, kami telah memutuskan untuk menggunakan metode ini.

Berkas log ditentukan sebagai:

~ /backup/ rsync-`date + "% F-% I% p" `.log

Sebagai alternatif, kita bisa menentukannya sebagai:

~ /backup/ rsync-`cat ~ /backup/ time.txt`.log

Either way, perintah --log-file harus dapat menemukan file log yang dibuat sebelumnya dan menuliskannya.

File tujuan link ditentukan sebagai:

--link-dest = /home/geek2/files/ `cat ~ /backup/ time2.txt`

Ini berarti bahwa perintah --link-dest diberikan pada direktori dari backup sebelumnya. Jika kita menjalankan backup setiap dua jam, dan sudah jam 4:00 PM saat kita menjalankan script ini, maka perintah --link-dest mencari direktori yang dibuat pada pukul 14:00 dan hanya mentransfer data yang telah berubah sejak saat itu( jika ada).

Untuk mengulangi, itu sebabnya time.txt disalin ke time2.txt di awal skrip, jadi perintah --link-dest dapat merujuk waktu itu nanti.

Direktori tujuan ditentukan sebagai:

[email protected]: /home/geek2/files/ `date +"% F-% I% p "`

Perintah ini hanya menempatkan file sumber ke dalam sebuah direktori yang memiliki judul dari tanggal dan waktu sekarang..

Akhirnya, kami memastikan bahwa salinan file log ditempatkan di dalam cadangan.

scp -P 12345 ~ /backup/ rsync-`cat ~ /backup/ time.txt`.log [email protected]: /home/geek2/files/ `cat ~ /backup/ time.txt` / rsync-`cat ~ /backup/ time.txt`.log

Kami menggunakanamankan salinan pada port 12345 untuk mengambil log rsync dan letakkan di direktori yang benar. Untuk memilih file log yang benar dan memastikannya berakhir di tempat yang tepat, file time.txt harus dirujuk melalui perintah kucing. Jika Anda bertanya-tanya mengapa kami memutuskan untuk cat time.txt daripada hanya menggunakan perintah tanggal, itu karena banyak waktu bisa terjadi saat perintah rsync dijalankan, jadi untuk memastikan kami memiliki waktu yang tepat, kami hanya kucingdokumen teks yang kita buat tadi.

Automation

Gunakan Cron di Linux atau Task Scheduler pada Windows untuk mengotomatisasi skrip rsync Anda. Satu hal yang harus Anda hati-hati adalah memastikan bahwa Anda mengakhiri proses rsync yang sedang berjalan saat ini sebelum melanjutkan yang baru. Task Scheduler sepertinya sudah menutup contoh yang sudah berjalan secara otomatis, tapi untuk Linux Anda harus sedikit lebih kreatif.

Sebagian besar distribusi Linux dapat menggunakan perintah pkill, jadi pastikan untuk menambahkan yang berikut ini ke awal skrip rsync Anda:

pkill -9 rsync

Encryption

Tidak, kita belum selesai. Kami akhirnya memiliki solusi cadangan yang fantastis( dan gratis!), Namun semua file kami masih rentan terhadap pencurian. Mudah-mudahan, Anda membuat cadangan file Anda sampai beberapa tempat ratusan mil jauhnya. Tidak peduli seberapa aman tempat yang jauh, pencurian dan hacking selalu bisa menjadi masalah.

Dalam contoh kami, kami telah mengacak semua lalu lintas rsync kami melalui SSH, jadi itu berarti semua file kami dienkripsi saat transit ke tempat tujuan mereka. Namun, kita perlu memastikan tujuannya sama amannya. Ingatlah bahwa rsync hanya mengenkripsi data Anda saat sedang ditransfer, namun file terbuka lebar begitu mereka sampai di tempat tujuan.

Salah satu fitur terbaik rsync adalah hanya mentransfer perubahan pada setiap file. Jika Anda memiliki semua file Anda yang dienkripsi dan membuat satu perubahan kecil, keseluruhan file harus dipancarkan ulang sebagai akibat dari enkripsi yang benar-benar mengacak semua data setelah ada perubahan.

Untuk alasan ini, sebaiknya gunakan beberapa jenis enkripsi disk, seperti BitLocker untuk Windows atau dm-crypt untuk Linux. Dengan begitu, data Anda terlindungi jika terjadi pencurian, namun file dapat ditransfer dengan rsync dan enkripsi Anda tidak akan menghalangi kinerjanya. Ada pilihan lain yang tersedia yang bekerja sama dengan rsync atau bahkan menerapkan beberapa bentuknya, seperti Duplicity, namun tidak memiliki beberapa fitur yang rsync tawarkan.

Setelah Anda menyiapkan backup snapshot Anda di lokasi di luar kantor dan mengenkripsi sumber dan hard drive tujuan Anda, berikan tepukan pada punggung untuk menguasai rsync dan terapkan solusi backup data yang paling mudah.