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.
ajdiaz/dtools
master
Name already in use
Code
-
Clone
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
- Open with GitHub Desktop
- Download ZIP
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
dtools ====== 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. Features -------- * 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 run $ dt tag:linux script create_users.sh 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.
About
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.