Restructured Documentation
Automatic Documentation Deployment / Sync Docs to https://kb.bunny-lab.io (push) Successful in 8s
Automatic Documentation Deployment / Sync Docs to https://kb.bunny-lab.io (push) Successful in 8s
This commit is contained in:
@@ -0,0 +1,101 @@
|
||||
---
|
||||
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.
|
||||
Reference in New Issue
Block a user