| Crates.io | rmote |
| lib.rs | rmote |
| version | 0.1.0 |
| created_at | 2025-08-01 17:29:15.98258+00 |
| updated_at | 2025-08-01 17:29:15.98258+00 |
| description | Simple, fast SFTP directory mirror: local → remote |
| homepage | https://github.com/Sheol27/rmote |
| repository | https://github.com/Sheol27/rmote |
| max_upload_size | |
| id | 1777165 |
| size | 38,735 |
Simple, fast SFTP directory mirror: local → remote
rmote watches a local directory and mirrors all file and directory changes over SFTP to a remote host. It supports initial full sync, real-time file watching, intelligent event coalescing, and a customizable blacklist of paths to ignore.
Install with cargo:
Compile from source with Cargo:
cargo install rmote
git clone https://github.com/yourusername/rmote.git
cd rmote
cargo build --release
Optionally install to your PATH:
cargo install --path .
Run rmote from the root of your local directory to start mirroring:
rmote --host example.com --user deploy --remote-dir /var/www/my-site
Use --blacklist (or -x) to ignore specific files or directories by exact name or prefix. Paths matching any entry are skipped during sync and watching.
# Ignore files named "secret.json" or the entire "logs" directory
rmote -x secret.json -x logs
--debounce-s sets the coalescing window (in seconds) for filesystem events. Higher values group more rapid changes into a single sync operation.
# Wait 3 seconds after the last event before syncing
rmote --debounce-s 3
Default mirror with initial sync:
rmote --host example.com --user deploy --remote-dir /srv/app
Disable initial full sync:
rmote --host example.com --user deploy --no-initial-sync
Ignore .git and node_modules:
rmote -x .git -x node_modules
Increase debounce to 5 seconds:
rmote --debounce-s 5
Contributions, issues, and feature requests are welcome! Please open an issue or submit a pull request on GitHub.
This project is licensed under the MIT License. See LICENSE for details.