It was an internal use only tool I no longer have access to, but I did setup
a command line version of something like this, and a simple web interface
was later put on top of it.
Because the directory structure of the development server mirrored that of
the live server, just a list of names of files in the development server
would be passed to the script. It would connect to the live server and do
the copy. It checked all paths through a config file that specified what
paths different users could update. The script just checked which unix
account invoked it to determine the user.
All copies are done atomicly, meaning files are copied to directory_new,
directory is renamed as directory_old, directory_new is renamed as
directory, and then direcotry_old is deleted. This results in only split
second downtime, as well as not ending up in some weird state if the
transfer gives up in the middle.
One big issue that wasn't foreseen in the first version, deleting files.
I am working on a module File::Rsync::Safe, for doing the kind of atomic
copies I mentioned above, among other things. I haven't announced it yet
because I'm still working on getting the people paying for my work to
understand what the GPL is, but they will come around shortly.
--
Joseph Annino Consulting - Perl, PHP, MySQL, Oracle, etc.
jannino@jannino.com - http://www.jannino.com
On 2/13/02 7:30 PM, "Frank Perugini" <frankp@web-worx.com>
wrote:
> Greetings All,
>
> I am planning on authoring a web-based (CGI) interface to rsync. The idea
is
> to build a fool-proof interface for my web designers to push content
changes
> from our development server to our live production server. I am talking
> about an interface which allows point-n-click navigation of file system
> folders and the ability to push files. These users are both MAC and Windows
> based. We are a web design and hosting company.
>
> I have been monitoring this group and other newsgroups and experimenting
> with rsync. I know there is a perl module that wraps rsync, and I will
> probably use it.
>
> Does anyone know if anyone else has already undertook a project of this
type
> already? I don't want to re-invent the wheel. I have not seen much
mention
> of any web-based interfaces or wrappers (other than the perl module).
> There's usually people creating web-based interfaces to just about
> everything, but I have not seen this yet. I think it can be a very useful
> system.
>
> Regards,
>
> -Frank
>
>