GNU/Linux >> Belajar Linux >  >> Linux

Cara Mencadangkan File Dan Direktori Menggunakan Rsync Di Linux

Mencari solusi yang andal dan kuat untuk mencadangkan data Anda di Linux? Rsinkronisasi membuat Anda tertutup! Panduan ini memandu Anda melalui langkah-langkah untuk membuat cadangan file dan direktori menggunakan Rsync di Linux.

1. Pendahuluan

Jika Anda tidak pernah mencadangkan data Anda mengingat semuanya akan berfungsi dengan baik, maka saya akan mengatakan Anda salah.

Tanyakan saja kepada pengguna Linux di luar sana, mereka akan berbagi rasa sakit karena tidak mencadangkan sistem/data mereka. Sebagai seorang pemula, saya pernah melakukan kesalahan itu dan belajar pentingnya backup.

Ada banyak alat Cadangan untuk platform Linux dan Unix. Rsinkronisasi (Sinkronisasi Jarak Jauh) dianggap sebagai salah satu alat pencadangan yang paling banyak digunakan dan tepercaya.

2. Cadangkan file dan direktori menggunakan Rsync di Linux

Dengan menggunakan Rsync, kita dapat,

  1. cadangkan seluruh sistem,
  2. atau buat cadangan file dan direktori individual.

Pada tipe pertama, kami menyalin seluruh sistem file Linux ke perangkat eksternal atau jaringan berbagi. Anda dapat menggunakan salinan ini untuk membawa mesin ke keadaan semula jika terjadi kegagalan sistem.

Jenis kedua adalah backup atau salin file dan direktori selektif saja. Misalnya, Anda dapat menyalin file konfigurasi penting atau seluruh $HOME direktori, dan kecualikan yang lainnya.

Kami telah menunjukkan kepada Anda cara mencadangkan seluruh sistem Linux menggunakan Rsync . Panduan ini berfokus pada file dan direktori cadangan selektif yang menggunakan Rsync di Linux.

2.1. Memilih media penyimpanan

Sebagai langkah pertama, putuskan di mana Anda akan membuat cadangan data Anda. Ini sangat penting!

Anda dapat mencadangkan data Anda ke hard disk eksternal, penyimpanan Cloud, atau Penyimpanan yang terpasang ke Jaringan (NAS). Opsi sederhana dan murah adalah menggunakan hard disk eksternal.

Jika Anda memiliki dua drive terpisah di mesin Anda, Anda dapat menggunakan salah satu drive untuk mencadangkan data Anda mengingat keduanya tidak akan gagal sekaligus.

Catatan:

Jika Anda serius tentang Pencadangan, jangan letakkan cadangan di drive yang sama. Selalu gunakan drive eksternal, drive sekunder, berbagi jaringan, dan penyimpanan cloud, dll.

Untuk tujuan demonstrasi, saya akan menggunakan 1 TB hard disk eksternal di seluruh panduan ini.

2.3. Cadangkan file menggunakan Rsync

Sintaks umum Rsync untuk menyalin data dari satu lokasi ke lokasi lain adalah:

rsync [OPTION…] SRC… [DEST]

Di sini,

  • OPTION - daftar opsi Rsync
  • SRC - File/direktori sumber
  • DEST - Tujuan

Berikut adalah perintah Rsync sederhana untuk mencadangkan atau menyalin file dari satu lokasi ke lokasi lain di sistem lokal itu sendiri.

$ rsync src_file dest_file

Contoh:

$ rsync -auv ostechnix.txt ostechnix-bak.txt

Di sini,

  • -a - Mode mode arsip (mempertahankan properti file dan sym-link)
  • -u - Lewati file yang lebih baru di pihak penerima.
  • -v - Modus verbose

Perintah di atas menyimpan file cadangan ostechnix-bak.txt file di direktori saat ini. Anda juga dapat menentukan direktori tujuan yang berbeda seperti di bawah ini:

$ rsync -auv ostechnix.txt Downloads/ostechnix-bak.txt

Jika Anda tidak menentukan nama file target, Rsync akan menggunakan nama file sumber yang sama dengan file target.

Menyimpan file cadangan di disk yang sama sebenarnya bukan cadangan. Anda harus menyimpan data cadangan di drive eksternal atau jaringan bersama atau setidaknya di partisi yang berbeda.

Misalnya, perintah berikut mencadangkan file ke drive eksternal saya:

$ rsync -auv ostechnix.txt /media/karthick/"My Passport"/

Rsync memiliki banyak opsi lanjutan. Perhatikan contoh berikut:

$ rsync -azvhP ostechnix.txt /media/karthick/"My Passport"/

