GNU/Linux >> Belajar Linux >  >> Linux

6 Contoh rsync untuk Mengecualikan Banyak File dan Direktori menggunakan pengecualian-dari

Rsync adalah alat yang sangat kuat untuk mengambil cadangan, atau menyinkronkan file dan direktori antara dua lokasi (atau server) yang berbeda.

Anda sudah mengetahuinya, karena kami telah memberikan contoh praktis tentang rsync kepada Anda sebelumnya.

Dalam situasi pencadangan biasa, Anda mungkin ingin mengecualikan satu atau lebih file (atau direktori) dari cadangan. Anda mungkin juga ingin mengecualikan jenis file tertentu dari rsync.

Artikel ini menjelaskan cara mengabaikan banyak file dan/atau direktori selama rsync dengan contoh.

Pertama, buat contoh struktur direktori seperti yang ditunjukkan di bawah ini (dengan beberapa file kosong) yang dapat digunakan untuk tujuan pengujian.

$ cd ~
$ mkdir -p source/dir1/dir2
$ mkdir -p source/dir3
$ touch source/file1.txt
$ touch source/file2.txt
$ touch source/dir1/dir2/file3.txt
$ touch source/dir3/file4.txt

Perintah di atas akan membuat direktori sumber (di bawah direktori home Anda) dengan struktur berikut.

source
- file1.txt
- file2.txt
- dir1
  - dir2
    - file3.txt
- dir3
  - file4.txt

1. Kecualikan direktori tertentu

Jika Anda tidak ingin menyinkronkan dir1 (termasuk semua subdirektorinya) dari sumber ke folder tujuan, gunakan opsi rsync –exclude seperti yang ditunjukkan di bawah ini.

$ rm -rf destination

$ rsync -avz --exclude 'dir1' source/ destination/
building file list ... done
created directory dest
./
file1.txt
file2.txt
dir3/
dir3/file4.txt

Verifikasi untuk memastikan dir1 tidak disalin dari direktori sumber ke direktori tujuan.

$ find destination
destination
destination/file2.txt
destination/file1.txt
destination/dir3
destination/dir3/file4.txt

2. Kecualikan beberapa direktori yang cocok dengan suatu pola

Contoh berikut akan mengecualikan direktori (atau subdirektori) apa pun di bawah source/ yang cocok dengan pola “dir*”

$ rm -rf destination

$ rsync -avz --exclude 'dir*' source/ destination/
building file list ... done
created directory destination
./
file1.txt
file2.txt

Verifikasi direktori tujuan untuk memastikan tidak menyalin direktori yang memiliki kata kunci “dir” di dalamnya.

$ find destination
destination
destination/file2.txt
destination/file1.txt

3. Kecualikan file tertentu

Untuk mengecualikan file tertentu, gunakan jalur relatif file dalam opsi kecualikan seperti yang ditunjukkan di bawah ini.

$ rm -rf destination

$ rsync -avz --exclude 'dir1/dir2/file3.txt' source/ destination/
building file list ... done
created directory destination
./
file1.txt
file2.txt
dir1/
dir1/dir2/
dir3/
dir3/file4.txt

Verifikasi direktori tujuan untuk memastikan tidak menyalin file tertentu ( dir1/dir2/file3.txt dalam contoh ini).

$ find destination
destination
destination/file2.txt
destination/file1.txt
destination/dir1
destination/dir1/dir2
destination/dir3
destination/dir3/file4.txt

4. Kecualikan jalur selalu relatif

Jika Anda tidak hati-hati, Anda mungkin melakukan kesalahan ini.

Dalam contoh berikut, opsi pengecualian tampaknya memiliki jalur lengkap (yaitu /dir1/dir2/file3.txt). Tapi, dari sudut pandang rsync, mengecualikan path selalu relatif, dan akan diperlakukan sebagai dir1/dir2/file3.txt. Pada contoh di bawah, rsync akan mencari dir1 di bawah direktori sumber (dan bukan di bawah / direktori root).

