sync-rs
A simple tool for syncing local directories to remote servers using rsync and SSH.
Features
- Sync local directories to remote servers using rsync
- Support for multiple remote configurations per directory
- Automatic .gitignore filtering
- Post-sync command execution
- Interactive remote shell access
- Preferred remote selection for automatic use
- Cache-based configuration management
Installation
Usage
Basic usage:
Command Line Options
-o, --override-path: Additional paths to sync (can specify multiple)-c, --post-command: Post-sync command to execute-s, --shell: Open an interactive shell in the remote directory after syncing-n, --name: Name for this remote configuration (used when managing multiple remotes)-l, --list: List all remote configurations for the current directory-r, --remove: Remove a remote configuration by name-d, --delete-override: Enable delete mode for override paths (default: disabled)-P, --preferred: Set this remote as the preferred one for this directory
Examples
- Sync to a remote server:
- Sync with additional paths and post-sync command:
- Open an interactive shell after syncing:
- Create a named remote configuration:
- List all remote configurations:
- Remove a remote configuration:
- Set a remote as preferred:
Preferred Remotes
When you have multiple remote configurations for a directory, you can set one as preferred:
- Set a remote as preferred:
- List remotes to see which one is preferred:
When running sync without specifying a remote, it will automatically use the preferred remote if one exists. If no preferred remote is set, it will prompt you to select one.
Requirements
- Unix-like environment (Linux or macOS)
- rsync
- SSH
License
MIT