GNU/Linux >> Belajar Linux >  >> Linux

Cara Menggunakan rsync untuk Mengecualikan File dan Direktori dalam Transfer Data

Pendahuluan

Rsync adalah alat baris perintah Linux yang berguna yang menyinkronkan dan menyalin file dan direktori. Anda dapat menggunakan alat ini untuk menyinkronkan data secara lokal antara direktori dan drive, atau antara dua mesin jarak jauh.

Perintah rsync dasar di Linux menyinkronkan semuanya dari lokasi yang Anda tentukan. Dalam banyak skenario pencadangan, Anda mungkin ingin mengecualikan file, direktori, atau jenis file tertentu.

Ikuti contoh dalam panduan ini untuk mempelajari cara mengecualikan file atau direktori dengan rsync. Kami akan mencantumkan kasus penggunaan pengecualian yang paling umum untuk mencakup penggunaan rsync Anda sehari-hari.

Prasyarat

  • Pengguna dengan sudo atau root hak istimewa
  • Akses ke baris perintah/jendela terminal
  • Rsync terinstal di sistem Anda

Cara Kerja Opsi Pengecualian rsync

--exclude opsi dengan rsync perintah menggunakan jalur relatif ke direktori sumber. Tambahkan --exclude opsi ke rsync perintah, diikuti dengan jalur relatif ke direktori atau file.

Sintaks dasar untuk opsi pengecualian rsync terlihat seperti ini:

rsync [OPTIONS] --exclude 'file_or_directory' source/ destination/

Ganti sumber/ dengan nama direktori yang ingin Anda gunakan sebagai sumber transfer data ke lokasi lain.

Ganti tujuan/ dengan nama direktori rsync akan digunakan sebagai lokasi target untuk data Anda. Jika direktori tidak ada, rsync membuatnya untuk Anda dan mentransfer file ke direktori itu.

Untuk mencadangkan file ke lokasi yang jauh, ikuti panduan kami yang lain untuk mempelajari cara menyalin atau mentransfer file dengan rsync melalui SSH.

Kecualikan File Tertentu

Dalam contoh pengecualian rsync di bawah ini, kita akan menggunakan -a (arsip ) dan -v (verbose ) opsi (-av ). -a opsi menyinkronkan direktori secara rekursif sambil menjaga izin, tautan simbolis, kepemilikan, dan pengaturan grup. -v flag adalah opsional dan mencetak kemajuan dan status dari perintah rsync.

Untuk mengecualikan file saat mentransfer konten folder dengan rsync, tentukan file dan jalur relatifnya.

Misalnya:

rsync -av --exclude 'testfile1.txt' sourcedir/ destinationdir/

Perintah ini memungkinkan Anda untuk menyalin file ke destinationdir dari sourcedir tapi kecualikan testfile1.txt.

Seperti yang Anda lihat di output, testfile1.txt tidak ada dalam daftar.

Untuk melakukannya, jalankan perintah ini:

sudo rm -rf destinationdir

Kecualikan Direktori Tertentu

Sekarang setelah Anda mengetahui cara menggunakan rsync --exclude file perintah, gunakan alat dengan cara yang sama untuk mengecualikan direktori.

Tentukan direktori yang ingin Anda kecualikan (bukan nama file):

rsync -av --exclude 'dir1' sourcedir/ destinationdir/

Perintah ini menyalin konten sourcedir ke destinationdir dan mengecualikan dir1 , seperti yang terlihat pada output.

Kecualikan File atau Direktori Berdasarkan Pola

Gunakan tanda bintang * (wildcard) saat menentukan nama file atau direktori untuk mengecualikan semua yang cocok dengan pola.

Untuk mengecualikan file yang diawali dengan tes , jalankan perintah ini:

rsync -av --exclude 'test*' sourcedir/ destinationdir/

Setiap file dan direktori yang cocok dengan pola ini akan dikeluarkan dari transfer.

Anda juga dapat menggunakan karakter pengganti dalam hal serupa untuk mengecualikan semua direktori yang diakhiri dengan pola tertentu .

Jalankan perintah ini untuk mengecualikan semua direktori yang diakhiri dengan angka 3:

rsync -av --exclude '*3' sourcedir/ destinationdir/

Anda dapat menggunakan tanda bintang sebelum dan sesudah pola untuk menyempurnakan --exclude tambahan kriteria.

Kecualikan Jenis File Tertentu

