Auto Ftp v2 by Glenn Delahoy (C) Copyright 2003-2007 All rights reserved Description ----------- Auto Ftp v2 is the new big brother of the original Auto Ftp. It can perform multiple ftp sessions simultaneously (fully multi-threaded). You can choose between straight file copy or synchronisation in either direction (local to remote or remote to local). Sessions can be started manually, timed, change triggered or daisy chained. Multiple sessions can be started from the command line making it a great batch file tool. Now you can have as many upload or download ftp sessions as you like configured and ready to go with one click. Rather than go into painful detail for the whole application, I'll assume you can figure out most of it and I'll concentrate on the interesting bits. Session Details --------------- Paths These can be a directory or a wildcard file spec. If it's a directory, end it with a backslash or forward slash. Note this is slightly different to version 1. Use the Test button on the connection page to test the connection and paths are valid. Copy Files From Local To Remote Local Path can be a directory or file spec Remote Path must be a directory Copy Files From Remote To Local Local Path must be a directory Remote Path can be a directory or file spec Make The Remote The Same As The Local Directory Local Path must be a directory Remote Path must be a directory Make The Local The Same As The Remote Directory Local Path must be a directory Remote Path must be a directory Countdown Select the number of seconds to countdown prior to starting the session. When the countdown completes, the session begins. When the session is complete, the countdown starts again. Detect Changes The Wait For countdown starts when a change is detected in a file or directory in the local path. If a new change is detected during the countdown, the countdown is restarted. When the countdown completes, the session begins. When the session is complete, the detect begins again. Chain From This will force the session to start immediately another session completes. Select one of the other sessions from the drop down list. What Happens During The Session You can choose between a straight file copy in either direction or a file synchronisation in either direction. What Files Are Copied You can choose between only the specified directory or a full recursive operation, including all sub-directories and files. Note that it's possible to trigger a download session using the change trigger. Why you would want to do this, I'm not sure but maybe you'll find a use for it. Synchronisation --------------- Synchronisation is performed if you choose either the "Make the remote the same as the local" or "Make the local the same as the remote" options on the Details page. Synchronisation can save a lot of time by comparing the files first and transferring only the ones that have changed. When you "Make the remote the same as the local", the files are compared by checksum. Checksum detects changes even when the file size or time hasn't changed. If the stored checksum is different to the checksum of the actual file, the file is deemed to have changed and will be uploaded. If your remote site is currently up to date, you can preload the local checksum store so the first sync operation doesn't try to upload everything. When you "Make the local the same as the remote", the files are compared by the file's last modified time. As with all downloads, the local copy of the file is updated with the modified time of the file on the remote. If the time for a given file on the remote is different to the time for the same file on the local, the file is deemed to have changed and will be downloaded. The file time is accurate to within a minute. New directories are created but old directories won't be deleted. This may change in the future. WARNING : Be very careful! If you have a web site on a remote host like myself, you're going to have a bunch of folders and files that don't exist on your local disk. For example, message forums, guestbook, download counters and various maintenance files. Be very careful of synchronising the root directory of your web site. *** Backup before you start *** Daisy Chaining Sessions ----------------------- You can create a complex chain or tree of sessions using the chain option. When a given session completes, you can trigger one or more sessions to start, you can string a series of sessions together, one after the other or any combination. Command Line Options -------------------- Start a Session You can automatically start a session from the command line by quoting the desired session name. For eg., autoftp "mywebsite" will start a session. Either it will start straight away or the countdown or detection will commence. Start a Session Immediately You can force a countdown or detect session to start immediately by following it with the /force option. For eg., autoftp "mywebsite" /force. Start All Sessions To start all countdown and detect sessions, specify the /start option anywhere on the command line. Exit When All Sessions Complete Normally when a countdown or detect session completes, it returns to countdown or detect mode. In batch files you want to run them once then exit. Do this using the /exit option. When all specified sessions have completed, AutoFtp will exit. Start Minimised If you don't need the application popping up on the screen during command line operation, add the /hide option to the command line. AutoFtp will appear in the system tray. Logging To create a log of the command line session, add the /log command line option. Logging is done in memory during the session. When AutoFtp exits, it dumps the log to autoftp.log in the application directory. The log is pretty much what you see on the screen. For eg: autoftp "mywebsite" /force "backupftpsite" /force "mynewplace" /exit /hide This example runs the first upload session immediately, the second download session will also run immediately, the third session will run when it's countdown completes or the detect kicks in. Only when the third session has completed will AutoFtp exit. The application will run minimised. Remember that daisy chaining is still active when running from the command line. Skipping Files -------------- In some cases you want to make exceptions to files that may be transferred or overwritten. Make use of the Hidden and Read-Only attributes to control this. * Hidden local files and directories are ignored when copying files to the remote site * Hidden or Read-Only local files and directories will not be overwritten by files downloaded from the remote site * Hidden or Read-Only local files will not be deleted during a synchronisation * Files with the same name as a local directory will not be downloaded NOTE: This is slightly different to version 1. Test Mode --------- Sometimes it's useful to find out what AutoFtp is going to do before it does it. You particularly would like to know what files you're going to trash before they get trashed. Selecting the Test option will cause AutoFtp to go through the motions of whatever you have configured but it won't actually transfer anything. Instead it will log intended transfers and show you the results. You should do this for one session at a time, the logging isn't thread safe. Debug Mode ---------- Debug mode is a normal session with transfers attempted and full logging enabled. This is useful in situations where AutoFtp appears to be failing for no reason. The reason is most likely a problem with the remote server. For example, you may not have write permissions. The debug log will highlight these issues. You should do this for one session at a time, the logging isn't thread safe. CAVEATS ------- Here's some "gotchyas" I've found in my travels. 1. If AutoFtp seems to be uploading the same files over and over and you know they haven't changed, it's possible the ftp listing may be getting truncated by the server. For example, the server on my host caps the ftp listing at 2000 entries. I have a few directories that contain more than that so AutoFtp never sees the additional files in the list and thinks they are new. You can try a wildcard search to reduce the number of entries in the ftp list. Log on to your ftp site with a regular ftp client and see if there are any additional messages from the server when you list the directory. 2. AutoFtp has a hard time with mixed case file names. This is not a fault in the program but one of the potential hazards when moving files between DOS based systems (Windows) and Unix based systems. For example, if you did a directory listing of *.jpg on a DOS system you'd get all files with jpg, Jpg, JPG, jPg etc extensions. If you did the same on a Unix based system, you'd get files with the jpg extension only. To avoid potential case confusion, it's best to keep all your file names to lower case. -------------------------------------------------------------------- Release Notes ------------- Version 2.00 ------------ 18 October 2005 Official public release Version 2.01 ------------ Change 1: Fixed a couple of small bugs including, hopefully, the abort bug. Version 2.02 ------------ Change 1: Added code to handle unexpected replies from the remote server. Change 2: Added Debug mode. Version 2.04 ------------ Change 1: Added more debug output. Change 2: Added passive mode. -------------------------------------------------------------- Comments/suggestions to: support@delahoy.com http://www.glenn.delahoy.com