synchronise local and remote
openrsync utility synchronises files
in the destination directory with one or more
source files. Either the source
or the destination directory may be remote, but not
both. The arguments are as follows:
- Shorthand for
- When connecting to an rsync daemon, use sourceaddr as the source address for connections, which is useful on machines with multiple interfaces.
- Use directory as an alternate base directory to compare files against on
the destination machine. If file in directory is
found and identical to the sender's file, the file will not be
--compare-destdirectories may be provided. If directory is a relative path, it is relative to the destination directory.
- Set the connection timeout in seconds. Exit if no connection established within the specified time. The default is 0, which means no timeout.
- Also transfer device and special files. Shorthand for
- Delete files in directory not found in
source directories. Only applicable with
- Exclude files matching pattern.
- Load patterns and rules from file.
- Include files matching pattern.
- Load patterns and rules from file.
- Also transfer device files.
- Specify alternative communication program, defaults to ssh(1).
- Set the group name to match the source. For example, group
"kristaps" with ID 1000 on a remote server is matched to group
"kristaps" on the local machine with ID 2000. If
--numeric-idsis also given or if the remote group name is unknown on the local machine, set the numeric group ID to match the source instead.
- Also transfer symbolic links. The link is transferred as a standalone file: if the destination does not exist, it will be broken.
- Don't transfer any file that is larger than size bytes. Alternatively size may instead use a multiplier, as documented in scan_scaled(3), to specify the size.
- Don't transfer any file that is smaller than size
--max-sizeon the definition of size.
- Do not actually modify the destination. Mainly useful in combination with
- Do not display the Message of the Day.
- Ignore user and group names, use numeric user and group IDs only. Has no
-ois also given.
- Set the user name to match the source, with similar matching logic as for
--numeric-idsis also given or if the remote user name is unknown on the local machine, set the numeric user ID to match the source instead. Only works if run as root.
- Set destination file or directory permissions to match the source when it is updated.
- Specify an alternative TCP port number. The service can be given as a decimal integer or as a name to be looked up in the services(5) database. The default is “rsync”.
- If source designates a directory, synchronise the directory and the entire subtree connected at that point. If source ends with a slash, only the subtree is synchronised, not the source directory itself. If source is a file, this has no effect.
- Run program on the remote host instead of the default rsync.
- Also transfer fifo and unix domain socket files.
- Set the I/O timeout in seconds. Exit if no data was transferred for the specified time. The default is 0, which means no timeout.
- Set destination file and directory modification time to match the source when it is updated or created.
- Increase verbosity. Specify once for files being transferred, twice for specific status, thrice for per-file transfer information, and four times for per-file breakdowns.
- Do not cross filesystem boundaries. If this option is repeated, all mount point directories from the copy are omitted. Otherwise, it includes an empty directory at each mount point it encounters.
- Print version and exit.
A remote source or
directory has the syntax
host:path for connecting via
or host::path for connecting to
a remote daemon. Subsequent to the first remote
source, the host may be dropped to become just
:path or ::path.
For connecting to a remote daemon with
host::path, the first path
component is interpreted as a "module":
This only applies to the first source invocation;
subsequent to that, the module should not be specified.
By default, new destination files and directories are given the current time and the source file permissions. Updated files retain their existing permissions. It is an error if updated files have their file types change (e.g., updating a directory with a file).
At this time, source may only consist of
regular files, directories (only with
symbolic links (only with
-l). The destination
directory must be a directory and is created if not
openrsync utility exits 0 on success,
1 if an error occurs, or 2 if the remote protocol version is older than the
local protocol version.
All examples use
-t so that destination
files inherit the source time. If not changed, subsequent invocations of
openrsync will then consider the file up to date and
not transfer block hashes.
To update the out-of-date remote files host:dest/bar and host:dest/baz with the local ../src/bar and ../src/baz:
% rsync -t ../src/bar ../src/baz host:dest
To update the out-of-date local files bar and baz with the remote files host:src/bar and host:src/baz:
% rsync -t host:src/bar :src/baz .
To update the out-of-date local files ../dest/bar and ../dest/baz with bar and baz:
% rsync -t bar baz ../dest
openrsync is compatible with rsync
protocol version 27 as supported by the samba.org implementation of
openrsync utility has been available
since OpenBSD 6.5.
openrsync utility was written by