Cara Backup Server Dengan rsync
Published: 2022-09-09 04:15:17

Jika tidak membuat cadangan server secara teratur, bisa dibilang hampir tidak memiliki cara untuk memulihkan file yang hilang. Akibatnya, salinan cadangan harus selalu memainkan peran penting dalam perencanaan server.

Tool atau protokol sinkronisasi rsync adalah salah satu dari banyak solusi pencadangan yang tersedia.
<h2>Apa itu rsync, dan untuk apa digunakan?</h2>
Nama rsync mengacu pada protokol jaringan untuk sinkronisasi file dikembangkan pada tahun 1996 oleh Andrew Tridgell, yang mengepalai proyek SAMBA. Selain protokol, ada tool dengan nama yang sama yang memfasilitasi komunikasi melalui protokol.

Aplikasi berlisensi GPL ini dapat digunakan secara gratis dan mentransfer file dari direktori sumber ke direktori target yang diperlukan baik secara lokal atau melalui jaringan publik. Ukuran file dan waktu pembuatan semua file di folder sumber dan target dibandingkan selama sinkronisasi, sehingga setiap proses sinkronisasi hanya menyalin file yang diubah.

Untuk alasan ini, proses pencadangan rsync disebut sebagai varian cadangan tambahan, yang menawarkan keuntungan bahwa pencadangan cepat dan menggunakan sedikit ruang penyimpanan.

rsync tersedia untuk semua sistem operasi UNIX standar seperti OS/2, Linux atau macOS. Dengan menggunakan API Cygwin, rsync juga dapat digunakan pada Microsoft Windows.

Skenario penggunaan umum untuk rsync termasuk: backup data  serta sinkronisasi data di perusahaan dengan berbagai lokasi dan koneksi data yang lemah. Secara khusus, fungsi terakhir hampir secara eksklusif dilakukan oleh teknologi cloud modern saat ini oleh sebab itu koneksi data yang lemah menjadi semakin jarang terjadi.
<h2 class="blue">Ikhtisar opsi rsync yang paling penting</h2>
Fitur luar biasa dari cadangan rsync adalah efisiensinya. Pendekatan inkremental meminimalkan pemanfaatan jaringan, yang merupakan keuntungan untuk file besar khususnya – terlepas dari apakah perubahan pada file tersebut besar atau minimal.

Sebagai alat baris perintah, rsync dikendalikan melalui <strong>terminal</strong> secara default – atau melalui <strong>command Prompt</strong>, jika menggunakan rsync pada perangkat Windows. Entri memiliki sintaks berikut:
<pre class="line-numbers language-mixed" data-language="mixed"><code class="language-mixed">rsync -(-)Options Source path Target path</code></pre>
Sebagai jalur sumber dan target, Anda menentukan masing-masing mulai direktori dan direktori di mana ingin rsync simpan salinan cadangan. Anda dapat menentukan pengaturan individual untuk cadangan rsync menggunakan Pilihan, yang disingkat menjadi huruf atau ditulis.

