Unsnarl missing_below/dry_run logic.
[rsync/rsync.git] / rsyncsh.txt
CommitLineData
c3469aed
MP
1rsyncsh
2Copyright (C) 2001 by Martin Pool
3
4This is a quick hack to build an interactive shell around rsync, the
5same way we have the ftp, lftp and ncftp programs for the FTP
6protocol. The key application for this is connecting to a public
7rsync server, such as rsync.kernel.org, change down through and list
8directories, and finally pull down the file you want.
9
10rsync is somewhat ill-at-ease as an interactive operation, since every
11network connection is used to carry out exactly one operation. rsync
12kind of "forks across the network" passing the options and filenames
13to operate upon, and the connection is closed when the transfer is
14complete. (This might be fixed in the future, either by adapting the
15current protocol to allow chained operations over a single socket, or
16by writing a new protocol that better supports interactive use.)
17
18So, rsyncsh runs a new rsync command and opens a new socket for every
19(network-based) command you type.
20
21This has two consequences. Firstly, there is more command latency
22than is really desirable. More seriously, if the connection cannot be
23done automatically, because for example it uses SSH with a password,
24then you will need to enter the password every time. We might even
25fix this in the future, though, by having a way to automatically feed
26the password to SSH if it's entered once.