Is there any way to specify a file to be deleted on the remote side explicitly by name?

I would have thought that deleting the file locally, the rsyncing the non-existing file with --del would have resulted in the remote file, which does exist being deleted.

I have a general purpose script that my developers use to push updates from a devel box to all production boxes. It's essentially just a small loop that reads a text file for a list of target machines, and rsyncs the file/dir supplied on the command line to every host.

The rsync command in the script might be handed any kind of path from anywhere in the filesystem, and the remote boxes are not full exact clones of the source box, merely a developer know when they want to push out a specific file that will be the same on all.

I am trying to add delete support to this, so that a developer can say "delete this file on all"

Ideally I specifically want to do this with rsync alone of possible, because I happen to already have rsync modules and rsync daemons configured everywhere, and I want this to be able to work independent of ssh.

Specifically, in fact I want to be able to use this to enable and break ssh, delete an ssh key on all boxes or push out a sshd_config file to all boxes, which would intentionally break the ability to use, say, pdsh, to run a rm command on all boxes using ssh.

The idea is to let a developer briefly enable and then disable the ability to use pdsh, by pushing out ssh keys and config to allow it, do their jobs, then remove the ssh keys again.

In this particular example, and because of this particular setup between these particular boxes, I could do this by rsyncing the entire .ssh directory, It's ok in this case to empty out or rename all the files in the one local .ssh directory and push it out to all others with normal --del, but really I would like the tool to be more natural and generically useful so they could use it to name a specific file to be deleted on the remote side some how, without syncing the whole directory it's in or touching anything at all except exactly the single file specified, the same as they can for creating or updating a file already.

The only way I can think of right now would be to detect that the user wants a deletion, and in that special case instead of the normal push rsync from local dev to remote production, do a pull rsync from the remote production box to the local devel box, using --remove-source-files, then delete the local file using normal rm locally.

--
bkw
--
Please use reply-all for most replies to avoid omitting the mailing list.
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html

Reply via email to