Perintah ini mentransfer file dalam mode arsip (untuk mempertahankan atribut) dan terkompresi (zip) dengan bilah kemajuan verbose dan dapat dibaca manusia.

2.4. Cadangkan direktori menggunakan Rsync

Alih-alih mencadangkan satu file, Anda dapat meletakkan semua file di direktori dan mencadangkan direktori itu dengan Rsync. Ini berguna saat mencerminkan dan menyinkronkan data.

Untuk tujuan panduan ini, saya akan menunjukkan cara membuat cadangan direktori HOME menggunakan Rsync.

2.4.1. Cadangkan direktori HOME menggunakan Rsync

Rsync adalah alat penyalinan file tambahan. Artinya - ini hanya menyinkronkan data baru atau yang dimodifikasi di direktori sumber (yaitu /home dalam kasus kami) alih-alih menyinkronkan semua data lagi dari awal.

Untuk mencadangkan $HOME my saya direktori ke drive eksternal saya, saya menggunakan perintah berikut:

$ rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/

Mari kita uraikan perintah di atas dan lihat apa yang dilakukan setiap opsi.

  • Bendera -a adalah kombinasi dari banyak pilihan. Bendera ini menangani salinan rekursif dan mempertahankan atribut seperti izin file/direktori, pemilik, dll.
  • Bendera -v akan mengaktifkan mode verbose yang akan memberikan lebih banyak log di terminal saat Anda menjalankan perintah rsync.
  • Bendera -x akan membatasi rsync untuk menyinkronkan data dalam batas sistem file. Jika Anda telah memasang sistem file apa pun di dalam direktori home Anda yang akan dilewati selama operasi sinkronisasi.
  • Bendera -P adalah kombinasi dari dua bendera. Ini akan menampilkan kemajuan setiap sinkronisasi dan menyimpan sebagian file yang ditransfer.
  • Bendera --delete akan menghapus semua direktori dan file yang tidak tersedia di sumber tetapi tersedia di tujuan. Anda harus sangat berhati-hati saat menggunakan bendera.
  • Bendera --exclude-from=File menerima file sebagai argumen. File ini berisi daftar file dan direktori yang akan diabaikan oleh rsync.

Saya telah membuat file bernama ignore_list.txt yang berisi file dan direktori yang perlu dikecualikan.

Pada perintah di atas, bagian ini --exclude-from=/home/karthick/Work/Backup/ignore_list.txt mendefinisikan daftar pengecualian.

Berikut adalah isi dari ignore_list.txt berkas:

Daftar item yang akan dikecualikan dari gambar di atas adalah pilihan pribadi saya dan mungkin berbeda untuk Anda. Ubah parameter sesuai dengan lingkungan Anda.

Dua bagian terakhir dari perintah Rsync di atas adalah lokasi sumber dan tujuan. Dalam kasus saya, sumbernya adalah direktori $HOME saya dan tujuannya adalah drive eksternal saya. Ganti sumber dan tujuan sesuai dengan lingkungan Anda.

Perhatian: Jika Anda ingin mengetahui titik pemasangan untuk drive eksternal Anda, jalankan lsblk perintah.

$ lsblk

sdb             8:16   0 931.5G  0 disk  
└─sdb1          8:17   0 931.5G  0 part  /media/karthick/My Passport

Sebelum menjalankan rsync perintah untuk pertama kalinya, selalu disarankan untuk melakukan dry run . Dry run akan mensimulasikan perubahan apa yang akan dilakukan. Gunakan perintah yang sama tetapi dengan -n bendera.

$ rsync -avxP -n --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/

