lftp is my favoriate way to do it. I have a cron job that runs like this:
lftp -f /path/to/config
and the config file looks like this:
open mirrors.kernel.org mirror -e /fedora/core/updates/3/i386/ /path/to/local/repo
This keeps my local repo synced with my favorite mirror.
Hope this helps.
Thomas