# server-toolset ## many-rsync rsync a set of folders to the remote in parallel. ### how to use it Install to ~/.local/bin: ```sh uv tool install . ``` After code changes, reinstall: ```sh uv tool install --force . ``` ### config use TOML (preferred) or JSON. ```toml # parallel rsync configuration # remote_folder: full rsync-compatible remote path # don't forget the trailing slash! # /Users/foo/target/ # foo@bar:/home/foo/target/ remote_folder = "" # local_folders: bare folder names (resolved relative to $HOME) local_folders = ["a"] # n: max parallel rsync processes (default: 2) n = 2 # log_level: pick from DEBUG | INFO | WARNING | ERROR | CRITICAL log_level = "INFO" # use to pass arguments to the rsync binary running locally # see rsync help/manpage for details [rsync_parameters] # --rsync-path rsync_path = "/usr/bin/rsync" # --exclude-from exclude_from = ".rsync-exclude.txt" ``` - `remote_folder`: rsync-compatible full path to the target folder in remote. "remote" here means that it's the target of the operation, and could still reside on the local system. - **do not forget to use the trailing slash!** - `local_folders`: each folder to be copied over - `n`: how many parallel rsync routines to be spawned - `log_level`: self explanatory - `rsync_parameters`: exposes local rsync binary's options - `rsync_path`: specify the rsync to run on remote machine - `exclude_from`: read exclude patterns from FILE