Contoh keluaran:

 sending incremental file list
 karthick/
 karthick/.bash_history
         20,527 100%    0.00kB/s    0:00:00 (xfr#1, ir-chk=1056/1060)
karthick/.shutter/
karthick/.shutter/drawingtool.xml
            228 100%    4.54kB/s    0:00:00 (xfr#2, ir-chk=1037/1060)
karthick/.shutter/profiles/
karthick/Pictures/
karthick/Pictures/Selection_001.png
         37,626 100%  349.94kB/s    0:00:00 (xfr#3, to-chk=47/3001)
karthick/Pictures/Selection_002.png
         25,815 100%  227.12kB/s    0:00:00 (xfr#4, to-chk=46/3001)
karthick/Pictures/Selection_003.png
         63,275 100%  532.69kB/s    0:00:00 (xfr#5, to-chk=45/3001)
karthick/Pictures/Selection_004.png
         77,965 100%  581.20kB/s    0:00:00 (xfr#6, to-chk=44/3001)
karthick/Pictures/Selection_005.png
         75,863 100%  532.99kB/s    0:00:00 (xfr#7, to-chk=43/3001)
karthick/Pictures/Selection_006.png
         11,628 100%   75.20kB/s    0:00:00 (xfr#8, to-chk=42/3001)
karthick/Pictures/Selection_007.png
         24,311 100%  150.26kB/s    0:00:00 (xfr#9, to-chk=41/3001)
karthick/Work/Backup/
karthick/Work/Backup/home_dir_backup.sh
            764 100%    4.34kB/s    0:00:00 (xfr#10, to-chk=20/3001)
karthick/Work/Backup/home_dir_backup.sh~
            796 100%    4.37kB/s    0:00:00 (xfr#11, to-chk=19/3001)
karthick/Work/Backup/ignore_list.txt
            182 100%    1.00kB/s    0:00:00 (xfr#12, to-chk=18/3001)
karthick/Work/Backup/ignore_list.txt~
            182 100%    1.00kB/s    0:00:00 (xfr#13, to-chk=17/3001)
...
...
...
sent 88,424 bytes  received 9,459 bytes  195,766.00 bytes/sectotal size is 3,028,935,519  speedup is 30,944.45 (DRY RUN)

Jika semuanya berjalan sesuai keinginan,  hapus -n tandai dan jalankan perintah untuk mencadangkan data Anda.

$ rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/

Bergantung pada ukurannya, proses pertama akan memakan waktu.

sending incremental file list
karthick/
karthick/.bash_history
         20,527 100%    0.00kB/s    0:00:00 (xfr#1, ir-chk=1056/1060)
karthick/.shutter/
karthick/.shutter/drawingtool.xml
            228 100%    4.54kB/s    0:00:00 (xfr#2, ir-chk=1037/1060)
karthick/.shutter/profiles/
karthick/Pictures/
karthick/Pictures/Selection_001.png
         37,626 100%  349.94kB/s    0:00:00 (xfr#3, to-chk=47/3001)
karthick/Pictures/Selection_002.png
         25,815 100%  227.12kB/s    0:00:00 (xfr#4, to-chk=46/3001)
karthick/Pictures/Selection_003.png
         63,275 100%  532.69kB/s    0:00:00 (xfr#5, to-chk=45/3001)
karthick/Pictures/Selection_004.png
         77,965 100%  581.20kB/s    0:00:00 (xfr#6, to-chk=44/3001)
karthick/Pictures/Selection_005.png
         75,863 100%  532.99kB/s    0:00:00 (xfr#7, to-chk=43/3001)
karthick/Pictures/Selection_006.png
         11,628 100%   75.20kB/s    0:00:00 (xfr#8, to-chk=42/3001)
karthick/Pictures/Selection_007.png
         24,311 100%  150.26kB/s    0:00:00 (xfr#9, to-chk=41/3001)
karthick/Work/Backup/
karthick/Work/Backup/home_dir_backup.sh
            764 100%    4.34kB/s    0:00:00 (xfr#10, to-chk=20/3001)
karthick/Work/Backup/home_dir_backup.sh~
            796 100%    4.37kB/s    0:00:00 (xfr#11, to-chk=19/3001)
karthick/Work/Backup/ignore_list.txt
            182 100%    1.00kB/s    0:00:00 (xfr#12, to-chk=18/3001)
karthick/Work/Backup/ignore_list.txt~
            182 100%    1.00kB/s    0:00:00 (xfr#13, to-chk=17/3001)…
…
…
sent 3,029,863,865 bytes  received 51,335 bytes  53,626,817.70 bytes/sec
total size is 3,028,934,994  speedup is 1.00

2.4.2. Buat skrip cadangan

Mengingat perintah yang panjang mungkin sulit. Untuk menghindari mengetik rsync . yang panjang perintah di terminal, Anda dapat membuat skrip BASH sederhana dan memanggilnya kapan pun Anda ingin memulai pencadangan.

Buat skrip bernama home_dir_backup.sh :

$ nano home_dir_backup.sh

Tambahkan baris berikut:

#!/usr/bin/env bash

# PURPOSE : RSYNC COMMAND TO BACKUP MY HOME DIRECTORY TO EXTERNAL DEVICE..
# REPLACE SOURCE, DESTINATION AND EXCLUDE ACCORDING TO YOUR ENVIRONMENT.

rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/

Tambahkan, hapus, atau ubah opsi Rsync sesuai kebutuhan Anda. Juga ubah jalur sumber dan tujuan dengan jalur Anda sendiri. Simpan dan tutup file.

Jadikan skrip dapat dieksekusi:

$ chmod +x <path-to-home_dir_backup.sh>

Sekarang jalankan skrip kapan saja untuk memulai pencadangan direktori $HOME:

$ ./path-to-home_dir_backup.sh

Gunakan nama skrip yang lebih pendek agar mudah diingat.

Anda juga dapat membuat tautan lunak untuk file skrip di /usr/bin atau direktori khusus pengguna apa pun yang tersedia di $PATH variabel.

2.4.3. Buat alias

Cara lain untuk menghindari mengetikkan perintah yang panjang adalah dengan menggunakan alias .

Edit ~/.bashrc . Anda file dan tambahkan baris berikut di akhir:

alias backup="rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /
media/karthick/"My Passport"/"

Sumber bashrc file untuk segera menerapkan perubahan:

$ source ~/.bashrc

Sekarang cukup jalankan perintah berikut untuk membuat cadangan direktori $HOME:

$ backup

Terserah Anda untuk memutuskan apa yang ingin Anda gunakan. Anda dapat membuat alias atau membuat skrip dan menjalankan rsync dengan memicu skrip. Dalam kasus saya, saya telah membuat skrip dan kemudian membuat alias untuk skrip itu.

3. Jadwalkan pencadangan

Anda dapat menggunakan cron penjadwal untuk menjadwalkan tugas pencadangan agar berjalan pada waktu tertentu pada hari tertentu.

Edit tugas cron pengguna saat ini menggunakan perintah

$ crontab -e

Tentukan jadwal pencadangan Anda. Katakanlah misalnya, untuk menjalankan pencadangan setiap hari pada jam 3 pagi , gunakan baris berikut:

0 3 * * * <rsync-command-to-execute>

Tergantung pada kebutuhan Anda, Anda dapat menjadwalkan pekerjaan harian, mingguan atau bulanan.

Jika Anda baru mengenal Cron Jobs, kami telah menyusun daftar contoh tugas cron yang berguna untuk menjadwalkan tugas di Linux. Untuk detail lebih lanjut tentang penggunaan cron, lihat panduan berikut.

  • Panduan Pemula Untuk Cron Jobs

4. Antarmuka grafis Rsync

Jika Anda baru mengenal Linux, Anda mungkin kesulitan memahami semua opsi dan flag Rsync. Jangan khawatir! Ada beberapa alat antarmuka grafis untuk Rsync yang tersedia. Salah satu alat tersebut adalah Grsync .

Grsync adalah antarmuka pengguna grafis sederhana untuk Rsync. Anda tidak perlu mengingat perintah Rsync dan opsinya. Anda dapat melakukan semuanya melalui GUI yang mudah digunakan.

Untuk lebih jelasnya, lihat panduan berikut:

  • Grsync – Tampilan Grafis Sederhana Untuk Rsync

5. Kesimpulan

Dalam panduan ini, kami melihat cara membuat cadangan file dan direktori menggunakan Rsync di Linux. Seperti yang Anda lihat, menyalin file dan direktori dengan Rsync sangat mudah!

Kami juga telah menunjukkan kepada Anda cara membuat cadangan direktori home Anda menggunakan perintah rsync dan beberapa cara untuk menjalankan dan menjadwalkannya.

Metode ini juga dapat diterapkan ke direktori atau struktur file apa pun di Linux untuk membuat cadangan data. Jika menurut Anda Anda memiliki solusi pencadangan yang lebih baik, kami akan senang mendengarnya dari Anda melalui bagian komentar di bawah.

Bacaan terkait:

  • Lanjutkan File yang Ditransfer Sebagian Melalui SSH Menggunakan Rsync
  • Cara Mencadangkan Dan Mengembalikan File Menggunakan Deja Dup Di Linux
  • Cara Menyetel Server Cadangan Menggunakan Rsnapshot
  • Cara Menyinkronkan File Dengan Unison Di Linux
  • Cara Menyinkronkan Direktori Lokal Dan Jarak Jauh Di Linux
  • Cara Menyinkronkan File Dan Direktori Menggunakan Zaloha.sh
  • CYA – Snapshot Sistem Dan Utilitas Pemulihan Untuk Linux
  • Restic – Aplikasi Pencadangan yang Cepat, Aman, dan Efisien

Linux
  1. Cara Mengarsipkan File Dan Direktori Di Linux [Bagian 2]

  2. Cara Mengarsipkan File Dan Direktori Di Linux [Bagian 1]

  3. Cara Kompres dan Ekstrak File dan Direktori di Linux Menggunakan gzip dan bzip2

  1. Cara Menyalin File dan Direktori di Linux

  2. Cara Mencadangkan Seluruh Sistem Linux Anda Menggunakan Rsync

  3. Cara Menemukan dan Menghapus Direktori dan File Kosong di Linux

  1. Cara Menghapus Direktori dan File Menggunakan Linux

  2. Cara Menghapus File dan Direktori Menggunakan Baris Perintah Linux

  3. Cara Mengganti Nama File dan Direktori di Linux