Rsync adalah utilitas baris perintah yang cepat dan serbaguna yang menyinkronkan file dan folder antara dua lokasi melalui shell jarak jauh.
Dengan Rsync Anda dapat mencerminkan data, membuat cadangan tambahan, dan menyalin file antar sistem. Saat menyalin data, Anda mungkin ingin mengecualikan satu atau beberapa file atau direktori berdasarkan nama atau lokasinya.
Dalam tutorial ini, kami akan menunjukkan cara mengecualikan file dan direktori dengan rsync.
Sebelum Anda Mulai #
Anda harus memiliki pengetahuan dasar tentang cara kerja rsync.
Pada contoh di bawah ini, kita akan menggunakan rsync dengan -a
, pilihan. Ini memberitahu rsync untuk menyinkronkan direktori secara rekursif, mentransfer perangkat khusus dan memblokir serta mempertahankan tautan simbolis, waktu modifikasi, grup, kepemilikan, dan izin.
Saat mengecualikan file atau direktori, Anda perlu menggunakan jalur relatifnya ke direktori sumber.
Ada dua opsi untuk menentukan file dan direktori yang ingin Anda kecualikan:
- Dari baris perintah , menggunakan
--exclude
pilihan. - Dari file , menggunakan
--exclude-from
pilihan.
Kecualikan File Tertentu #
Untuk mengecualikan file tertentu, teruskan jalur relatif ke file ke --exclude
pilihan.
Pada contoh berikut file src_directory/file.txt
tidak akan ditransfer:
rsync -a --exclude 'file.txt' src_directory/ dst_directory/
Kecualikan Direktori Tertentu #
Mengecualikan direktori tertentu sama dengan mengecualikan file, cukup berikan jalur relatif ke direktori ke --exclude
pilihan seperti yang ditunjukkan di bawah ini:
rsync -a --exclude 'dir1' src_directory/ dst_directory/
Jika Anda ingin mengecualikan konten direktori tetapi bukan direktori itu sendiri, gunakan dir1/*
bukannya dir1
:
rsync -a --exclude 'dir1/*' src_directory/ dst_directory/
Kecualikan Beberapa File atau Direktori #
Untuk mengecualikan beberapa file atau direktori cukup tentukan beberapa --exclude
pilihan:
rsync -a --exclude 'file1.txt' --exclude 'dir1/*' --exclude 'dir2' src_directory/ dst_directory/
Jika Anda lebih suka menggunakan satu --exclude
opsi Anda bisa membuat daftar file dan direktori yang ingin Anda kecualikan dalam kurung kurawal {}
dipisahkan dengan koma seperti yang ditunjukkan di bawah ini:
rsync -a --exclude={'file1.txt','dir1/*','dir2'} src_directory/ dst_directory/
Jika jumlah file dan/atau direktori yang ingin Anda kecualikan besar, daripada menggunakan beberapa --exclude
opsi Anda dapat menentukan file dan direktori yang ingin Anda kecualikan dalam file dan meneruskan file ke --exclude-from
pilihan.
Perintah di bawah ini persis sama dengan perintah di atas:
rsync -a --exclude-from='exclude-file.txt' src_directory/ dst_directory/
kecualikan-file.txtfile1.txt
dir1/*
dir2
Kecualikan Beberapa File atau Direktori Berdasarkan Pola #
Dengan rsync Anda juga dapat mengecualikan file dan direktori berdasarkan pola yang cocok dengan nama file atau direktori.
Misalnya, untuk mengecualikan semua .jpg
file yang akan Anda jalankan:
rsync -a --exclude '*.jpg*' src_directory/ dst_directory/
Sedikit lebih sulit untuk mengecualikan semua file dan direktori lain kecuali yang cocok dengan pola tertentu. Katakanlah Anda ingin mengecualikan semua file dan direktori lain kecuali file yang diakhiri dengan .jpg
.
Salah satu opsi adalah menggunakan perintah berikut:
rsync -a -m --include='*.jpg' --include='*/' --exclude='*' src_directory/ dst_directory/
Saat menggunakan beberapa opsi sertakan/kecualikan, aturan pencocokan pertama yang berlaku.
--include='*.jpg'
- Pertama kami menyertakan semua.jpg
file.--include='*/'
- Kemudian kami memasukkan semua direktori di dalamsrc_directory
direktori. Tanpa rsync ini hanya akan menyalin*.jpg
file di direktori tingkat atas.-m
- Menghapus direktori kosong.
Pilihan lain adalah menyalurkan output dari find
perintah untuk rsync:
find src_directory/ -name "*.jpg" -printf %P\\0\\n | rsync -a --files-from=- src_directory/ dst_directory/
-printf %P\\0\\n
- akan menghapussrc_directory/
dari jalur file.--files-from=-
- berarti hanya menyertakan file dari input standar (file yang diteruskan dari perintah find).
Kesimpulan #
Dalam tutorial ini, Anda mempelajari cara mengecualikan file dan direktori saat mentransfer data dengan Rsync. Masih banyak lagi yang bisa dipelajari tentang Rsync di Rsync User's Manualpage.