The JCR Runner makes it easy to do bulk operations on a running JCR repository. For example you can change values of certain properties of all nodes of a certain type or move nodes from one type to another. The JCR Runner connects over rmi to a running repository.
Writing your own plugin is simple. The only thing you have to do is to extend the AbstractRunnerPlugin and implement the visit(Node) method.