[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

rsync via fsh

From: Tim Connors
Subject: rsync via fsh
Date: Sun, 4 Jan 2004 01:07:09 +1100 (EST)

fsh is a program that keeps a persistant ssh connection open to nodes that
you constantly use, so you don't suffer the non-negligible ssh connection
overhead (previsouly I was getting a 10 second startup time to each node -
quite a lot when you have to open up buffers on tens of nodes). Combine
this with a long timeout on fsh's side, so the connection can keep open
for days/weeks/months on end (it defaults to something like 10 hours).

fsh requires an argument - a program to run that doesn't get a tty (the
fsh daemon on the remote host just forks the program you want to run, and
forwards STDIN/OUT/ERROR appropriately). Since /bin/sh on linux realises
it doesn't get a tty, it works in non-interactive mode. This doesn't make
use of $PS1 etc. So you have to force sh (really bash in sh mode) to go
back into interactive mode. Hence the -i's over the place (or else tramp
just sits forever waiting for a non-existant $PS1 prompt)

I just duplicated rsync's tramp-method, and changed appropriate things. I
think it will work for me modulo the previous message.

(add-to-list 'tramp-methods
               (tramp-connection-function tramp-open-connection-rsh)
               (tramp-login-program "fsh")
               (tramp-copy-program "rsync")
               (tramp-remote-sh "/bin/sh -i")
               (tramp-login-args ("/bin/sh" "-i"))
               (tramp-copy-args ("-e" "fsh"))
               (tramp-copy-keep-date-arg "-t")
               (tramp-password-end-of-line nil)))

You could do a similar thing for fsh relative to ssh (fsh in inline mode
using uudecode etc), but I haven't tried this yet.

TimC --
"I give up," said Pierre de Fermat's friend. "How DO you keep a
mathematician busy for 350 years?"

reply via email to

[Prev in Thread] Current Thread [Next in Thread]