I'm looking for an FTP client that runs on FreeBSD and has some of the functionality of rsync: making a directory tree on the remote side be an exact copy of a local directory tree. In the directory tree, there are hundreds of files (some pretty large), and typically only a few of them are changed / added / deleted. With rsync, I can achieve this easily by some judicious combination of -a, -u, -c and --delete. With the standard (base system) ftp, I only get commands dir, put and delete. So to update, I need to keep track of exactly which files have changed on my end.
The real underlying problem is that I have to (for historical reasons ...) use a certain web hosting company, and their web directory can only be accessed / updated by ftp. No, I can't log in and use git or mercurial for the ftp directory; I can't run rsync on their end, it is really ONLY accessible by ftp.
I was thinking that a hyper-smart ftp client could implement that. Is there such a thing?
Failing that, I could write some sort of hack. Like a python program that uses ftp and checks file mtime and names and puts / deletes as necessary. Or I could have two copies of the local directory tree, use rsync to update the second copy from the first, and use the log messages of rsync to construct a list of ftp commands. Both ideas are more work and less reliable than just finding a good tool.
The real underlying problem is that I have to (for historical reasons ...) use a certain web hosting company, and their web directory can only be accessed / updated by ftp. No, I can't log in and use git or mercurial for the ftp directory; I can't run rsync on their end, it is really ONLY accessible by ftp.
I was thinking that a hyper-smart ftp client could implement that. Is there such a thing?
Failing that, I could write some sort of hack. Like a python program that uses ftp and checks file mtime and names and puts / deletes as necessary. Or I could have two copies of the local directory tree, use rsync to update the second copy from the first, and use the log messages of rsync to construct a list of ftp commands. Both ideas are more work and less reliable than just finding a good tool.