Tabel di bawah ini kami rangkum dari [Laptopbeep](https://www.laptopbeep.com/) merupakan parameter penting yang dapat digabungkan satu sama lain:
<table>
<tbody>
<tr>
<td><strong>pilihan</strong></td>
<td><strong>fungsi</strong></td>
</tr>
<tr>
<td><strong>-r, --recursive</strong></td>
<td>rsync backup memperhitungkan semua sub-direktori</td>
</tr>
<tr>
<td><strong>-u, --update</strong></td>
<td>Instruksi untuk melewati file yang lebih baru di direktori target daripada di direktori sumber</td>
</tr>
<tr>
<td><strong>-c, --checksum</strong></td>
<td>Membedakan file sumber dan target berdasarkan checksum</td>
</tr>
<tr>
<td><strong>-l, --links</strong></td>
<td>Tautan simbolis disalin seperti itu (dan bukan sebagai file)</td>
</tr>
<tr>
<td><strong>-p, --perms</strong></td>
<td>Izin file dipertahankan</td>
</tr>
<tr>
<td><strong>-g, --group</strong></td>
<td>Izin file grup dipertahankan</td>
</tr>
<tr>
<td><strong>-t, --times</strong></td>
<td>Stempel waktu file (perubahan terakhir) dipertahankan</td>
</tr>
<tr>
<td><strong>-o, --owner</strong></td>
<td>Pemilik file dipertahankan (hanya jika administrator)</td>
</tr>
<tr>
<td><strong>-D, --devices</strong></td>
<td>Data perangkat disimpan</td>
</tr>
<tr>
<td><strong>-z, --compress</strong></td>
<td>Kompresi otomatis dari file yang ditransfer</td>
</tr>
<tr>
<td><strong>--compress-level=NUM</strong></td>
<td>Menentukan tingkat kompresi; nilai ("NUM") antara 0 (tanpa kompresi) dan 9 (kompresi maksimum) dimungkinkan</td>
</tr>
<tr>
<td><strong>-v, –verbose</strong></td>
<td>Detail yang lebih komprehensif selama proses pencadangan</td>
</tr>
<tr>
<td><strong>-q, --quiet</strong></td>
<td>Sembunyikan semua detail pada proses pencadangan (kecuali pesan kesalahan)</td>
</tr>
<tr>
<td><strong>-a, --archive</strong></td>
<td>Mode arsip digunakan sebagai mode standar dan identik dengan kombinasi opsi -rlptgoD</td>
</tr>
<tr>
<td><strong>-n, --dry-run</strong></td>
<td>Uji coba di mana tidak ada perubahan aktual yang dibuat</td>
</tr>
<tr>
<td><strong>-h, --help</strong></td>
<td>Menu bantu (hanya dapat digunakan tanpa menunjukkan direktori sumber dan target atau argumen lain)</td>
</tr>
<tr>
<td><strong>--bwlimit=KBPS</strong></td>
<td>Batasi bandwidth (kilobyte per detik); misalnya<strong> –bwlimit=30</strong> (batas 30 kbit/s)</td>
</tr>
<tr>
<td><strong>--exclude=SAMPLE</strong></td>
<td>Kecualikan pola dari sinkronisasi; misalnya <strong>–tidak termasuk folder sampel</strong> (folder "Folder sampel" tidak disinkronkan.)</td>
</tr>
<tr>
<td><strong>--delete</strong></td>
<td>Hapus semua file yang ada di direktori target tetapi tidak di direktori sumber</td>
</tr>
<tr>
<td><strong>--progress</strong></td>
<td>Tunjukkan durasi pencadangan rsync dan kecepatan transfer</td>
</tr>
<tr>
<td><strong>--list-only</strong></td>
<td>Daftar file alih-alih cadangan</td>
</tr>
<tr>
<td><strong>--stats</strong></td>
<td>Laporan komprehensif tentang data yang ditransfer (jumlah, ukuran)</td>
</tr>
<tr>
<td><strong>--max-size=SIZE</strong></td>
<td>Tentukan ukuran file maksimum; misalnya <strong>–max-size=10MB (hanya file dengan ukuran hingga 10 MB yang ditransfer.)</strong></td>
</tr>
<tr>
<td><strong>--ignore-errors</strong></td>
<td>Cegah pembatalan proses pencadangan jika terjadi kesalahan</td>
</tr>
</tbody>
</table>
<h2 class="blue">Menyiapkan cadangan rsync di server Linux</h2>
Untuk menggunakan rsync di sistem operasi Linux, instal protokol dalam paket dengan nama yang sama dan buat cadangan menggunakan perintah Terminal. Atau bisa juga menggunakan aplikasi seperti Back In Time, rsnapshot (untuk pencadangan otomatis reguler) atau Unison untuk mengontrol proses pencadangan melalui antarmuka pengguna grafis.

Dalam contoh di bawah ini menggunakan Ubuntu, kami menunjukkan kepada Anda langkah-langkah terpenting untuk menyiapkan proses pencadangan menggunakan rsync:

rsync diinstal secara default di bawah Ubuntu. Jika ini bukan masalahnya, instal menggunakan perintah berikut.
<pre class="line-numbers language-mixed" data-language="mixed"><code class="language-mixed">sudo apt-get install rsync</code></pre>
Saat rsync diinstal, gunakan perintah Terminal yang diperlukan untuk menentukan <strong>direktori sumber dan target </strong>dan opsi cadangan. Misalnya, Anda dapat menjalankan mode standar (“Arsip”) sebagai berikut:
<pre class="line-numbers language-mixed" data-language="mixed"><code class="language-mixed">rsync -a Source directory Target directory</code></pre>
<h2>5 skenario pencadangan rsync yang populer</h2>
Setelah Anda mengetahui perintah dasar, rsync adalah alat yang luar biasa untuk menyalin file serta membuat cadangan. Anda dapat menguji dan menerapkan pengaturan perintah individu atau penggunaan kombinasi terbukti dari parameter rsync yang tersedia. Misalnya, skenario pencadangan rsync berikut sangat populer:
<h3>Pencadangan standar dengan mode pengarsipan</h3>
Mode pengarsipan, yang menyalin semua file dari direktori sumber ke direktori target (termasuk semua sub-direktori) dan menyimpan semua otorisasi, stempel waktu, dan data perangkat, adalah solusi ideal dan paling sederhana dalam banyak kasus karena menggabungkan berbagai opsi dalam satu parameter.

Jika Anda menggabungkan mode dengan parameter –v, Anda juga akan menerima informasi status yang komprehensif selama proses pencadangan.
<pre class="line-numbers language-mixed" data-language="mixed"><code class="language-mixed">rsync -av Source directory Target directory</code></pre>
<h3>Salinan identik dari direktori sumber</h3>
rsync tidak hanya dapat mentransfer file dari A ke B, tetapi juga dapat membuat salinan identik folder atau seluruh direktori. Setelah pengarsipan standar, file yang ada di folder target sebelum rsync, tetapi tidak ada di folder sumber, akan dihapus.
<pre class="line-numbers language-mixed" data-language="mixed"><code class="language-mixed">rsync -av --delete Source directory Target directory</code></pre>
<h3>Cadangan tidak termasuk file dengan format tertentu</h3>
Jika ingin menjalankan pencadangan tidak termasuk file dalam format tertentu, Anda dapat menggunakan -Mengecualikan perintah untuk melakukannya. Parameter memungkinkan untuk menentukan pola karakter individu, yang digunakan rsync sebagai indikator untuk mengabaikan file.

Kode contoh berikut tidak termasuk file teks <em>. Txt</em>.
<pre class="line-numbers language-mixed" data-language="mixed"><code class="language-mixed">rsync -av --exclude'*.txt' Source directory Target directory</code></pre>
<h3>Mencadangkan file dengan ukuran minimum atau maksimum yang ditentukan</h3>
Jika tidak menginginkan pola karakter tertentu, tetapi ukuran file pengaruh pengecualian file tertentu dalam pencadangan rsync, Anda dapat menggunakan parameter –max-size dan –min-size.

Jika menggunakan perintah berikut, hanya file minimal 10 MB dan maksimal 100 MB yang disalin:
<pre class="line-numbers language-mixed" data-language="mixed"><code class="language-mixed">rsync -av --min-size=10MB --max-size=100MB Source directory Target directory</code></pre>
<h2 class="blue">Cadangan termasuk konversi format karakter</h2>
Kita mungkin harus mengonversi file menjadi file lain format karakter di direktori target – misalnya Jika ingin mentransfer data dari Mac ke server Linux. Sebagai standar, perangkat Apple menggunakan UTF8-MAC, yang tidak tersedia di sistem Linux dan akan menyebabkan masalah dengan karakter khusus serta umlautss.

Opsi –iconv memungkinkan kita dengan mudah menyesuaikan pengkodean karakter sebagai bagian dari proses pencadangan rsync (dari UTF8-MAC ke UTF8 dalam contoh):
<pre class="line-numbers language-mixed" data-language="mixed"><code class="language-mixed">rsync -av --iconv=UTF8-MAC,UTF8 Source directory Target directory</code></pre>