Alat rsync memungkinkan Anda untuk mengecualikan jenis file tertentu saat menyinkronkan data. Gunakan tanda bintang * diikuti dengan ekstensi jenis file yang ingin Anda kecualikan.

Misalnya, Anda mungkin ingin mencadangkan direktori yang berisi banyak .iso file yang tidak perlu Anda cadangkan.

Untuk mengecualikan jenis file tertentu, dalam hal ini .iso , jalankan perintah ini:

rsync -av --exclude '*.iso' sourcedir/ destinationdir/

Keluaran menunjukkan bahwa rsync tidak mentransfer .iso file. Kami menambahkan konten direktori sumber pada gambar untuk perbandingan.

Kecualikan File menurut Ukuran

Selama transfer file, Anda dapat menentukan ukuran minimum atau maksimum file yang ingin Anda kecualikan. Jika direktori sumber Anda berisi banyak file besar yang tidak ingin Anda cadangkan, gunakan --max-size=size_in_mb_or_gb pilihan. Ganti size_in_mb_or_gb dengan ukuran yang diinginkan.

Misalnya, untuk mengecualikan semua file yang lebih besar dari 500MB, jalankan perintah ini:

rsync -av --max-size=500m sourcedir/ destinationdir/

Di sisi lain, untuk mengecualikan file yang lebih kecil dari ukuran tertentu , gunakan --min-size=size_in_mb_or_gb pilihan.

Misalnya, Anda ingin mentransfer direktori dengan gambar, tetapi ada banyak file thumbnail. Jika semua gambar Anda lebih besar dari 1 MB, Anda dapat mengecualikan semua file yang lebih kecil dari ukuran tersebut.

Untuk melakukannya, jalankan perintah ini:

rsync -av --min-size=1m sourcedir/ destinationdir/

Jangan gunakan the --exclude opsi rsync dengan saat menentukan ukuran file minimum atau maksimum.

Kecualikan Beberapa File atau Direktori

Tambahkan beberapa --exclude pilihan untuk mengecualikan beberapa file atau direktori. Anda dapat menggabungkan rsync --exclude folder dan rsync --exclude file perintah untuk mentransfer hanya data yang Anda butuhkan. Semua perintah yang kita bicarakan sebelumnya dapat digunakan dalam satu baris.

Perintah berikut akan mengecualikan semua file dengan .txt ekstensi, serta dir3 dan dir4 direktori:

rsync -av --exclude '*.txt' --exclude 'dir3' --exclude 'dir4' sourcedir/ destinationdir/

Anda dapat menambahkan sebanyak --exclude entri yang Anda butuhkan. Untuk menjaga agar perintah tetap rapi, Anda dapat menentukan file dan direktori di --exclude pilihan menggunakan kurung kurawal. Pisahkan pola menggunakan koma.

Misalnya, kita dapat mempersingkat perintah di atas dengan cara ini:

rsync -av --exclude={'*.txt','dir3','dir4'} sourcedir/ destinationdir/

Outputnya menunjukkan bahwa file dan direktori yang terdaftar dikecualikan dari transfer.

Kecualikan File dan Direktori dari Daftar

Saat Anda perlu mengecualikan sejumlah besar file dan direktori yang berbeda, Anda dapat menggunakan rsync --exclude-from bendera. Untuk melakukannya, buat file teks dengan nama file dan direktori yang ingin Anda kecualikan. Kemudian, berikan nama file ke --exlude-from pilihan.

Perintahnya terlihat seperti ini:

rsync -av --exclude-from={'list.txt'} sourcedir/ destinationdir/

Alat rsync melewatkan semua file dan direktori yang Anda daftarkan dalam file. Anda dapat menambahkan pola apa pun yang kami gunakan dalam panduan ini.

File contoh yang kami gunakan dalam perintah di atas berisi pola berikut:


Linux
  1. Cara Mentransfer File Antara Dua Komputer menggunakan Perintah nc dan pv

  2. Cara Mentransfer File di Linux dengan SCP dan Rsync

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

  1. Cara Menggunakan Netcat untuk Mentransfer File di Linux

  2. Cara menggunakan FTP di Linux untuk mentransfer file

  3. Bagaimana saya bisa mengecualikan file secara default dengan rsync?

  1. Cara Menyalin File dan Direktori di Linux

  2. Cara Menggunakan rsync untuk Mencadangkan Data

  3. Cara Menggunakan Perintah SFTP untuk Mentransfer File