diff --git a/cluster-mgmt/onos-cluster.sh b/cluster-mgmt/onos-cluster.sh
index e34fe16..0e03c29 100755
--- a/cluster-mgmt/onos-cluster.sh
+++ b/cluster-mgmt/onos-cluster.sh
@@ -3,12 +3,13 @@
 set -e
 
 ### Env vars used by this script. (default value) ###
-# $ONOS_HOME         : path of root directory of ONOS repository (~/ONOS)
-# $ONOS_CLUSTER_HOME : path of ONOS cluster tools directory (this script's dir)
-# $REMOTE_ONOS_HOME  : path of root directory of ONOS repository in remote hosts (ONOS)
-# $SSH               : command name to access host
-# $PSSH              : command name to access hosts in parallel
-# $SCP               : command name to copy config file to each host
+# $ONOS_HOME           : path of root directory of ONOS repository (~/ONOS)
+# $ONOS_CLUSTER_HOME   : path of ONOS cluster tools directory (this script's dir)
+# $REMOTE_ONOS_HOME    : path of root directory of ONOS repository in remote hosts (ONOS)
+# $ONOS_CLUSTER_LOGDIR : path of log output directory (~/ONOS/cluster-mgmt/logs)
+# $SSH                 : command name to access host
+# $PSSH                : command name to access hosts in parallel
+# $SCP                 : command name to copy config file to each host
 #####################################################
 
 
@@ -21,6 +22,7 @@
 CLUSTER_CONF_DIR=${CLUSTER_HOME}/conf
 CLUSTER_CONF=${ONOS_CLUSTER_CONF:-${CLUSTER_CONF_DIR}/onos-cluster.conf}
 CLUSTER_TEMPLATE_DIR=${CLUSTER_CONF_DIR}/template
+CLUSTER_LOGDIR=${ONOS_CLUSTER_LOGDIR:-${CLUSTER_HOME}/logs}
 
 REMOTE_ONOS_HOME=${REMOTE_ONOS_HOME:-ONOS}
 REMOTE_ONOS_CONF_DIR=${REMOTE_ONOS_HOME}/conf
@@ -50,21 +52,23 @@
 
 
 ############# Common functions #############
-function print_usage {
-  local filename=`basename ${ONOS_CLUSTER_CONF}`
+function print-usage {
+  local scriptname=`basename $0`
   local usage="Usage: setup/deploy/start/stop/status ONOS cluster.
- \$ $0 setup [-f]
-    Set up ONOS cluster using ${filename}.
+ \$ ${scriptname} setup [-f]
+    Set up ONOS cluster using ${CLUSTER_CONF}.
     If -f option is used, all existing files will be overwritten without confirmation.
- \$ $0 deploy [-f]
+ \$ ${scriptname} deploy [-f]
     Deliver node config files to cluster nodes.
     If -f option is used, all existing files will be overwritten without confirmation.
- \$ $0 start
+ \$ ${scriptname} start
     Start ONOS cluster
- \$ $0 stop
+ \$ ${scriptname} stop
     Stop ONOS cluster
- \$ $0 status
-    Show status of ONOS-cluster"
+ \$ ${scriptname} status
+    Show status of ONOS-cluster
+ \$ ${scriptname} cmd {command to execute}
+    Execute command on all hosts in parallel"
   
   echo "${usage}"	
 }
@@ -238,6 +242,8 @@
     exit 1
   fi
 
+  mkdir -p ${CLUSTER_LOGDIR}
+  
   for host in ${CLUSTER_HOSTS}; do
     local conf=${CLUSTER_CONF_DIR}/onos_node.${host}.conf
     if [ ! -f ${conf} ]; then
@@ -246,19 +252,27 @@
       echo "[ERROR] Try \"${command} setup\" to create files."
       exit 1
     fi
-      
+
+    local filename=`basename ${conf}`
+    echo -n "Copying ${filename} to ${host} ... "
+    
     local user=$(read-conf ${CLUSTER_CONF} "remote.${host}.ssh.user")
     if [ -z "${user}" ]; then
       # falling back to common setting
       user=$(read-conf ${CLUSTER_CONF} "remote.common.ssh.user")
     fi
     
+    local login=
     if [ -z "${user}" ]; then
       user=`whoami`
     fi
     
-    ${SCP} ${conf} ${user}@${host}:${REMOTE_ONOS_CONF_DIR}
-    ${SSH} ${user}@${host} "cd ${REMOTE_ONOS_HOME}; ./onos.sh setup -f"
+    ${SCP} ${conf} ${user}@${host}:${REMOTE_ONOS_CONF_DIR} &> ${CLUSTER_LOGDIR}/deploy.${host}.log
+    echo "DONE"
+    
+    echo -n "Configuring ${host} ... "
+    ${SSH} ${user}@${host} "cd ${REMOTE_ONOS_HOME}; ./onos.sh setup -f; ./build-ramcloud-java-bindings.sh" &>> ${CLUSTER_LOGDIR}/deploy.${host}.log
+    echo "DONE"
   done
  
 # TODO: Replacing per-host ssh command with pssh command below.
@@ -318,6 +332,21 @@
 ############################################
 
 
+############## Cmd functions ###############
+
+function do-cmd {
+  local cmd=$*
+  
+  if [ -z "${cmd}" ]; then
+    print-usage
+  else
+    ${PSSH} -i -h ${PSSH_CONF} "${cmd}"
+  fi
+}
+
+############################################
+
+
 ################## Main ####################
 case "$1" in
   setup)
@@ -335,7 +364,12 @@
   stat*) # <- status
     status
     ;;
+  cmd)
+    array=("$@")
+    unset array[0]
+    do-cmd ${array[@]}
+    ;;
   *)
-    print_usage
+    print-usage
     exit 1
 esac
diff --git a/onos.sh b/onos.sh
index 9bc7a3d..b54acc3 100755
--- a/onos.sh
+++ b/onos.sh
@@ -139,9 +139,10 @@
 
 ############# Common functions #############
 function print_usage {
+  local scriptname=`basename $0`
   local filename=`basename ${ONOS_CONF}`
   local usage="Usage: setup/start/stop ONOS on this server.
- \$ $0 setup [-f]
+ \$ ${scriptname} setup [-f]
     Set up ONOS node using ${ONOS_CONF} .
       - generate and replace config file of ZooKeeper.
       - create myid in ZooKeeper datadir.
@@ -149,20 +150,20 @@
       - generate and replace config file for RAMCloud.
       - generate and replace logback.${ONOS_HOST_NAME}.xml
     If -f option is used, all existing files will be overwritten without confirmation.
- \$ $0 start [single-node|coord-node|server-node|coord-and-server-node]
+ \$ ${scriptname} start [single-node|coord-node|server-node|coord-and-server-node]
     Start ONOS node with specific RAMCloud entities
       - single-node: start ONOS with stand-alone RAMCloud
       - coord-node : start ONOS with RAMCloud coordinator
       - server-node: start ONOS with RAMCloud server
       - coord-and-server-node: start ONOS with RAMCloud coordinator and server
       * Default behavior can be defined by ${filename}
- \$ $0 stop
+ \$ ${scriptname} stop
     Stop all ONOS-related processes
- \$ $0 restart
+ \$ ${scriptname} restart
     Stop and start currently running ONOS-related processes
- \$$0 status
+ \$ ${scriptname} status
     Show status of ONOS-related processes
- \$ $0 {zk|rc-coord|rc-server|core} {start|stop|restart|status}
+ \$ ${scriptname} {zk|rc-coord|rc-server|core} {start|stop|restart|status}
     Control specific ONOS-related process"
   
   echo "${usage}"	