$ rsync -avz --exclude '/dir1/dir2/file3.txt' source/ destination/

Jadi, perintah di atas persis sama dengan yang berikut ini. Untuk menghindari kebingungan (dan agar mudah dibaca), jangan beri / di depan jalur pengecualian.

$ rsync -avz --exclude 'dir1/dir2/file3.txt' source/ destination/

5. Kecualikan jenis file tertentu

Untuk mengecualikan jenis file tertentu yang memiliki ekstensi tertentu, gunakan pola yang sesuai. Misalnya, untuk mengecualikan semua file yang berisi .txt sebagai ekstensi, lakukan hal berikut.

$ rsync -avz --exclude '*.txt' source/ destination/
building file list ... done
created directory destination
./
dir1/
dir1/dir2/
dir3/

Verifikasi direktori tujuan untuk memastikan tidak menyalin file *.txt.

$ find destination
destination
destination/dir1
destination/dir1/dir2
destination/dir3

Catatan: Hal di atas sangat membantu, ketika Anda ingin membuat cadangan direktori home Anda, tetapi mengecualikan semua file gambar dan video besar yang memiliki ekstensi file tertentu.

6. Kecualikan beberapa file dan direktori secara bersamaan

Saat Anda ingin mengecualikan beberapa file dan direktori, Anda selalu dapat menentukan beberapa opsi pengecualian rsync di baris perintah seperti yang ditunjukkan di bawah ini.

$ rsync -avz --exclude file1.txt --exclude dir3/file4.txt source/ destination/

Tunggu. Bagaimana jika saya memiliki banyak file yang ingin saya kecualikan dari rsync?

Saya tidak dapat terus menambahkannya di baris perintah menggunakan multiple –exclude, yang sulit dibaca, dan sulit untuk menggunakan kembali perintah rsync untuk nanti.

Jadi, cara yang lebih baik adalah dengan menggunakan opsi rsync –exclude-from seperti yang ditunjukkan di bawah ini, di mana Anda dapat membuat daftar semua file (dan direktori) yang ingin Anda kecualikan dalam sebuah file.

Pertama, buat file teks dengan daftar semua file dan direktori yang tidak ingin Anda cadangkan. Ini adalah daftar file dan direktori yang ingin Anda kecualikan dari rsync.

$ vim exclude-list.txt
file1.txt
dir3/file4.txt

Selanjutnya, jalankan rsync menggunakan opsi –exclude-from dengan exception-list.txt seperti yang ditunjukkan di bawah ini.

$ rm -rf destination

$ rsync -avz --exclude-from 'exclude-list.txt' source/ destination/
building file list ... done
created directory destination
./
file2.txt
dir1/
dir1/dir2/
dir1/dir2/file3.txt
dir3/

Verifikasi direktori tujuan untuk memastikan file dan direktori yang tercantum dalam file exception-list.txt tidak dicadangkan.

$ find destination
destination
destination/file2.txt
destination/dir1
destination/dir1/dir2
destination/dir1/dir2/file3.txt
destination/dir3

Linux
  1. Cara Mengenkripsi dan Mendekripsi File dan Direktori Menggunakan Tar dan OpenSSL

  2. CloudCross – Menyinkronkan File dan Direktori dengan Beberapa Penyimpanan Cloud

  3. Menggunakan rsync untuk Menyinkronkan File

  1. Cara Zip File dan Direktori di Linux (dengan Contoh)

  2. Cara Mengirim dan Mengunduh File Menggunakan Rsync

  3. Linux Hapus File dan Direktori

  1. Bagaimana Cara Menyalin File di Linux dan Unix? Contoh Perintah 10 cp

  2. Cara menyalin direktori secara rekursif menggunakan rsync sambil mengecualikan file tertentu

  3. Menggunakan Rsync sertakan dan kecualikan opsi untuk menyertakan direktori dan file berdasarkan pola