proSilla, version 1.2 ~~~~~~~~~~~~~~~~~~~~~ by Andrzej Szombierski ProSilla is a program which accelerates file transfers over ssh by opening multiple connections just like other download accelerators. The only difference is that proSilla uses ssh instead of http/ftp for download. Of course you must have a shell account on the remote server to use this program. By default it uses a ncurses user interface, but since the version 1.2 it also has a nice gtk+ GUI. 0. Legal stuff ~~~~~~~~~~~~~~ ProSilla is GPL and comes with absolutely no warranty, for details see COPYING. 1. Compiling ~~~~~~~~~~~~ 'make' should do the job, but keep in mind that proSilla was not heavily tested. If you encounter any problems (and perhaps solve them), please contact me. 2. Usage ~~~~~~~~ The simplest way to use prosilla in text mode is: prosilla any.remote.host my/beloved/file In this case, proSilla will default to 4 simulatenous connections and ncurses user interface. Number of connections may be adjusted using -k. You may include your username in the first argument, like this: prosilla me@my.host my/beloved/file ProSilla can be killed at any time, and when invoked again, it will automagi- cally resume transfer using the data from .psinfo file. You can also resume a broken scp transfer: prosilla -c remote.host my/beloved/partially.downloaded.file Remember that -c is needed only if you didn't use proSilla on this file before. By default, proSilla uses /bin/dd to read files on remote server. Optionally it may use a program called 'proserv'. The difference is that parts of file read with dd must begin and end on block (in our case - 1kb) boundary, so it sends some data multiple times, while reading with proserv can begin and end anywhere. Proserv is also a *little* bit more CPU friendly because it uses sendfile() (if supported) instead of read()/write(). Before the download is finished, the size of the file won't tell you much about the progress. To check transfer status you may use something like this: prosilla -i file.psinfo Other options are described in the usage text (just type ./prosilla to see it). 3. GTK+ interface ~~~~~~~~~~~~~~~~~ If you compiled in the gtk+ interface, you can start it by: prosilla -g or gprosilla Prosilla will ask you for the username, server, filename and other options and start transferring the file as usual. You can also start the transfer directly from the command line like this: prosilla -g [options] user@host file or gprosilla [options] user@host file The gtk+ interface was not heavily tested, but it should work :) 4. Passwords, passphrases, keys... ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ProSilla will ask for a password or passphrase if required (actually if ssh client asks for it). You will be asked only once, proSilla will automatically supply the password on each connection attempt. 5. Known bugs ~~~~~~~~~~~~~ * transferring files larger than 2GB won't work - and I won't implement it soon since I won't try to test it on my 115kbit connection :) * the 'Background' option in the GUI doesn't remove the application icon from the screen (at least in WindowMaker) - dealing with it will be difficult because gtk/gdk don't have a clean-up-and-disconnect-from-xserver function. 6. ToDo ~~~~~~~ * measuring the current transfer speed (not just average), and a nice graph in the gtk+ version :> * upload support would be nice, but there would be a little problem - the incom- plete file wouldn't be stored on the same machine as the .psinfo file.. anyway it's possible, I'm just too lazy :) * queueing multiple files/recursive directory transfer - also it will need some work.. maybe in 2.0 :) as always - bug reports and great ideas are appreciated.