# Contoh penggunaan \`rsync\`

#### 1. Menyalin File dari Lokal ke Remote Server dengan SSH

**Deskripsi:** Menyalin file `source_file.txt` dari mesin lokal ke direktori `/home/remoteuser/destination/` di remote server melalui koneksi SSH.

```bash
rsync -avz -e "ssh -p 22" source_file.txt remoteuser@remote.example.com:/home/remoteuser/destination/
```

***

#### 2. Menyalin Folder Lokal ke Remote Server dengan SSH

**Deskripsi:** Menyalin seluruh isi folder `local_folder/` dari mesin lokal ke direktori `/home/remoteuser/destination/` di remote server melalui koneksi SSH.

```bash
rsync -avz -e "ssh -p 22" local_folder/ remoteuser@remote.example.com:/home/remoteuser/destination/
```

***

#### 3. Menyalin File dari Remote Server ke Lokal dengan SSH

**Deskripsi:** Menyalin file `remote_file.txt` dari direktori `/home/remoteuser/source/` di remote server ke direktori lokal `/path/to/local/destination/` melalui koneksi SSH.

```bash
rsync -avz -e "ssh -p 22" remoteuser@remote.example.com:/home/remoteuser/source/remote_file.txt /path/to/local/destination/
```

***

#### 4. Menyalin File melalui RSH

**Deskripsi:** Menyalin file `source_file.txt` dari mesin lokal ke direktori `/home/remoteuser/destination/` di remote server melalui RSH (Remote Shell).

```bash
rsync -avz --rsh=rsh source_file.txt remoteuser@remote.example.com:/home/remoteuser/destination/
```

***

#### 5. Menyalin File dengan Filter Kustom

**Deskripsi:** Menyalin file-file yang memiliki ekstensi `.jpg` dari `source_folder/` ke `destination_folder/`.

```bash
rsync -avz --include="*.jpg" --exclude="*" source_folder/ destination_folder/
```

***

#### 6. Menyalin dengan Opsi Dry Run

**Deskripsi:** Melakukan simulasi tanpa benar-benar menyalin file, hanya menampilkan apa yang akan terjadi.

```bash
rsync -avz --dry-run source_folder/ destination_folder/
```

***

#### 7. Menyalin dengan Hapus File di Tujuan

**Deskripsi:** Menyalin seluruh isi folder `local_folder/` dari mesin lokal ke `remote_folder/` di remote server, dan menghapus file di tujuan yang tidak ada di sumber.

```bash
rsync -avz --delete local_folder/ remote_folder/
```

***

#### 8. Menyalin dengan Exclude dari File

**Deskripsi:** Menyalin file-file dari `source_folder/` ke `destination_folder/`, tetapi mengabaikan file yang ada dalam `exclude_list.txt`.

```bash
rsync -avz --exclude-from="exclude_list.txt" source_folder/ destination_folder/
```

***

#### 9. Menyalin dengan Opsi Compression

**Deskripsi:** Menyalin file `source_file.txt` dari mesin lokal ke direktori `/home/remoteuser/destination/` di remote server dengan kompresi selama transfer.

```bash
rsync -avz -e "ssh -p 22" --compress source_file.txt remoteuser@remote.example.com:/home/remoteuser/destination/
```

***

#### 10. Menyalin dengan SSH dan Ekspresi Reguler

**Deskripsi:** Menyalin file-file yang memiliki ekstensi `.txt` dari `source_folder/` ke `destination_folder/` di remote server dengan koneksi SSH.

```bash
rsync -avz -e "ssh -p 22" source_folder/ remoteuser@remote.example.com:/home/remoteuser/destination/ --include="*.txt" --exclude="*"
```

***
