Assuming you have can login to the server via ssh then schneidz method would be easier since the command to get the files would be
dir1=/../$year/$day (etc...)
dir2=...
scp user@host:/$dir1/ . (The . means to transfer the files to the current working directory.)
scp user@host:/$dir2/ .
Additional code would be required to parse for year intervals and knowing the absolute path to the ftp directories. However, since you are logging in as anonymous then maybe not. Once you are logged in via ftp you are limited to using its command set. Just brainstorming one way would be to create your loop outside the herdoc (i.e. everything enclosed by <<end_script end_script) and run it over the year interval or whatever. Create a variable for each directory as above and then
Code:
foreach year do (just psuedo code)
dir=/../$year/$doy/..
HOST='x.x.edu'
USER='anonymous'
PASSWD='12345'
ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
binary
cd $dir
mget *
quit
END_SCRIPT
end