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: