I would go for BrowserUK's approach, and I fail to see how it's going to be a lot more work. In fact, it's probably going to be a lot less work. With a separate program doing the FTP transfers, you only have one place where you have to worry about failed transfers, instead of having to deal with it in all your programs.
Besides, it follows the Unix toolkit approach: separate things are done by separate programs - each program tuned to do its task very well.
Comment on Re^3: Synchronisation between multiple scripts