Now it's allow passing command line arguments to task now,the task
macro is changed,it must have an argument vector now:

(task :deploy "deploy a file to remote machines"
      [file]
      (scp (file) "/home/user1"))

And run with

     clojure controls.clj deploy release.tar.gz

The "release.tar.gz" will be used as "file" argument for scp macro.

clojure-control is still on development,any suggestion welcomed.


On 7月24日, 下午9时41分, dennis <killme2...@gmail.com> wrote:
> 1.What is clojure-control?
>
> The idea came from node-control(https://github.com/tsmith/node-
> control).
> Define clusters and tasks for system administration or code
> deployment, then execute them on one or many remote machines.
> Clojure-control depends only on OpenSSH and clojure on the local
> control machine.Remote machines simply need a standard sshd daemon.
>
> 2.Quick example
>
> Get the current date from the two machines listed in the 'mycluster'
> config with a single command:
>
>      (ns samples
>      (:use [control.core :only [task cluster scp ssh begin]]))
>      ;;define clusters
>      (cluster :mycluster
>                  :clients [
>                                { :host "a.domain.com" :user "alogin"}
>                                { :host "b.domain.com" :user "blogin"}
>                              ])
>      ;;define tasks
>      (task :date "Get date"
>               (ssh "date"))
>     ;;start running
>     (begin)
>
> If saved in a file named "controls.clj",run with
>
>     java -cp clojure.jar:clojure-contrib.jar:control-0.1-SNAPSHOT.jar
> clojure.main controls.clj mycluster date
>
> Each machine execute "date" command ,and the output form the remote
> machine is printed to the console.Exmaple console output
>
>     Performing mycluster
>     Performing date for a.domain.com
>     a.domain.com:ssh: date
>     a.domain.com:stdout: Sun Jul 24 19:14:09 CST 2011
>     a.domain.com:exit: 0
>     Performing date for b.domain.com
>     b.domain.com:ssh: date
>     b.domain.com:stdout: Sun Jul 24 19:14:09 CST 2011
>     b.domain.com:exit: 0
>
> Each line of output is labeled with the address of the machine the
> command was executed on. The actual command sent and the user used to
> send it is displayed. stdout and stderr output of the remote process
> is identified as well as the final exit code of the local ssh
> command.
>
> 3.How to scp files?
> Let's define a new task named deploy
>
>   (task :deploy "scp files to remote machines"
>         (scp ("release1.tar.gz" "release2.tar.gz") "/home/alogin/"))
>
> Then it will copy release1.tar.gz and release2.tar.gz to remote
> machine's /home/alogin directory.
>
> 4.More information please goto project homepage
>
> https://github.com/killme2008/clojure-control
>
> Any suggestion or bug reports welcomed.

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to