Jeff Spaleta said:On Mon, 14 Jun 2004 20:53:41 -0700 (PDT), Don Russell <don@xxxxxxxxxxxxxxxxxxxxx> wrote:Here's how I see it working...
When new packages are ready to be distributed.... - reset the list of sites that serve up2date to the single master site - move new versions of the pakages to the master site. - start a cron job in xxx minutes (gives some mirrors a chance to re-synch)
the cron job does: - for each mirror site (not already known to be synch'd) - get directory listing - compare to master directory listing - if directory matches, site must be synch'd - make mirror site eligible to participate in serving up2date
After checking all mirrors, if one or more are still not synch'd, schedule the job again in xxx minutes
If all mirrors are now synch'd, we're done.
The whole design fits on a bar napkin.
And very little bandwidth to accomplish it... up2date now only sees sites that are synch'd.... new mirror sites can be added dynamically as required.
I LIKE it! :-)
Cheers, Don Russell
Hmm....can someone out in the community prototype this cronjob idea up.
I wish my Linux programming skills were up to the task..... but hey! At least I came up with the IDEA/design... :-)
But, that's what makes it a "community effort"...
Cheers, Don
This is simpler then you show here. You can get the last update time from the modified header from the repository:
$ telnet mirror.linux.duke.edu 80 HEAD http://mirror.linux.duke.edu/pub/fedora/linux/core/1/i386/os/headers/header.info HTTP/1.1 ^D
wget will return the header, but will also download the entire file...
ed
Security on the internet is impossible without strong, open, and unhindered encryption.