From d310a212f7a5c79e5e98c829e49a5c9596c12301 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Fri, 17 Jul 1998 14:25:14 +0000 Subject: [PATCH] added a bit in the man page about the clean shell error --- compat.c | 1 + rsync.yo | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/compat.c b/compat.c index a8bcd480..ba1a83e5 100644 --- a/compat.c +++ b/compat.c @@ -53,6 +53,7 @@ void setup_protocol(int f_out,int f_in) if (remote_version < MIN_PROTOCOL_VERSION || remote_version > MAX_PROTOCOL_VERSION) { rprintf(FERROR,"protocol version mismatch - is your shell clean?\n"); + rprintf(FERROR,"(see the rsync man page for an explanation)\n"); exit_cleanup(1); } diff --git a/rsync.yo b/rsync.yo index b6f1d160..0db08bcf 100644 --- a/rsync.yo +++ b/rsync.yo @@ -315,6 +315,11 @@ option all symbolic links are skipped. dit(bf(-L, --copy-links)) This tells rsync to treat symbolic links just like ordinary files. +dit(bf(--safe-links)) This tells rsync to ignore any symbolic links +which point outside the destination tree. All absolute symlinks are +also ignored. Using this option in conjunction with --relative may +give unexpecetd results. + dit(bf(-H, --hard-links)) This tells rsync to recreate hard links on the remote system to be the same as the local system. Without this option hard links are treated like regular files. @@ -357,6 +362,10 @@ instead it will just report the actions it would have taken. dit(bf(-S, --sparse)) Try to handle sparse files efficiently so they take up less space on the destination. +NOTE: Don't use this option when the destination is a Solaris "tmpfs" +filesystem. It doesn't seem to handle seeks over null regions +correctly and ends up corrupting the files. + dit(bf(-x, --one-file-system)) This tells rsync not to cross filesystem boundaries when recursing. This is useful for transferring the contents of only one filesystem. @@ -585,6 +594,29 @@ itemize( directories and C source files. ) +manpagesection(DIAGNOSTICS) + +rsync occasinally produces error messages that may seem a little +cryptic. The one that seems to cause the most confusion is "protocol +version mismatch - is your shell clean?". + +This message is usually caused by your startup scripts or remote shell +facility producing unwanted garbage on the stream that rsync is using +for its transport. The way ot diagnose this problem is to run your +remote shell like this: + +verb( + rsh remotehost /bin/true > out.dat +) + +then look at out.dat. If everything is working correctly then out.dat +should be a zero length file. You you are getting the above error from +rsync then you will probably find that out.dat contains some text or +data. Look at the contents and try to work out what is producing +it. The most common cause is incorrectly configued shell startup +scripts (such as .cshrc or .profile) that contain output statements +for non-interactive logins. + manpagesection(ENVIRONMENT VARIABLES) startdit() -- 2.34.1