289769a601
Automatic Documentation Deployment / Sync Docs to https://kb.bunny-lab.io (push) Successful in 8s
102 lines
4.7 KiB
Markdown
102 lines
4.7 KiB
Markdown
---
|
|
tags:
|
|
- Rclone
|
|
- PowerShell
|
|
- Synchronization
|
|
- Google Drive
|
|
---
|
|
|
|
## Purpose
|
|
This document explains the practical differences between the rclone `copy`, `sync`, `check`, and `bisync` commands and links to the separate workflow for configuring and recovering a bidirectional synchronization pair. The examples use PowerShell and assume that one side of the synchronization is a Google Drive remote.
|
|
|
|
Rclone is a command-line file-management program that supports cloud storage providers, object-storage platforms, local filesystems, and standard transfer protocols.
|
|
|
|
[Download rClone](https://rclone.org/downloads)
|
|
|
|
[Official rClone Documentation](https://rclone.org/docs/)
|
|
|
|
!!! info "Version Context"
|
|
This document was reviewed against rclone `v1.75.0`. Older releases may not support every bisync flag documented here, and future versions may change some recovery behavior.
|
|
|
|
!!! danger "Rclone Can Delete or Overwrite Data"
|
|
The `sync` and `bisync` commands can delete, replace, rename, or propagate the deletion of files. Always confirm the source and destination paths, maintain a separate backup or snapshot, and preview unfamiliar operations with `--dry-run` before allowing them to modify data.
|
|
|
|
A dry run is a preview and is not a replacement for a backup.
|
|
|
|
## Prepare the Command
|
|
Set the executable path in the PowerShell session before using the command examples. Replace the example path with the location of `rclone.exe` on the target machine.
|
|
|
|
```powershell
|
|
$Rclone = "C:\Path\To\rclone.exe"
|
|
```
|
|
|
|
## Command Behavior
|
|
The correct command depends on the intended relationship between the source and destination.
|
|
|
|
| **Command** | **Primary Behavior** | **Deletes Destination-Only Files** | **Direction** |
|
|
| :--- | :--- | :--- | :--- |
|
|
| `copy` | Adds or updates source files at the destination while retaining unrelated destination files | No | One-way |
|
|
| `sync` | Makes the destination match the source | Yes | One-way |
|
|
| `check` | Compares files without modifying either side | No | Read-only |
|
|
| `bisync` | Detects and propagates changes made on either side by comparing the current state against prior listings | Yes | Two-way |
|
|
|
|
### Use `copy` for Additive Transfers
|
|
Use `copy` when you need to add or update files without deleting files that already exist only at the destination.
|
|
|
|
```powershell
|
|
& $Rclone copy "Source" "Destination" --update --dry-run --verbose
|
|
```
|
|
|
|
The `--update` flag skips a source file when the corresponding destination file has a newer modification time. It does not create version history, and it does not prevent an older destination file from being replaced by a newer source file.
|
|
|
|
After reviewing the dry-run output, repeat the operation without `--dry-run`:
|
|
|
|
```powershell
|
|
& $Rclone copy "Source" "Destination" --update --verbose
|
|
```
|
|
|
|
### Use `sync` Only for Intentional Mirroring
|
|
Use `sync` when the destination must become a one-way mirror of the source.
|
|
|
|
!!! danger "`sync` Deletes Destination-Only Files"
|
|
The `sync` command removes files from the destination when they do not exist in the source. This is true even when `--update` is present.
|
|
|
|
The `--update` flag only prevents a newer destination file from being replaced by an older source file. It does not convert `sync` into an additive operation and does not protect destination-only files from deletion.
|
|
|
|
Preview the operation first:
|
|
|
|
```powershell
|
|
& $Rclone sync "Source" "Destination" --dry-run --verbose
|
|
```
|
|
|
|
Only remove `--dry-run` after confirming that every proposed copy, replacement, and deletion is intentional:
|
|
|
|
```powershell
|
|
& $Rclone sync "Source" "Destination" --verbose
|
|
```
|
|
|
|
### Use `check` for Read-Only Comparison
|
|
The `check` command compares files on both sides without copying, replacing, or deleting them.
|
|
|
|
```powershell
|
|
& $Rclone check "Source" "Destination" --combined "rclone-comparison.txt" --log-level INFO --log-file "rclone-check.log"
|
|
```
|
|
|
|
The combined report uses the following symbols:
|
|
|
|
| **Symbol** | **Meaning** |
|
|
| :--- | :--- |
|
|
| `=` | The file exists on both sides and matches |
|
|
| `+` | The file exists only in the source |
|
|
| `-` | The file exists only in the destination |
|
|
| `*` | The same path exists on both sides, but the files differ |
|
|
| `!` | The file could not be read or compared |
|
|
|
|
The `check` command compares files but does not report missing empty directories.
|
|
|
|
## Configure Two-Way Synchronization
|
|
Use [Configure and Recover Rclone Bisync](<../../../workflows/Applications/Files and Collaboration/Configure and Recover Rclone Bisync.md>) for initialization, normal runs, state handling, and recovery.
|
|
|
|
## Related Documentation
|
|
- [Related Files and Collaboration Documentation](<index.md>) — Find the connected deployments, procedures, and references for this subject.
|