Andrés J. Díaz


Latest stable relases:


Show all releases
Github page



Distributed tools, aka dtools is a project written in bash coding to
create a suite of programs to allow running different UNIX commands
in parallel in a list of tagged hosts. This utility is based on
capistrano for Ruby or fabric for Python, but in pure bash.


* Fully written in bash, no third party software required
  (except ssh, obviously).
* Based in module architecture, easy to extend.
* Full integration with ssh.
* Easy to group hosts by tags or search by regular expression.
* Parseable output, but human-readable
* Thinking in system admin, no special development skills
  required to extend the software.

Short Example

    $ dt tag:linux ssh date
    okay::dt:ssh:myhostlinux1.domain:Mon Nov 16 23:54:04 CET 2009
    okay::dt:ssh:myhostlinux3.domain:Mon Nov 16 23:54:04 CET 2009
    okay::dt:ssh:myhostlinux2.domain:Mon Nov 16 23:54:04 CET 2009

Create own commands

Usually the sysadmin works involves large and hard  maintenance tasks, more
of them can be easily automated by a single script, to work this taks, dt
includes since version 3.1 the command *script*. So lets suppose that you
have an script that create a number of users, for example. Then you can

    $ dt tag:linux script
    okay::dt:ssh:myhostlinux1.domain:created users joe, eve, bob
    okay::dt:ssh:myhostlinux2.domain:created users joe, eve, bob
    okay::dt:ssh:myhostlinux3.domain:created users joe, eve, bob

However not always is too easy. for example in some situations you need to
copy files and performs any other actions. In this case you can create your
own commands, just creating a bash file in $HOME/.dtools/commands directory,
(or also $HOME/.dtools/patterns for patterns), for example in contrib/
directory you can found a single deploy command.


The source code of the project is managed by git, you can clone it in the usual way:

git clone

A mirror in github is also available, but keep in mind that could be out of date.

If you find any error in the code or incorrect behaviour, please do not hesitate to report it in the devel mailing list:

Please note that you need to subscribe to the list prior to post to avoid spam, just send an empty email to with the text subscribe dtools-devel in the subject.

Please submit the patches via mailing list. You can read how to in this email + git guide

Any suggestion, discussion or improvement are welcome, just mail to the list!

Andrés J. Díaz <ajdiaz at>.
GPG Key: 4D851F4ECDCFD81EF6AB2FC6021D2DCF8575C18B. GPG Key Signing Policy.
Gopher server