How can I automatically download multiple sites through Coda? I have several sites in Coda that I would like to automatically re-download when I tell it to. The sites are collaboratively managed, and I'd like to download a fresh copy of the sites automatically. I am open to AppleScripting, an Automator workflow, a shell script, a combination of all three, or anything else you suggest. How would I go about doing this?

Edit: Can I write a shell script to download the whole site via FTP, then copy it to my "Sites" folder and overwrite the existing data? I need to be able to do it for more than one site, so I need a way to pass in the domain name, user, password, and the directory I want it to copy to.
You could easily use wget for this and script it any which way you like. Here's a quick example of how you could use it to download and overwrite one of your sites in one line:

wget ~/Sites/domain/ ftp://[username]:[password]@ftp.example.com/www/


So to do multiple websites you would use:

wget -P ~/Sites/ -i sites.txt


And your text file might look something like this:

ftp://username:password@ftp.site1.com/www/
ftp://username:password@ftp.site2.com/www/
ftp://username:password@ftp.site3.com/www/


From the wget man page:

Recursive download:
  -r,  --recursive          specify recursive download.
  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).
       --delete-after       delete files locally after downloading them.
  -k,  --convert-links      make links in downloaded HTML or CSS point to
                            local files.
  -K,  --backup-converted   before converting file X, back up as X.orig.
  -m,  --mirror             shortcut for -N -r -l inf --no-remove-listing.
  -p,  --page-requisites    get all images, etc. needed to display HTML page.
       --strict-comments    turn on strict (SGML) handling of HTML comments.

Recursive accept/reject:
  -A,  --accept=LIST               comma-separated list of accepted extensions.
  -R,  --reject=LIST               comma-separated list of rejected extensions.
  -D,  --domains=LIST              comma-separated list of accepted domains.
       --exclude-domains=LIST      comma-separated list of rejected domains.
       --follow-ftp                follow FTP links from HTML documents.
       --follow-tags=LIST          comma-separated list of followed HTML tags.
       --ignore-tags=LIST          comma-separated list of ignored HTML tags.
  -H,  --span-hosts                go to foreign hosts when recursive.
  -L,  --relative                  follow relative links only.
  -I,  --include-directories=LIST  list of allowed directories.
  --trust-server-names             use the name specified by the redirection
                                   url last component.
  -X,  --exclude-directories=LIST  list of excluded directories.
  -np, --no-parent                 don't ascend to the parent directory.